From 38a0f6df6473edb62e9ce25df5a0a81e8ac81d77 Mon Sep 17 00:00:00 2001 From: Wang Rui Date: Mon, 10 Nov 2014 21:53:17 +0800 Subject: [PATCH] qemu: don't setup cpuset.mems if memory mode in numatune is not 'strict' If the memory mode in numatune is specified as 'preferred' with one node (such as nodeset='0'), domain's memory is not all in node 0 absolutely. Assumption that node 0 doesn't have enough memory, memory can be allocated on node 1 when qemu process startup. Then if we set cpuset.mems to '0', it may invoke OOM. Commit 1a7be8c600905aa07ac2d78293336ba8523ad48e changed the former logic of checking memory mode in virDomainNumatuneGetNodeset. This patch adds the check as before. Signed-off-by: Wang Rui --- src/qemu/qemu_cgroup.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index b5bdb362da..a87ef406a1 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -618,6 +618,10 @@ qemuSetupCpusetMems(virDomainObjPtr vm, if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET)) return 0; + if (virDomainNumatuneGetMode(vm->def->numatune, -1) != + VIR_DOMAIN_NUMATUNE_MEM_STRICT) + return 0; + if (virDomainNumatuneMaybeFormatNodeset(vm->def->numatune, nodemask, &mem_mask, -1) < 0) -- GitLab