v2 of: https://listman.redhat.com/archives/libvir-list/2022-May/230902.html While technically, the original series was "just" and RFC, it got proper review and thus I'm marking this as v2. What's still missing? ===================== * Per Dario's suggestion, we should take vcpu pinning (and possibly emulator pinning as well) into account, so that the guest doesn't have to do SCHED_CORE inside it. * per-VM knob to enable/disable SCHED_CORE. But as discussed under my RFC patches, it's probably not needed, at least for now. It can always be added later, should somebody need it. Diff to v1: =========== * Turned qemu.conf knob into an enum rather than boolean, so that users can chose whether helper processes are placed into the emulator group too * Cleaned up virCommand* code; per Dan's suggestion use one variable to differentiate runAlone/runAmong states, instead of two. Michal Prívozník (9): qemu_dbus: Separate PID read code into qemuDBusGetPID qemu_vhost_user_gpu: Export qemuVhostUserGPUGetPid() qemu_tpm: Expose qemuTPMEmulatorGetPid() qemu_virtiofs: Separate PID read code into qemuVirtioFSGetPid virprocess: Core Scheduling support virCommand: Introduce APIs for core scheduling qemu_conf: Introduce a knob to set SCHED_CORE qemu: Enable SCHED_CORE for domains and helper processes qemu: Place helper processes into the same trusted group src/libvirt_private.syms | 6 ++ src/qemu/libvirtd_qemu.aug | 1 + src/qemu/qemu.conf.in | 14 ++++ src/qemu/qemu_conf.c | 42 ++++++++++ src/qemu/qemu_conf.h | 11 +++ src/qemu/qemu_dbus.c | 42 +++++++--- src/qemu/qemu_dbus.h | 4 + src/qemu/qemu_extdevice.c | 120 ++++++++++++++++++++++++++++ src/qemu/qemu_extdevice.h | 3 + src/qemu/qemu_process.c | 9 +++ src/qemu/qemu_security.c | 4 + src/qemu/qemu_tpm.c | 2 +- src/qemu/qemu_tpm.h | 7 ++ src/qemu/qemu_vhost_user_gpu.c | 2 +- src/qemu/qemu_vhost_user_gpu.h | 8 ++ src/qemu/qemu_virtiofs.c | 41 +++++++--- src/qemu/qemu_virtiofs.h | 5 ++ 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 ++ 22 files changed, 494 insertions(+), 28 deletions(-) -- 2.35.1