v3 of:

https://listman.redhat.com/archives/libvir-list/2022-June/232595.html

diff to v2:
- Instead of opting out, the feature is disabled by default. Until we
  address CPU pinning (and other points I've raised in v2 cover letter)
  users might face a performance problems if this was turned on
  automagically.
- Introduced new 'vcpus' state, where only vCPUs are placed into a
  scheduling group, but not emulator nor any of helper processes.
- Reworked how helper processes are placed into scheduling group.
  Instead of placing them into the group after they were spawned, create
  a dummy child, let it create new group and then use
  virCommandRunAmong(). This covers also the case where a helper might
  have spawned more threads/child processes.
- As a result of this rework, we no longer need to expose getXXXPid()
  functions that I introduced in v2 (never merged them though).

Big thanks to Dan and Dario for their review and valuable inputs!

Michal Prívozník (8):
  virprocess: Core Scheduling support
  virCommand: Introduce APIs for core scheduling
  qemu_conf: Introduce a knob to set SCHED_CORE
  qemu_domain: Introduce qemuDomainSchedCoreStart()
  qemu_process: Enable SCHED_CORE for QEMU process
  qemu: Enable SCHED_CORE for helper processes
  qemu: Enable SCHED_CORE for vCPUs
  qemu: Enable for vCPUs on hotplug

 src/libvirt_private.syms           |   6 ++
 src/qemu/libvirtd_qemu.aug         |   1 +
 src/qemu/qemu.conf.in              |  16 ++++
 src/qemu/qemu_conf.c               |  38 +++++++++
 src/qemu/qemu_conf.h               |  13 +++
 src/qemu/qemu_domain.c             | 105 ++++++++++++++++++++++++
 src/qemu/qemu_domain.h             |  12 +++
 src/qemu/qemu_hotplug.c            |   2 +-
 src/qemu/qemu_process.c            | 118 ++++++++++++++++++++++++++-
 src/qemu/qemu_process.h            |   3 +-
 src/qemu/qemu_security.c           |  11 +++
 src/qemu/qemu_virtiofs.c           |  11 +++
 src/qemu/test_libvirtd_qemu.aug.in |   1 +
 src/util/vircommand.c              |  63 +++++++++++++++
 src/util/vircommand.h              |   5 ++
 src/util/virprocess.c              | 124 +++++++++++++++++++++++++++++
 src/util/virprocess.h              |   8 ++
 17 files changed, 533 insertions(+), 4 deletions(-)

-- 
2.35.1

Reply via email to