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(a)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(a)redhat.com>