On 9/7/26 12:47, Jedrzej Wasiukiewicz wrote: > Resctrl support in libvirt currently associates allocations and monitors > with a set of vCPUs. This does not account for resource consumption by > QEMU IOThreads, worker threads and emulator threads. > > Allow cachetune, memorytune, energytune and their monitor elements to > omit the vcpus attribute and apply to the whole QEMU process. Assigning > the emulator process to the resctrl group before it creates threads lets > all subsequently created threads inherit the same configuration. > > Whole-process and per-vCPU allocations cannot be mixed within a domain. > A monitor without vcpus inherits its enclosing allocation's scope. Thus, > it monitors the whole process under a whole-process allocation and the > allocation's vCPU set under a per-vCPU allocation. > > This series was previously posted as: > > https://lists.libvirt.org/archives/list/[email protected]/thread/QFXZZOHRSAUIUZYANHKRAXPBDQH2OSKM/ > > Changes since v1: > - Rebased onto current master. > - Split the independent resctrl domstats fixes into a separate series. > - Added Christopher's Reviewed-by. > - Dropped the NEWS patch.
Oh, we like to document user visible changes in the NEWS file. > > Jedrzej Wasiukiewicz (4): > conf: allow omitting vcpus in cachetune/memorytune/energytune > conf: implement whole-process resctrl scope > qemu: assign whole-process resctrl groups at domain start > qemu: omit vcpus for whole-process resctrl monitor stats > > docs/formatdomain.rst | 57 +++-- > src/conf/domain_conf.c | 231 ++++++++++++------ > src/conf/domain_conf.h | 2 + > src/conf/schemas/domaincommon.rng | 48 ++-- > src/qemu/qemu_driver.c | 24 +- > src/qemu/qemu_process.c | 40 ++- > src/util/virresctrl.c | 10 +- > .../cachetune-monitor-empty-vcpus.xml | 30 +++ > .../cachetune-monitor-inherit-alloc.xml | 30 +++ > .../cachetune-wholeprocess-duplicate.xml | 32 +++ > ...chetune-wholeprocess-monitor-duplicate.xml | 31 +++ > .../cachetune-wholeprocess-monitors.xml | 31 +++ > .../energytune-colliding-monitor.xml | 30 +++ > .../energytune-wholeprocess.xml | 29 +++ > .../memorytune-wholeprocess.xml | 29 +++ > .../resctrl-wholeprocess-alloc-monitor.xml | 32 +++ > .../resctrl-wholeprocess-layering.xml | 32 +++ > .../resctrl-wholeprocess-monitors.xml | 33 +++ > .../cachetune-monitor-inherit-alloc.xml | 30 +++ > tests/genericxml2xmltest.c | 11 + > 20 files changed, 662 insertions(+), 130 deletions(-) > create mode 100644 > tests/genericxml2xmlindata/cachetune-monitor-empty-vcpus.xml > create mode 100644 > tests/genericxml2xmlindata/cachetune-monitor-inherit-alloc.xml > create mode 100644 > tests/genericxml2xmlindata/cachetune-wholeprocess-duplicate.xml > create mode 100644 > tests/genericxml2xmlindata/cachetune-wholeprocess-monitor-duplicate.xml > create mode 100644 > tests/genericxml2xmlindata/cachetune-wholeprocess-monitors.xml > create mode 100644 > tests/genericxml2xmlindata/energytune-colliding-monitor.xml > create mode 100644 tests/genericxml2xmlindata/energytune-wholeprocess.xml > create mode 100644 tests/genericxml2xmlindata/memorytune-wholeprocess.xml > create mode 100644 > tests/genericxml2xmlindata/resctrl-wholeprocess-alloc-monitor.xml > create mode 100644 > tests/genericxml2xmlindata/resctrl-wholeprocess-layering.xml > create mode 100644 > tests/genericxml2xmlindata/resctrl-wholeprocess-monitors.xml > create mode 100644 > tests/genericxml2xmloutdata/cachetune-monitor-inherit-alloc.xml Reviewed-by: Michal Privoznik <[email protected]> and merged. Sorry for letting this sit here without review for that long. Michal
