mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 01:34:11 +03:00
qemu: process: Fix start with unpluggable vcpus with NUMA pinning
Similarly to vcpu hotplug the emulator thread cgroup numa mapping needs to be relaxed while hot-adding vcpus so that the threads can allocate data in the DMA zone. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1370084
This commit is contained in:
parent
eb5dee3534
commit
68115fe0ab
@ -4864,6 +4864,8 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr driver,
|
||||
qemuDomainAsyncJob asyncJob)
|
||||
{
|
||||
unsigned int maxvcpus = virDomainDefGetVcpusMax(vm->def);
|
||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||
qemuCgroupEmulatorAllNodesDataPtr emulatorCgroup = NULL;
|
||||
virDomainVcpuDefPtr vcpu;
|
||||
qemuDomainVcpuPrivatePtr vcpupriv;
|
||||
virJSONValuePtr vcpuprops = NULL;
|
||||
@ -4896,6 +4898,9 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr driver,
|
||||
qsort(bootHotplug, nbootHotplug, sizeof(*bootHotplug),
|
||||
qemuProcessVcpusSortOrder);
|
||||
|
||||
if (qemuCgroupEmulatorAllNodesAllow(priv->cgroup, &emulatorCgroup) < 0)
|
||||
goto cleanup;
|
||||
|
||||
for (i = 0; i < nbootHotplug; i++) {
|
||||
vcpu = bootHotplug[i];
|
||||
|
||||
@ -4920,6 +4925,7 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr driver,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
qemuCgrouEmulatorAllNodesRestore(emulatorCgroup);
|
||||
VIR_FREE(bootHotplug);
|
||||
virJSONValueFree(vcpuprops);
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user