[PATCH v3 0/8] qemu: Enable SCHED_CORE for domains and helper processes

Michal Privoznik posted 8 patches 1 year, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/cover.1660298204.git.mprivozn@redhat.com
There is a newer version of this series
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(-)
[PATCH v3 0/8] qemu: Enable SCHED_CORE for domains and helper processes
Posted by Michal Privoznik 1 year, 8 months ago
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