qemu_process: Enable SCHED_CORE for QEMU process

For QEMU_SCHED_CORE_EMULATOR or QEMU_SCHED_CORE_FULL the QEMU
process (and its vCPU threads) should be placed into its own
scheduling group. Since we have the dummy process running for
exactly this purpose use its PID as an argument to
virCommandSetRunAmong().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Michal Privoznik 2022-08-11 11:57:54 +02:00
parent 4be75216be
commit 279527334d

View File

@ -7533,6 +7533,9 @@ qemuProcessLaunch(virConnectPtr conn,
virCommandSetMaxProcesses(cmd, cfg->maxProcesses);
if (cfg->maxFiles > 0)
virCommandSetMaxFiles(cmd, cfg->maxFiles);
if (cfg->schedCore == QEMU_SCHED_CORE_EMULATOR ||
cfg->schedCore == QEMU_SCHED_CORE_FULL)
virCommandSetRunAmong(cmd, priv->schedCoreChildPID);
/* In this case, however, zero means that core dumps should be
* disabled, and so we always need to set the limit explicitly */