qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 3/3] cpus-common: implement dirty limit on vCPU


From: Hyman Huang
Subject: Re: [PATCH v3 3/3] cpus-common: implement dirty limit on vCPU
Date: Mon, 22 Nov 2021 17:25:11 +0800
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0



在 2021/11/22 17:10, Markus Armbruster 写道:
Hyman Huang <huangy81@chinatelecom.cn> writes:

=E5=9C=A8 2021/11/22 15:35, Markus Armbruster =E5=86=99=E9=81=93:
huangy81@chinatelecom.cn writes:

From: Hyman Huang(=E9=BB=84=E5=8B=87) <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?

You didn't answer this question.
set-dirty-limit doesn't do any pre-check about if calc-dirty-rate has executed, so it doesn't fail.

Since only executing calc-dirty-rate with dirty-ring mode can we get the vCPU dirty page rate currently(while the dirty-bitmap only get the vm dirty page rate), "One should use ..." maybe misleading, what i actually want to say is "One should use the dirty-ring mode to calculate the vCPU dirty page rate".

Do you also have to run query-dirty-rate before this command?
Actually no, i'll clarify the usage next verison.

Regarding "dirty-ring": is this merely a limitation of the
implementation, i.e. other modes could be made to work if we cared, or
is it more fundamental?

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.

I think migration.json is more about CPUs than misc.json is.  Let's add
the new commands to migration.json if migration maintainers are okay
with it.

[...]


--
Best regard

Hyman Huang(黄勇)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]