[libvirt] [PATCH 08/12] qemu: Add length for bps/iops throttling parameters to driver
John Ferlan
jferlan at redhat.com
Sat Oct 1 13:17:43 UTC 2016
On 09/23/2016 08:56 AM, John Ferlan wrote:
> Add support for a duration/length for the bps/iops and friends.
>
> Modify the API in order to add the "blkdeviotune." specific definitions
> for the iotune throttling duration/length options
>
> total_bytes_sec_max_length
> write_bytes_sec_max_length
> read_bytes_sec_max_length
> total_iops_sec_max_length
> write_iops_sec_max_length
> read_iops_sec_max_length
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> include/libvirt/libvirt-domain.h | 54 ++++++++++++++++++++
> src/conf/domain_conf.h | 6 +++
> src/qemu/qemu_driver.c | 106 ++++++++++++++++++++++++++++++++++++++-
> src/qemu/qemu_monitor.c | 7 ++-
> src/qemu/qemu_monitor.h | 3 +-
> src/qemu/qemu_monitor_json.c | 25 ++++++++-
> src/qemu/qemu_monitor_json.h | 3 +-
> tests/qemumonitorjsontest.c | 17 ++++++-
> 8 files changed, 211 insertions(+), 10 deletions(-)
>
While working on the "next" iotune tunable to add I realized something...
[...]
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index ee16cb5..3b04754 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -113,7 +113,8 @@ VIR_LOG_INIT("qemu.qemu_driver");
> #define QEMU_NB_MEM_PARAM 3
>
> #define QEMU_NB_BLOCK_IO_TUNE_PARAM 6
> -#define QEMU_NB_BLOCK_IO_TUNE_PARAM_MAX 13
> +#define QEMU_NB_BLOCK_IO_TUNE_PARAM_LENGTH 12
> +#define QEMU_NB_BLOCK_IO_TUNE_PARAM_MAX 19
These need to be:
#define QEMU_NB_BLOCK_IO_TUNE_PARAM 6
#define QEMU_NB_BLOCK_IO_TUNE_PARAM_MAX 13
#define QEMU_NB_BLOCK_IO_TUNE_PARAM_MAX_LENGTH 19
Then [...]
> @@ -17667,6 +17759,9 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
>
> if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX))
> maxparams = QEMU_NB_BLOCK_IO_TUNE_PARAM;
> +
> + if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX_LENGTH))
> + maxparams = QEMU_NB_BLOCK_IO_TUNE_PARAM_LENGTH;
> }
This should be :
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX))
maxparams = QEMU_NB_BLOCK_IO_TUNE_PARAM;
else if (!virQEMUCapsGet(priv->qemuCaps,
QEMU_CAPS_DRIVE_IOTUNE_MAX_LENGTH))
maxparams = QEMU_NB_BLOCK_IO_TUNE_PARAM_MAX;
The default is 19 (get everything)... If we don't have the IOTUNE_MAX
cap, then there's only 6 parameters to get. If we don't have the
IOTUNE_MAX_LENGTH cap, then there's only 13 parameters to get.
John
More information about the libvir-list
mailing list