Yong Huang <yong.hu...@smartx.com> writes: > On Wed, Jul 19, 2023 at 1:26 PM Markus Armbruster <arm...@redhat.com> wrote: > >> Yong Huang <yong.hu...@smartx.com> writes: >> >> > On Tue, Jul 18, 2023 at 7:04 PM Markus Armbruster <arm...@redhat.com> >> wrote: >> > >> >> Yong Huang <yong.hu...@smartx.com> writes: >> >> >> >> > On Thu, Jul 13, 2023 at 8:44 PM Markus Armbruster <arm...@redhat.com> >> >> > wrote:
[...] >> >> Yes, please. But before that, I have still more questions. "This >> >> algorithm only works when vCPU's dirtyrate greater than >> >> 'vcpu-dirty-limit'" is a condition: "FEATURE only works when CONDITION". >> >> >> > I failed to express my meaning again : ( . "Throttle algo only works when >> > vCPU's dirtyrate greater than 'vcpu-dirty-limit' " should change to >> > "vCPU throttle only works when vCPU's dirtyrate greater than >> > 'vcpu-dirty-limit'". >> > Not the whole "algo" ! >> >> Let me paraphrase to make sure I got it... The vCPU is throttled as >> needed to keep its dirty rate within the limit set with >> set-vcpu-dirty-limit. Correct? >> > Yes. Actually set with the internal function qmp_set_vcpu_dirty_limit. > > And a parameter called "vcpu-dirty-limit" of migration provided by > dirty-limit > aims to be the argument of qmp_set_vcpu_dirty_limit. Alright, let me try to craft some documentation: # @dirty-limit: If enabled, migration will throttle vCPUs as needed to # keep their dirty page rate within @vcpu-dirty-limit. This can # improve responsiveness of large guests during live migration, # and can result in more stable read performance. Requires KVM # with accelerator property "dirty-ring-size" set. (Since 8.1) What do you think? >> What happens when I enable the dirty limit convergence algorithm without >> setting a limit with set-vcpu-dirty-limit? >> > dirty-limit will use the default value which is defined > in migration/options.c: > #define DEFAULT_MIGRATE_VCPU_DIRTY_LIMIT 1 /* MB/s */ > > So the default of the dirty-limit is 1MB/s. Is this default documented in the QAPI schema? Hmm, looks like it isn't before this series, but PATCH 3 fixes it. Okay. >> >> What happens when the condition is not met? How can the user ensure the >> >> condition is met? >> >> >> >> [...]