[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