On a Wednesday in 2023, Peter Krempa wrote:
Currently we allow configuring the 'poll-max-ns',
'poll-grow', and
'poll-shrink' parameters of qemu iothreads only during runtime and they
are not persisted. Add XML machinery to persist them.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
docs/formatdomain.rst | 11 ++++-
src/conf/domain_conf.c | 41 ++++++++++++++++++-
src/conf/domain_conf.h | 7 ++++
src/conf/schemas/domaincommon.rng | 19 +++++++++
.../iothreads-ids-pool-sizes.xml | 12 ++++--
5 files changed, 85 insertions(+), 5 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index c31c2fe35c..bfef1c63e6 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -740,7 +740,9 @@ host/guest with many LUNs. :since:`Since 1.2.8 (QEMU only)`
<iothread id="2"/>
<iothread id="4"/>
<iothread id="6"/>
- <iothread id="8" thread_pool_min="2"
thread_pool_max="32"/>
+ <iothread id="8" thread_pool_min="2"
thread_pool_max="32">
+ <poll max='123' grow='456' shrink='789'/>
+ </iothread>
</iothreadids>
<defaultiothread thread_pool_min="8"
thread_pool_max="16"/>
...
@@ -766,6 +768,13 @@ host/guest with many LUNs. :since:`Since 1.2.8 (QEMU only)`
``thread_pool_max`` which allow setting lower and upper boundary for number
of worker threads for given IOThread. While the former can be value of zero,
the latter can't. :since:`Since 8.5.0`
+ :since:`Since 9.1.0` an optional sub-element ``poll`` with can be used to
9.3.0
+ override the hypervisor-default interval of polling for the
iothread before
+ it switches back to events. The optional attribute ``max`` sets the maximum
+ time polling should be used in nanoseconds. Setting ``max`` to ``0`` disables
+ polling. Attributes ``grow`` and ``shrink`` override (or disable when set to
+ ``0`` the default steps for increasing/decreasing the polling interval if
+ the set interval is deemed insufficient or extensive.
Jano