This series adds support for the QEMU iothread poll-weight property,
which controls the weight of the most recent event interval in the
adaptive polling duration calculation. The valid range is [0, 63];
a value of 0 lets QEMU use its default weight.
Changes in v2:
- Move the formatdomain docs patch right after the XML
parser/formatter patch
- Fix the docs description: "If omitted, the value is not changed"
rather than "If omitted or set to 0, the hypervisor selects a
default"
- Split the getter/stats path (patch 4) from the setter/cmdline path
(patch 5), and drop the qemuBuildIOThreadCommandLine qemuCaps
parameter since CAPS validation is handled by
qemuValidateDomainDefIOThreads
- Separate the test driver changes into its own patch (patch 6)
with the corresponding iothreads.out updates split accordingly
- Move the domstats documentation hunk into the stats patch (patch 4)
- Add a qemuxmlconf parse-error test for out-of-range weight values
- Fix Since version: 12.6.0 -> 12.7.0 (Peter Krempa)
- Drop the docs: fix typos patch (already applied upstream)
The series was validated with:
meson test -C build virschematest
meson test -C build qemucapabilitiestest
meson test -C build qemuxmlconftest
meson test -C build virshtest
meson test -C build genericxml2xmltest
QEMU commits:
9fea80ddf0 qapi/iothread: introduce poll-weight parameter for aio-poll
9563d0b5e2 aio-poll: refine iothread polling using weighted handler intervals
ed21d9d65c aio-poll: avoid unnecessary polling time computation
Jaehoon Kim (7):
conf: add iothread poll-weight XML support
docs: formatdomain: document iothread poll-weight
qemu: capabilities: add capability for iothread poll-weight
qemu: add poll-weight getter and stats support
qemu: support iothread poll-weight
test: add poll-weight support to the test driver
virsh: add iothreadset --poll-weight support
docs/formatdomain.rst | 8 ++-
docs/manpages/virsh.rst | 18 ++++--
include/libvirt/libvirt-domain.h | 25 ++++++++
src/conf/domain_conf.c | 14 ++++-
src/conf/domain_conf.h | 2 +
src/conf/domain_validate.c | 7 +++
src/conf/schemas/domaincommon.rng | 5 ++
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 6 ++
src/qemu/qemu_driver.c | 38 ++++++++++++
src/qemu/qemu_monitor.h | 2 +
src/qemu/qemu_monitor_json.c | 18 ++++++
src/qemu/qemu_validate.c | 10 +++-
src/test/test_driver.c | 12 ++++
tests/genericxml2xmlindata/iothreadids.xml | 2 +-
.../caps_11.1.0_aarch64.xml | 1 +
.../caps_11.1.0_x86_64.xml | 1 +
...s-poll-weight-outofrange.x86_64-latest.err | 1 +
.../iothreads-ids-poll-weight-outofrange.xml | 58 +++++++++++++++++++
...threads-ids-poll-weight.x86_64-latest.args | 40 +++++++++++++
...othreads-ids-poll-weight.x86_64-latest.xml | 58 +++++++++++++++++++
.../iothreads-ids-poll-weight.xml | 58 +++++++++++++++++++
tests/qemuxmlconftest.c | 2 +
tests/virshtestdata/iothreads.in | 2 +
tests/virshtestdata/iothreads.out | 18 ++++++
tools/virsh-domain.c | 17 ++++++
27 files changed, 415 insertions(+), 11 deletions(-)
create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight-outofrange.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight-outofrange.xml
create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.xml
--
2.54.0