]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Error out if the numa nodeset is out of range
authorOsier Yang <jyang@redhat.com>
Mon, 22 Apr 2013 07:14:56 +0000 (15:14 +0800)
committerOsier Yang <jyang@redhat.com>
Wed, 24 Apr 2013 15:23:31 +0000 (23:23 +0800)
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

index bace06fb4be8c5c8010c7276e4bac4581053f2c9..902ed43512a875fade3238f9b57eaa21f8712d15 100644 (file)
@@ -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);
     }