From: Markus Armbruster <armbru@redhat.com>
To: huangy81@chinatelecom.cn
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 08:35:46 +0100 [thread overview]
Message-ID: <87o86cprql.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <99ea5e76926164d60a4ee62d0a1831823bc0d7a9.1637403404.git.huangy81@chinatelecom.cn> (huangy's message of "Sat, 20 Nov 2021 18:36:40 +0800")
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.
>
> 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.
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?
Speaking of migration.json: should these commands be defined there, next
to calc-dirty-rate and query-dirty-rate?
> +#
> +# @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)".
> +#
> +# 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();
> }
next prev parent reply other threads:[~2021-11-22 7:38 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 [this message]
2021-11-22 8:19 ` Hyman Huang
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=87o86cprql.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=huangy81@chinatelecom.cn \
--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).