From 148edcce6642c6c510a69189de0f7c7936035585 Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Mon, 22 Apr 2013 15:14:56 +0800 Subject: [PATCH] util: Error out if the numa nodeset is out of range Instead of a silent warning, it's better to error out if the numa nodeset is out of range. Just like for numa node larger than NUMA_NUM_NODES. --- src/util/virnuma.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/util/virnuma.c b/src/util/virnuma.c index bace06fb4b..902ed43512 100644 --- a/src/util/virnuma.c +++ b/src/util/virnuma.c @@ -89,7 +89,6 @@ virNumaSetupMemoryPolicy(virNumaTuneDef numatune, int ret = -1; int i = 0; int maxnode = 0; - bool warned = false; virBitmapPtr tmp_nodemask = NULL; if (numatune.memory.placement_mode == @@ -113,20 +112,17 @@ virNumaSetupMemoryPolicy(virNumaTuneDef numatune, } maxnode = numa_max_node() + 1; + /* Convert nodemask to NUMA bitmask. */ nodemask_zero(&mask); i = -1; while ((i = virBitmapNextSetBit(tmp_nodemask, i)) >= 0) { - if (i > NUMA_NUM_NODES) { + if (i > maxnode || i > NUMA_NUM_NODES) { virReportError(VIR_ERR_INTERNAL_ERROR, - _("Host cannot support NUMA node %d"), i); + _("Nodeset is out of range, host cannot support " + "NUMA node bigger than %d"), i); return -1; } - if (i > maxnode && !warned) { - VIR_WARN("nodeset is out of range, there is only %d NUMA " - "nodes on host", maxnode); - warned = true; - } nodemask_set(&mask, i); }