From: huangy81@chinatelecom.cn To: <qemu-devel@nongnu.org> Cc: Paolo Bonzini <pbonzini@redhat.com>, <kvm@vger.kernel.org>, Juan Quintela <quintela@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Peter Xu <peterx@redhat.com>, Hyman <huangy81@chinatelecom.cn> Subject: [PATCH v1 3/6] migration/dirtyrate: add vcpu option for qmp calc-dirty-rate Date: Tue, 1 Jun 2021 01:05:00 +0800 [thread overview] Message-ID: <28111cd734b1b6e76f7cd8f2f6ad1d4c54f12842.1622479162.git.huangy81@chinatelecom.cn> (raw) In-Reply-To: <cover.1622479161.git.huangy81@chinatelecom.cn> From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn> calculate dirtyrate for each vcpu if vcpu is true, add the dirtyrate of each vcpu to the return value also. Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn> --- migration/dirtyrate.c | 5 ++++- migration/dirtyrate.h | 1 + qapi/migration.json | 28 ++++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index ccb98147e8..3c1a824a41 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -383,7 +383,10 @@ void *get_dirtyrate_thread(void *arg) return NULL; } -void qmp_calc_dirty_rate(int64_t calc_time, Error **errp) +void qmp_calc_dirty_rate(int64_t calc_time, + bool has_vcpu, + bool vcpu, + Error **errp) { static struct DirtyRateConfig config; QemuThread thread; diff --git a/migration/dirtyrate.h b/migration/dirtyrate.h index 6ec429534d..f20dd52d77 100644 --- a/migration/dirtyrate.h +++ b/migration/dirtyrate.h @@ -38,6 +38,7 @@ struct DirtyRateConfig { uint64_t sample_pages_per_gigabytes; /* sample pages per GB */ int64_t sample_period_seconds; /* time duration between two sampling */ + bool vcpu; /* calculate dirtyrate for each vcpu using dirty ring */ }; /* diff --git a/qapi/migration.json b/qapi/migration.json index 7a5bdf9a0d..896ebcb93b 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -1708,6 +1708,21 @@ { 'event': 'UNPLUG_PRIMARY', 'data': { 'device-id': 'str' } } +## +# @DirtyRateVcpu: +# +# Dirty rate of vcpu. +# +# @id: vcpu index. +# +# @dirty-rate: dirty rate. +# +# Since: 6.1 +# +## +{ 'struct': 'DirtyRateVcpu', + 'data': { 'id': 'int', 'dirty-rate': 'int64' } } + ## # @DirtyRateStatus: # @@ -1740,6 +1755,10 @@ # # @calc-time: time in units of second for sample dirty pages # +# @vcpu: calculate dirtyrate for each vcpu (Since 6.1) +# +# @vcpu-dirty-rate: dirtyrate for each vcpu (Since 6.1) +# # Since: 5.2 # ## @@ -1747,7 +1766,9 @@ 'data': {'*dirty-rate': 'int64', 'status': 'DirtyRateStatus', 'start-time': 'int64', - 'calc-time': 'int64'} } + 'calc-time': 'int64', + '*vcpu': 'bool', + '*vcpu-dirty-rate': [ 'DirtyRateVcpu' ] } } ## # @calc-dirty-rate: @@ -1756,13 +1777,16 @@ # # @calc-time: time in units of second for sample dirty pages # +# @vcpu: calculate vcpu dirty rate if true, the default value is +# false (since 6.1) +# # Since: 5.2 # # Example: # {"command": "calc-dirty-rate", "data": {"calc-time": 1} } # ## -{ 'command': 'calc-dirty-rate', 'data': {'calc-time': 'int64'} } +{ 'command': 'calc-dirty-rate', 'data': {'calc-time': 'int64', '*vcpu': 'bool'} } ## # @query-dirty-rate: -- 2.24.3
WARNING: multiple messages have this Message-ID (diff)
From: huangy81@chinatelecom.cn To: <qemu-devel@nongnu.org> Cc: kvm@vger.kernel.org, Juan Quintela <quintela@redhat.com>, Hyman <huangy81@chinatelecom.cn>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Peter Xu <peterx@redhat.com>, Paolo Bonzini <pbonzini@redhat.com> Subject: [PATCH v1 3/6] migration/dirtyrate: add vcpu option for qmp calc-dirty-rate Date: Tue, 1 Jun 2021 01:05:00 +0800 [thread overview] Message-ID: <28111cd734b1b6e76f7cd8f2f6ad1d4c54f12842.1622479162.git.huangy81@chinatelecom.cn> (raw) In-Reply-To: <cover.1622479161.git.huangy81@chinatelecom.cn> From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn> calculate dirtyrate for each vcpu if vcpu is true, add the dirtyrate of each vcpu to the return value also. Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn> --- migration/dirtyrate.c | 5 ++++- migration/dirtyrate.h | 1 + qapi/migration.json | 28 ++++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index ccb98147e8..3c1a824a41 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -383,7 +383,10 @@ void *get_dirtyrate_thread(void *arg) return NULL; } -void qmp_calc_dirty_rate(int64_t calc_time, Error **errp) +void qmp_calc_dirty_rate(int64_t calc_time, + bool has_vcpu, + bool vcpu, + Error **errp) { static struct DirtyRateConfig config; QemuThread thread; diff --git a/migration/dirtyrate.h b/migration/dirtyrate.h index 6ec429534d..f20dd52d77 100644 --- a/migration/dirtyrate.h +++ b/migration/dirtyrate.h @@ -38,6 +38,7 @@ struct DirtyRateConfig { uint64_t sample_pages_per_gigabytes; /* sample pages per GB */ int64_t sample_period_seconds; /* time duration between two sampling */ + bool vcpu; /* calculate dirtyrate for each vcpu using dirty ring */ }; /* diff --git a/qapi/migration.json b/qapi/migration.json index 7a5bdf9a0d..896ebcb93b 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -1708,6 +1708,21 @@ { 'event': 'UNPLUG_PRIMARY', 'data': { 'device-id': 'str' } } +## +# @DirtyRateVcpu: +# +# Dirty rate of vcpu. +# +# @id: vcpu index. +# +# @dirty-rate: dirty rate. +# +# Since: 6.1 +# +## +{ 'struct': 'DirtyRateVcpu', + 'data': { 'id': 'int', 'dirty-rate': 'int64' } } + ## # @DirtyRateStatus: # @@ -1740,6 +1755,10 @@ # # @calc-time: time in units of second for sample dirty pages # +# @vcpu: calculate dirtyrate for each vcpu (Since 6.1) +# +# @vcpu-dirty-rate: dirtyrate for each vcpu (Since 6.1) +# # Since: 5.2 # ## @@ -1747,7 +1766,9 @@ 'data': {'*dirty-rate': 'int64', 'status': 'DirtyRateStatus', 'start-time': 'int64', - 'calc-time': 'int64'} } + 'calc-time': 'int64', + '*vcpu': 'bool', + '*vcpu-dirty-rate': [ 'DirtyRateVcpu' ] } } ## # @calc-dirty-rate: @@ -1756,13 +1777,16 @@ # # @calc-time: time in units of second for sample dirty pages # +# @vcpu: calculate vcpu dirty rate if true, the default value is +# false (since 6.1) +# # Since: 5.2 # # Example: # {"command": "calc-dirty-rate", "data": {"calc-time": 1} } # ## -{ 'command': 'calc-dirty-rate', 'data': {'calc-time': 'int64'} } +{ 'command': 'calc-dirty-rate', 'data': {'calc-time': 'int64', '*vcpu': 'bool'} } ## # @query-dirty-rate: -- 2.24.3
next prev parent reply other threads:[~2021-05-31 17:16 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-31 17:02 [PATCH v1 0/6] support dirtyrate at the granualrity of vcpu huangy81 2021-05-31 17:02 ` huangy81 2021-05-31 17:03 ` [PATCH v1 1/6] KVM: add kvm_dirty_ring_enabled function huangy81 2021-05-31 17:03 ` huangy81 2021-05-31 17:04 ` [PATCH v1 2/6] KVM: introduce dirty_pages into CPUState huangy81 2021-05-31 17:04 ` huangy81 2021-06-01 23:20 ` Peter Xu 2021-06-01 23:20 ` Peter Xu 2021-06-02 0:27 ` Hyman Huang 2021-06-02 0:27 ` Hyman Huang 2021-06-02 1:26 ` Peter Xu 2021-06-02 1:26 ` Peter Xu 2021-05-31 17:05 ` huangy81 [this message] 2021-05-31 17:05 ` [PATCH v1 3/6] migration/dirtyrate: add vcpu option for qmp calc-dirty-rate huangy81 2021-05-31 17:05 ` [PATCH v1 4/6] migration/dirtyrate: adjust struct DirtyRateStat huangy81 2021-05-31 17:05 ` huangy81 2021-05-31 17:05 ` [PATCH v1 5/6] migration/dirtyrate: check support of calculation for vcpu huangy81 2021-05-31 17:05 ` huangy81 2021-05-31 17:06 ` [PATCH v1 6/6] migration/dirtyrate: implement dirty-ring dirtyrate calculation huangy81 2021-05-31 17:06 ` huangy81 2021-06-01 21:54 ` [PATCH v1 0/6] support dirtyrate at the granualrity of vcpu Peter Xu 2021-06-01 21:54 ` Peter Xu 2021-06-02 0:51 ` Hyman Huang 2021-06-02 0:51 ` Hyman Huang
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=28111cd734b1b6e76f7cd8f2f6ad1d4c54f12842.1622479162.git.huangy81@chinatelecom.cn \ --to=huangy81@chinatelecom.cn \ --cc=dgilbert@redhat.com \ --cc=kvm@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=peterx@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=quintela@redhat.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.