Added a new function is_numa(), which is desinged to judge
whether a system contains more than 1 available numa nodes
or not, and lots of cases need it.

Signed-off-by: Zhouping Liu <[email protected]>
---
 testcases/kernel/include/numa_helper.h |  1 +
 testcases/kernel/lib/numa_helper.c     | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/testcases/kernel/include/numa_helper.h 
b/testcases/kernel/include/numa_helper.h
index 8e82d7b..251fd54 100644
--- a/testcases/kernel/include/numa_helper.h
+++ b/testcases/kernel/include/numa_helper.h
@@ -34,5 +34,6 @@ unsigned long get_max_node(void);
 int get_allowed_nodes_arr(int flag, int *num_nodes, int **nodes);
 int get_allowed_nodes(int flag, int count, ...);
 void nh_dump_nodes();
+int is_numa(void (*cleanup_fn)(void));
 
 #endif
diff --git a/testcases/kernel/lib/numa_helper.c 
b/testcases/kernel/lib/numa_helper.c
index 4ab8e3c..4157816 100644
--- a/testcases/kernel/lib/numa_helper.c
+++ b/testcases/kernel/lib/numa_helper.c
@@ -265,3 +265,27 @@ void nh_dump_nodes()
        print_node_info(NH_CPUS);
        print_node_info(NH_MEMS | NH_CPUS);
 }
+
+/*
+ * is_numa - judge a system is NUMA system or not
+ * NOTE: the function is designed to try to find more than
+ *       1 available node, at least each node contains memory.
+ * WARN: Don't use this func in child, as it calls tst_brkm()
+ * RETURNS:
+ *     0 - it's not a NUMA system
+ *     1 - it's a NUMA system
+ */
+int is_numa(void (*cleanup_fn)(void))
+{
+       int ret;
+       int numa_nodes = 0;
+
+       ret = get_allowed_nodes_arr(NH_MEMS, &numa_nodes, NULL);
+       if (ret < 0)
+               tst_brkm(TBROK | TERRNO, cleanup_fn, "get_allowed_nodes_arr");
+
+       if (numa_nodes > 1)
+               return 1;
+       else
+               return 0;
+}
-- 
1.7.11.7


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to