[PATCH v7 0/7] migration/dirtyrate: Introduce APIs for getting domain memory dirty rate

Michal Privoznik mprivozn at redhat.com
Thu Mar 18 07:49:42 UTC 2021


On 3/16/21 1:32 PM, Hao Wang wrote:
> V6 -> V7:
> add virDomainDirtyRateStatus enum
> define calc_status as int
> split 5/5 in v6 into two parts:
>      6/7 in v7: extend dirtyrate statistics for domGetStats
>      7/7 in v7: extend corresponding virsh command
> 
> 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=2
>    dirtyrate.calc_start_time=1534523
>    dirtyrate.calc_period=1
>    dirtyrate.megabytes_per_second=5
> 
> 
> Hao Wang (7):
>    migration/dirtyrate: Introduce virDomainStartDirtyRateCalc API
>    migration/dirtyrate: Implement qemuDomainStartDirtyRateCalc
>    migration/dirtyrate: Introduce domdirtyrate-calc virsh api
>    migration/dirtyrate: Introduce virDomainDirtyRateStatus enum
>    migration/dirtyrate: Implement qemuMonitorQueryDirtyRate
>    migration/dirtyrate: Extend dirtyrate statistics for domGetStats
>    migration/dirtyrate: Introduce command 'virsh domstats --dirtyrate'
> 
>   docs/manpages/virsh.rst          |  33 +++++++++-
>   include/libvirt/libvirt-domain.h |  23 +++++++
>   src/driver-hypervisor.h          |   6 ++
>   src/libvirt-domain.c             |  59 +++++++++++++++++
>   src/libvirt_public.syms          |   5 ++
>   src/qemu/qemu_driver.c           | 110 +++++++++++++++++++++++++++++++
>   src/qemu/qemu_monitor.c          |  24 +++++++
>   src/qemu/qemu_monitor.h          |  19 ++++++
>   src/qemu/qemu_monitor_json.c     | 101 ++++++++++++++++++++++++++++
>   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             |  58 ++++++++++++++++
>   15 files changed, 471 insertions(+), 3 deletions(-)
> 

Looks good to me.

Reviewed-by: Michal Privoznik <mprivozn at redhat.com>

Will push shortly. Can you please post a follow up patch that adds 
NEWS.rst entry? I think this deserves to be mention in release notes.

Michal




More information about the libvir-list mailing list