[PATCH 00/16] qemu: Allow setting EventLoopBaseProperties

Michal Privoznik mprivozn at redhat.com
Thu Jun 2 07:17:50 UTC 2022


QEMU introduced a way to set minimal and maximal number of worker
threads for its worker thread pools. Currently, only IOThreads and main
loop pools have this ability. Nevertheless, setting these boundaries
(and basically making QEMU spawn enough threads upfront) is crucial for
real-time workloads where having to spawn a thread may lead to missing
the time limit.

Michal Prívozník (16):
  virml: Introduce VIR_XML_PROP_NONNEGATIVE flag
  virxml: Introduce virXMLPropLongLong()
  virDomainDefParseIOThreads: Use g_autoptr() for @iothrid
  virDomainIOThreadIDDefArrayInit: Decrease scope of @iothrid
  conf: Move iothread formatter into a separate function
  conf: Introduce allocator for virDomainIOThreadIDDef
  conf: Introduce pool_min and pool_max attributes to IOThread
  qemu: Introduce QEMU_CAPS_IOTHREAD_THREAD_POOL_MAX
  qemu_validate: Check if QEMU's capable of setting iothread pool size
  qemu: Generate command line for IOThread pool size
  include: Introduce typed params for virDomainSetIOThreadParams wrt
    pool size
  qemu: Wire up new virDomainSetIOThreadParams parameters
  virsh: Wire up new virDomainSetIOThreadParams parameters
  conf: Expose QEMU's main loop object
  qemu_validate: Check if QEMU's capable of setting main loop pool size
  qemu: Generate command line for main-loop pool size

 docs/formatdomain.rst                         |  11 +-
 docs/manpages/virsh.rst                       |   7 +-
 include/libvirt/libvirt-domain.h              |  18 ++
 src/conf/domain_conf.c                        | 154 +++++++++++++++---
 src/conf/domain_conf.h                        |  11 ++
 src/conf/schemas/domaincommon.rng             |  25 +++
 src/conf/virconftypes.h                       |   2 +
 src/libvirt_private.syms                      |   1 +
 src/qemu/qemu_capabilities.c                  |   2 +
 src/qemu/qemu_capabilities.h                  |   1 +
 src/qemu/qemu_command.c                       |  48 +++++-
 src/qemu/qemu_driver.c                        |  63 ++++++-
 src/qemu/qemu_monitor.h                       |   4 +
 src/qemu/qemu_monitor_json.c                  |   2 +
 src/qemu/qemu_validate.c                      |  44 +++++
 src/util/virxml.c                             |  69 ++++++++
 src/util/virxml.h                             |  12 ++
 .../caps_7.1.0.x86_64.xml                     |   1 +
 ...othreads-ids-pool-sizes.x86_64-latest.args |  45 +++++
 .../iothreads-ids-pool-sizes.xml              |  62 +++++++
 tests/qemuxml2argvtest.c                      |   1 +
 ...iothreads-ids-pool-sizes.x86_64-latest.xml |   1 +
 tests/qemuxml2xmltest.c                       |   1 +
 tools/virsh-domain.c                          |  24 ++-
 24 files changed, 575 insertions(+), 34 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/iothreads-ids-pool-sizes.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/iothreads-ids-pool-sizes.xml
 create mode 120000 tests/qemuxml2xmloutdata/iothreads-ids-pool-sizes.x86_64-latest.xml

-- 
2.35.1



More information about the libvir-list mailing list