From: Zhouping L. <zl...@re...> - 2013-03-18 04:16:16
|
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 <zl...@re...> --- 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 |