[PATCH v2 11/15] qemu: Wire up new virDomainSetIOThreadParams parameters

Peter Krempa pkrempa at redhat.com
Tue Jun 7 15:06:50 UTC 2022


On Tue, Jun 07, 2022 at 14:52:55 +0200, Michal Privoznik wrote:
> Introduced in previous commit, QEMU driver needs to be taught how
> to set VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN and
> VIR_DOMAIN_IOTHREAD_THREAD_POOL_MAX parameters on given IOThread.
> Fortunately, this is fairly trivial to do and since these two
> parameters are exposed in domain XML too the update of inactive
> XML can be wired up too.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/qemu/qemu_driver.c       | 62 +++++++++++++++++++++++++++++++++---
>  src/qemu/qemu_monitor.h      |  4 +++
>  src/qemu/qemu_monitor_json.c |  2 ++
>  3 files changed, 63 insertions(+), 5 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 0c6645ed89..1770a1882b 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c

[...]

> diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
> index dc05dfd047..e8fe1eceae 100644
> --- a/src/qemu/qemu_monitor_json.c
> +++ b/src/qemu/qemu_monitor_json.c
> @@ -7431,6 +7431,8 @@ qemuMonitorJSONSetIOThread(qemuMonitor *mon,
>      VIR_IOTHREAD_SET_PROP("poll-max-ns", poll_max_ns);
>      VIR_IOTHREAD_SET_PROP("poll-grow", poll_grow);
>      VIR_IOTHREAD_SET_PROP("poll-shrink", poll_shrink);
> +    VIR_IOTHREAD_SET_PROP("thread-pool-min", thread_pool_min);
> +    VIR_IOTHREAD_SET_PROP("thread-pool-max", thread_pool_max);

+/**
+ * VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN:
+ *
+ * Sets the lower bound for thread pool size. A value of -1 disables this bound
+ * leaving hypervisor use its default value. Accepted type is
+ * VIR_TYPED_PARAM_INT.
+ *
+ * Since: 8.5.0
+ */
+# define VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN "thread_pool_min"


I've tried following:


 $ virsh iothreadset cd --id 3 --thread-pool-min 123
 error: internal error: unable to execute QEMU command 'qom-set': bad thread-pool-min/thread-pool-max values

 $ virsh iothreadset cd --id 3 --thread-pool-max 123

 $ virsh iothreadset cd --id 3 --thread-pool-min 2

 $ virsh iothreadset cd --id 3 --thread-pool-min -1
 error: internal error: unable to execute QEMU command 'qom-set': thread-pool-min value must be in range [0, 9223372036854775807]


There are two conclusions:
    - '-1' value simply doesn't work as documented
    - we'll need to document that when live-setting 'max' needs to be
      set first


More information about the libvir-list mailing list