[PATCH v2 06/15] conf: Introduce pool_min and pool_max attributes to IOThread

Peter Krempa pkrempa at redhat.com
Tue Jun 7 14:41:56 UTC 2022


While at it you can update the summary ^^ 

On Tue, Jun 07, 2022 at 14:52:50 +0200, Michal Privoznik wrote:
> At least in case of QEMU an IOThread is actually a pool of
> threads (see iothread_set_aio_context_params() in QEMU's code
> base). As such, it can have minimal and maximal number of worker
> threads. Allow setting them in domain XML.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  docs/formatdomain.rst                         |  5 +-
>  src/conf/domain_conf.c                        | 34 ++++++++++-
>  src/conf/domain_conf.h                        |  3 +
>  src/conf/schemas/domaincommon.rng             | 10 +++
>  .../iothreads-ids-pool-sizes.xml              | 61 +++++++++++++++++++
>  ...iothreads-ids-pool-sizes.x86_64-latest.xml |  1 +
>  tests/qemuxml2xmltest.c                       |  1 +
>  7 files changed, 111 insertions(+), 4 deletions(-)
>  create mode 100644 tests/qemuxml2argvdata/iothreads-ids-pool-sizes.xml
>  create mode 120000 tests/qemuxml2xmloutdata/iothreads-ids-pool-sizes.x86_64-latest.xml
> 
> diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
> index 312b605a8b..2aa39b2f63 100644
> --- a/docs/formatdomain.rst
> +++ b/docs/formatdomain.rst
> @@ -675,7 +675,7 @@ host/guest with many LUNs. :since:`Since 1.2.8 (QEMU only)`
>         <iothread id="2"/>
>         <iothread id="4"/>
>         <iothread id="6"/>
> -       <iothread id="8"/>
> +       <iothread id="8" thread_pool_min="2" thread_pool_max="32"/>
>       </iothreadids>
>       ...
>     </domain>
> @@ -696,6 +696,9 @@ host/guest with many LUNs. :since:`Since 1.2.8 (QEMU only)`
>     any predefined ``id``. If there are more ``iothreadids`` defined than
>     ``iothreads`` defined for the domain, then the ``iothreads`` value will be
>     adjusted accordingly. :since:`Since 1.2.15`
> +   The element has two optional attributes ``thread_pool_min`` and
> +   ``hread_pool_max`` which allow setting lower and upper boundary for number

'thread' ^^

> +   of worker threads for given IOThread. :since:`Since 8.5.0`

[...]

> @@ -27607,8 +27620,23 @@ virDomainDefIOThreadsFormat(virBuffer *buf,
>          return;
>  
>      for (i = 0; i < def->niothreadids; i++) {
> -        virBufferAsprintf(&childrenBuf, "<iothread id='%u'/>\n",
> -                          def->iothreadids[i]->iothread_id);
> +        virDomainIOThreadIDDef *iothread = def->iothreadids[i];
> +        virBuffer attrBuf = VIR_BUFFER_INITIALIZER;

Commonly we use 'g_auto(virBuffer)', not a problem here, just a
convention.

> +
> +        virBufferAsprintf(&attrBuf, " id='%u'",
> +                          iothread->iothread_id);

Reviewed-by: Peter Krempa <pkrempa at redhat.com>


More information about the libvir-list mailing list