[PATCH v3 0/7] support mode option for dirtyrate calculation

Hyman huangy81 at chinatelecom.cn
Thu Feb 10 16:26:59 UTC 2022


Ping for this patchset.

Thanks,
Yong

在 2022/1/28 15:35, huangy81 at chinatelecom.cn 写道:
> From: Hyman Huang(黄勇) <huangy81 at chinatelecom.cn>
> 
> v3:
> - Rebase the master
> - [PATCH v2 2/6]: Fix the usage of virQEMUCapsGet
> - [PATCH v2 4/6]: Fix the cleanup missed in qemuDomainStartDirtyRateCalc
> - [PATCH v2 4/6]: Move all blocks below ACL check
> - [PATCH v2 4/6]: Make the qemuMonitorJSONStartDirtyRateCalc cleaner by
>                    merging the different case of qemuMonitorJSONMakeCommand
> - [PATCH v2 4/6]: Code clean, make the error message not be line-broken
> - [PATCH v2 5/6]: Abstract the enum definition into a standalone commit
> - [PATCH v2 5/6]: Move the validations code above calculating flags block
> - [PATCH v2 6/6]: Change the type of 'value' field to unsigned in
>                    struct qemuMonitorDirtyRateVcpu
> - [PATCH v2 6/6]: Rename the enum type qemuMonitorDirtyRateCalcMode to
>                    virDomainDirtyRateCalcMode
> - [PATCH v2 6/6]: Code clean, align the code in qemuDomainGetStatsDirtyRate
> 
> Thanks Peter for quick and precise response, please review.
> 
> Regards
> 
> Yong
> 
> v2:
> Rebase master and fix confilicts with commit
> "Introduce QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI_PREALLOC"
> 
> Thanks !
> 
> v1:
> This patchset introduce mode option as the supplement of
> qemuDomainStartDirtyRateCalc api, add calc_mode for dirtyrate
> statistics correspondingly.
> 
> Qemu add mode parameter for calc-dirty-rate command since >= 6.2.0,
> either of these three mode "page-sampling, dirty-bitmap, dirty-ring"
> can be specified when calculating dirty page rate.
> 
> Page sampling is the original mode and used as default mode.
> 
> Dirty bitmap mode use kvm log sync api to fetch the dirty-bitmap
> and count the increased 1 bits number during measurement, thus,
> calculate the dirty page rate.
> 
> Dirty ring mode use the dirty-ring mechanism implemented in Qemu
> which can count the increased dirty page on virtual cpu granularity,
> thus, calculate the per-vcpu dirty page rate.
> 
> These three calculation mode can be used in different scenarios, and
> the dirty-bitmap, dirty-ring mode may be more accurate to a certain
> degree. So maybe it's time to support the mode option for dirtyrate
> calculation.
> 
> This series make main modifications as the following:
> 1. introduce QEMU_CAPS_CALC_DIRTY_RATE capability to probe
>     calc-dirty-rate command in case of failure since it just
>     introduced since >= 5.2.0
> 
> 2. introduce QEMU_CAPS_DIRTYRATE_MODE capability to probe
>     mode option of calc-dirty-rate command in case of failure, same
>     as 1.
> 
> 3. implement mode option support for dirtyrate calculation.
> 
> Please review, thanks !
> 
> Best Regards !
> 
> Hyman Huang(黄勇) (7):
>    qemu_capabilities: Introduce QEMU_CAPS_CALC_DIRTY_RATE capability
>    qemu_driver: Probe capability before calculating dirty page rate
>    qemu_capabilities: Introduce QEMU_CAPS_DIRTYRATE_MODE capability
>    include: Introduce enum for qemuDomainStartDirtyRateCalc
>    qemu_driver: Add mode parameter to qemuDomainStartDirtyRateCalc
>    virsh: Add mode option to domdirtyrate-calc virsh api
>    qemu_driver: Add calc_mode for dirtyrate statistics
> 
>   docs/manpages/virsh.rst                           |  7 ++-
>   include/libvirt/libvirt-domain.h                  | 24 ++++++++
>   src/libvirt-domain.c                              | 17 +++++-
>   src/qemu/qemu_capabilities.c                      |  4 ++
>   src/qemu/qemu_capabilities.h                      |  2 +
>   src/qemu/qemu_driver.c                            | 48 +++++++++++++++-
>   src/qemu/qemu_monitor.c                           |  5 +-
>   src/qemu/qemu_monitor.h                           | 13 ++++-
>   src/qemu/qemu_monitor_json.c                      | 69 ++++++++++++++++++++++-
>   src/qemu/qemu_monitor_json.h                      |  3 +-
>   tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml |  1 +
>   tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml   |  1 +
>   tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml |  1 +
>   tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml   |  1 +
>   tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml  |  1 +
>   tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml |  1 +
>   tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml   |  1 +
>   tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml  |  1 +
>   tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml  |  1 +
>   tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml |  1 +
>   tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml   |  2 +
>   tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml  |  2 +
>   tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml   |  2 +
>   tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml  |  2 +
>   tools/virsh-domain.c                              | 28 ++++++++-
>   25 files changed, 226 insertions(+), 12 deletions(-)
> 





More information about the libvir-list mailing list