[libvirt] [PATCH v3 06/18] blockjob: allow finer bandwidth tuning for query

Peter Krempa pkrempa at redhat.com
Thu Sep 4 16:11:13 UTC 2014


On 08/31/14 06:02, Eric Blake wrote:
> While reviewing the new virDomainBlockCopy API, Peter Krempa
> pointed out that our existing design of using MiB/s for block
> job bandwidth is rather coarse, especially since qemu tracks
> it in bytes/s; so virDomainBlockCopy only accepts bytes/s.
> But once the new API is implemented for qemu, we will be in
> the situation where it is possible to set a value that cannot
> be accurately reflected back to the user, because the existing
> virDomainGetBlockJobInfo defaults to the coarser units.
> 
> Fortunately, we have an escape hatch; and one that has already
> served us well in the past: we can use the flags argument to
> specify which scale to use (see virDomainBlockResize for prior
> art).  This patch fixes the query side of the API; made easier
> by previous patches that split the query side out from the
> modification code.  Later patches will address the virsh
> interface, as well retrofitting all other blockjob APIs to
> also accept a flag for toggling bandwidth units.
> 
> * include/libvirt/libvirt.h.in (_virDomainBlockJobInfo)
> (VIR_DOMAIN_BLOCK_COPY_BANDWIDTH): Document sizing issues.
> (virDomainBlockJobInfoFlags): New enum.
> * src/libvirt.c (virDomainGetBlockJobInfo): Document new flag.
> * src/qemu/qemu_monitor.h (qemuMonitorBlockJobInfo): Add parameter.
> * src/qemu/qemu_monitor.c (qemuMonitorBlockJobInfo): Likewise.
> * src/qemu/qemu_monitor_json.h (qemuMonitorJSONBlockJobInfo):
> Likewise.
> * src/qemu/qemu_monitor_json.c (qemuMonitorJSONBlockJobInfo)
> (qemuMonitorJSONGetBlockJobInfoOne): Likewise. Don't scale here.
> * src/qemu/qemu_migration.c (qemuMigrationDriveMirror): Update
> callers.
> * src/qemu/qemu_driver.c (qemuDomainBlockPivot)
> (qemuDomainBlockJobImpl): Likewise.
> (qemuDomainGetBlockJobInfo): Likewise, and support new flag.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
>  include/libvirt/libvirt.h.in | 38 +++++++++++++++++++++++++-------------
>  src/libvirt.c                |  8 ++++++--
>  src/qemu/qemu_driver.c       | 20 ++++++++++++++++----
>  src/qemu/qemu_migration.c    |  3 ++-
>  src/qemu/qemu_monitor.c      |  8 +++++---
>  src/qemu/qemu_monitor.h      |  3 ++-
>  src/qemu/qemu_monitor_json.c | 19 ++++++++++++-------
>  src/qemu/qemu_monitor_json.h |  3 ++-
>  8 files changed, 70 insertions(+), 32 deletions(-)
> 

ACK. I presume virsh will be modified later in the series.

Peter


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140904/cde53ecf/attachment-0001.sig>


More information about the libvir-list mailing list