[PATCH v6 0/5] migration/dirtyrate: Introduce APIs for getting domain memory dirty rate
Michal Privoznik
mprivozn at redhat.com
Wed Mar 3 11:31:59 UTC 2021
On 2/26/21 9:35 AM, Hao Wang wrote:
> V5 -> V6:
> split DomainGetDirtyRateInfo(domdirtyrate) API into two parts:
> 1. DomainStartDirtyRateCalc(domdirtyrate-calc) for starting dirty rate
> calculation;
> 2. qemuDomainGetStatsDirtyRate(domstats --dirtyrate) for querying dirty
> rate infomation.
>
> V4 -> V5:
> squash 1/7 and bits of 5/7 and 6/7 into 2/7 in v4 (to be 1/5 in v5)
> squash left of 5/7 into 4/7 in v4 (to be 3/5 in v5)
> add VIR_DOMAIN_DIRTYRATE_DEFAULT flag
> remove redundant error report
> rename virsh api to "domdirtyrate"
> use vshTablePtr for virsh api output
> add description in docs/manpages/virsh.rst
> other format optimize
>
> V3 -> V4:
> define flags to unsigned int
> fix some compile warnings
>
> V2 -> V3:
> reorganize patchset to fix compile warning
>
> V1 -> V2:
> replace QEMU_JOB_ASYNC with QEMU_JOB_QUERY
>
>
> Sometimes domain's memory dirty rate is expected by user in order to
> decide whether it's proper to be migrated out or not.
>
> We have already completed the QEMU part of the capability:
> https://patchew.org/QEMU/1600237327-33618-1-git-send-email-zhengchuan@huawei.com/
> And this serial of patches introduce the corresponding LIBVIRT part:
>
> 1. Calculating
> Introduce a new API DomainStartDirtyRateCalc and corresponding virsh api
> (domdirtyrate-calc) for starting dirty rate calculation by calling qmp
> 'calc-dirty-rate'.
>
> # virsh domdirtyrate-calc <domain> [--seconds <sec>]
>
> 2. Querying
> Introduce command 'virsh domstats --dirtyrate' for reporting memory
> dirty rate infomation by calling qmp 'query-dirty-rate'.
>
> The info is listed as:
> Domain: 'vm0'
> dirtyrate.calc_status=measured
> dirtyrate.calc_start_time=502814
> dirtyrate.calc_period=1
> dirtyrate.megabytes_per_second=2
>
>
> Hao Wang (5):
> migration/dirtyrate: Introduce virDomainStartDirtyRateCalc API
> migration/dirtyrate: Implement qemuDomainStartDirtyRateCalc
> migration/dirtyrate: Introduce domdirtyrate-calc virsh api
> migration/dirtyrate: Implement qemuMonitorQueryDirtyRate
> migration/dirtyrate: Introduce command 'virsh domstats --dirtyrate'
>
> docs/manpages/virsh.rst | 33 ++++++++-
> include/libvirt/libvirt-domain.h | 5 ++
> src/driver-hypervisor.h | 6 ++
> src/libvirt-domain.c | 57 +++++++++++++++
> src/libvirt_public.syms | 5 ++
> src/qemu/qemu_driver.c | 115 +++++++++++++++++++++++++++++++
> src/qemu/qemu_monitor.c | 24 +++++++
> src/qemu/qemu_monitor.h | 18 +++++
> src/qemu/qemu_monitor_json.c | 88 +++++++++++++++++++++++
> src/qemu/qemu_monitor_json.h | 8 +++
> src/remote/remote_driver.c | 1 +
> src/remote/remote_protocol.x | 14 +++-
> src/remote_protocol-structs | 6 ++
> tools/virsh-domain-monitor.c | 7 ++
> tools/virsh-domain.c | 63 +++++++++++++++++
> 15 files changed, 447 insertions(+), 3 deletions(-)
>
To patches 1-4:
Reviewed-by: Michal Privoznik <mprivozn at redhat.com>
The last one 5/5 should be split. And I'd wait for others to give
opinion on the enum vs string representation of calc_status. If we go
with enum, then I think _qemuMonitorDirtyRateInfo struct in 4/5 should
be updated to reflect this change.
We are almost there!
Michal
More information about the libvir-list
mailing list