[libvirt] [PATCH 2/3] util: move the pagesize and node check and error report to one place

Luyao Huang lhuang at redhat.com
Wed Oct 21 04:13:40 UTC 2015


Just like 1c24cfe9, check the pagesize and numa node if we cannot find
the hugepage path. And improve the error message again.

After this patch:
 # virsh allocpages --pagesize 2047 --pagecount 1 --cellno 0
 error: operation failed: page size 2047 is not available on node 0

 # virsh allocpages --pagesize 2047 --pagecount 1
 error: operation failed: page size 2047 is not available

Signed-off-by: Luyao Huang <lhuang at redhat.com>
---
 src/util/virnuma.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/util/virnuma.c b/src/util/virnuma.c
index cb80972..815cbc1 100644
--- a/src/util/virnuma.c
+++ b/src/util/virnuma.c
@@ -836,19 +836,25 @@ virNumaSetPagePoolSize(int node,
         goto cleanup;
     }
 
-    if (node != -1 && !virNumaNodeIsAvailable(node)) {
-        virReportError(VIR_ERR_OPERATION_FAILED,
-                       _("NUMA node %d is not available"),
-                       node);
-        goto cleanup;
-    }
-
     if (virNumaGetHugePageInfoPath(&nr_path, node, page_size, "nr_hugepages") < 0)
         goto cleanup;
 
     if (!virFileExists(nr_path)) {
-        virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-                       _("page size or NUMA node not available"));
+        if (node != -1) {
+            if (!virNumaNodeIsAvailable(node)) {
+                virReportError(VIR_ERR_OPERATION_FAILED,
+                               _("NUMA node %d is not available"),
+                               node);
+            } else {
+                virReportError(VIR_ERR_OPERATION_FAILED,
+                               _("page size %u is not available on node %d"),
+                               page_size, node);
+            }
+        } else {
+            virReportError(VIR_ERR_OPERATION_FAILED,
+                           _("page size %u is not available"),
+                           page_size);
+        }
         goto cleanup;
     }
 
-- 
1.8.3.1




More information about the libvir-list mailing list