qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hyman Huang <huangy81@chinatelecom.cn>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Juan Quintela" <quintela@redhat.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	qemu-devel <qemu-devel@nongnu.org>,
	"Peter Xu" <peterx@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: Re: [PATCH v3 3/3] cpus-common: implement dirty limit on vCPU
Date: Mon, 22 Nov 2021 16:19:37 +0800	[thread overview]
Message-ID: <1a8f3590-c7be-016e-842c-b4b29df92d2c@chinatelecom.cn> (raw)
In-Reply-To: <87o86cprql.fsf@dusky.pond.sub.org>



在 2021/11/22 15:35, Markus Armbruster 写道:
> huangy81@chinatelecom.cn writes:
> 
>> From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
>>
>> implement dirtyrate calculation periodically basing on
>> dirty-ring and throttle vCPU until it reachs the quota
>> dirtyrate given by user.
>>
>> introduce qmp commands set-dirty-limit/cancel-dirty-limit to
>> set/cancel dirty limit on vCPU.
> 
> Please start sentences with a capital letter.
> 
Ok,i'll check the syntax problem next version.
>>
>> Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
> 
> [...]
> 
>> diff --git a/qapi/misc.json b/qapi/misc.json
>> index 358548a..98e6001 100644
>> --- a/qapi/misc.json
>> +++ b/qapi/misc.json
>> @@ -527,3 +527,42 @@
>>    'data': { '*option': 'str' },
>>    'returns': ['CommandLineOptionInfo'],
>>    'allow-preconfig': true }
>> +
>> +##
>> +# @set-dirty-limit:
>> +#
>> +# This command could be used to cap the vCPU memory load, which is also
>> +# refered as dirtyrate. One should use "calc-dirty-rate" with "dirty-ring"
>> +# and to calculate vCPU dirtyrate and query it with "query-dirty-rate".
>> +# Once getting the vCPU current dirtyrate, "set-dirty-limit" can be used
>> +# to set the upper limit of dirtyrate for the interested vCPU.
> 
> "dirtyrate" is not a word.  Let's spell it "dirty page rate", for
> consistency with the documentation in migration.json.
Ok, sounds good.
> 
> Regarding "One should use ...": sounds like you have to run
> calc-dirty-rate with argument @mode set to @dirty-ring before this
> command.  Correct?  What happens when you don't?  set-dirty-limit fails?
> 
> Do you also have to run query-dirty-rate before this command?
Actually no, i'll clarify the usage next verison.
> 
> Speaking of migration.json: should these commands be defined there, next
> to calc-dirty-rate and query-dirty-rate?
I'm struggling too because these commands will be used in migration but 
it is vCPU they handle.
> 
>> +#
>> +# @idx: vCPU index to set dirtylimit.
>> +#
>> +# @dirtyrate: upper limit of drityrate the specified vCPU could reach (MB/s)
> 
> Typo "drityrate".
> 
> Suggest "upper limit for the specified vCPU's dirty page rate (MB/s)".
Ok.
> 
>> +#
>> +# Since: 6.3
>> +#
>> +# Example:
>> +#   {"execute": "set-dirty-limit"}
>> +#    "arguments": { "idx": 0,
>> +#                   "dirtyrate": 200 } }
>> +#
>> +##
>> +{ 'command': 'set-dirty-limit',
>> +  'data': { 'idx': 'int', 'dirtyrate': 'uint64' } }
>> +
>> +##
>> +# @cancel-dirty-limit:
>> +#
>> +# @idx: vCPU index to canceled the dirtylimit
>> +#
>> +# Since: 6.3
>> +#
>> +# Example:
>> +#   {"execute": "cancel-dirty-limit"}
>> +#    "arguments": { "idx": 0 } }
>> +#
>> +##
>> +{ 'command': 'cancel-dirty-limit',
>> +  'data': { 'idx': 'int' } }
>> diff --git a/softmmu/vl.c b/softmmu/vl.c
>> index 1159a64..170ee23 100644
>> --- a/softmmu/vl.c
>> +++ b/softmmu/vl.c
>> @@ -3776,5 +3776,6 @@ void qemu_init(int argc, char **argv, char **envp)
>>       qemu_init_displays();
>>       accel_setup_post(current_machine);
>>       os_setup_post();
>> +    dirtylimit_setup(current_machine->smp.max_cpus);
>>       resume_mux_open();
>>   }
> 

-- 
Best regard

Hyman Huang(黄勇)


  reply	other threads:[~2021-11-22  8:21 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-20 10:36 [PATCH v3 0/3] support dirty restraint on vCPU huangy81
2021-11-20 10:36 ` [PATCH v3 1/3] migration/dirtyrate: implement vCPU dirtyrate calculation periodically huangy81
2021-11-20 10:36 ` [PATCH v3 2/3] cpu-throttle: implement vCPU throttle huangy81
2021-11-20 10:36 ` [PATCH v3 3/3] cpus-common: implement dirty limit on vCPU huangy81
2021-11-22  7:35   ` Markus Armbruster
2021-11-22  8:19     ` Hyman Huang [this message]
2021-11-22  9:10       ` Markus Armbruster
2021-11-22  9:25         ` Hyman Huang
2021-11-22 11:26           ` Markus Armbruster
2021-11-22 17:31             ` Hyman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1a8f3590-c7be-016e-842c-b4b29df92d2c@chinatelecom.cn \
    --to=huangy81@chinatelecom.cn \
    --cc=armbru@redhat.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).