[libvirt] [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 bace06f..902ed43 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); } -- 1.8.1.4

ping. On 22/04/13 15:14, Osier Yang wrote:
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 bace06f..902ed43 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); }

On 04/22/2013 01:14 AM, Osier Yang wrote:
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(-)
ACK.
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);
I don't know if INTERNAL_ERROR is the best choice, but it is pre-existing so it doesn't hold up this patch. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On 24/04/13 23:17, Eric Blake wrote:
On 04/22/2013 01:14 AM, Osier Yang wrote:
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(-) ACK.
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);
I don't know if INTERNAL_ERROR is the best choice, but it is pre-existing so it doesn't hold up this patch.
Pushed, thanks,
participants (2)
-
Eric Blake
-
Osier Yang