mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
virLXCControllerSetupResourceLimits: Call virNuma*() iff needed
Like we are doing in qemu driver (ea576ee543d6fb95583), lets call virNumaSetupMemoryPolicy() only if really needed. Problem is, if we numa_set_membind() child, there's no way to change it from the daemon afterwards. So any later attempts to change the pinning will fail. But in very weird way - CGroups will be set, but due to membind child will not allocate memory from any other node. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
7cd0cf05f7
commit
362566880f
@ -742,16 +742,26 @@ static int virLXCControllerSetupResourceLimits(virLXCControllerPtr ctrl)
|
||||
virBitmapPtr nodeset = NULL;
|
||||
virDomainNumatuneMemMode mode;
|
||||
|
||||
VIR_DEBUG("Setting up process resource limits");
|
||||
|
||||
if (virLXCControllerGetNumadAdvice(ctrl, &auto_nodeset) < 0)
|
||||
goto cleanup;
|
||||
|
||||
nodeset = virDomainNumatuneGetNodeset(ctrl->def->numa, auto_nodeset, -1);
|
||||
mode = virDomainNumatuneGetMode(ctrl->def->numa, -1);
|
||||
|
||||
if (virNumaSetupMemoryPolicy(mode, nodeset) < 0)
|
||||
goto cleanup;
|
||||
if (mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
|
||||
virCgroupControllerAvailable(VIR_CGROUP_CONTROLLER_CPUSET)) {
|
||||
/* Use virNuma* API iff necessary. Once set and child is exec()-ed,
|
||||
* there's no way for us to change it. Rely on cgroups (if available
|
||||
* and enabled in the config) rather then virNuma*. */
|
||||
VIR_DEBUG("Relying on CGroups for memory binding");
|
||||
} else {
|
||||
|
||||
VIR_DEBUG("Setting up process resource limits");
|
||||
|
||||
if (virLXCControllerGetNumadAdvice(ctrl, &auto_nodeset) < 0)
|
||||
goto cleanup;
|
||||
|
||||
nodeset = virDomainNumatuneGetNodeset(ctrl->def->numa, auto_nodeset, -1);
|
||||
|
||||
if (virNumaSetupMemoryPolicy(mode, nodeset) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virLXCControllerSetupCpuAffinity(ctrl) < 0)
|
||||
goto cleanup;
|
||||
|
Loading…
x
Reference in New Issue
Block a user