public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Zhouping Liu <zliu@redhat.com>
To: Caspar Zhang <caspar@casparzhang.com>
Cc: LTP List <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH resend 5/6] mm: use new numa_helper
Date: Fri, 10 Aug 2012 16:02:01 +0800	[thread overview]
Message-ID: <5024BFF9.7050703@redhat.com> (raw)
In-Reply-To: <b9b0b345b3f8305ca1964914c0e1696c6106a0b1.1344492473.git.caspar@casparzhang.com>

On 08/09/2012 02:15 PM, Caspar Zhang wrote:
> This patch makes the tests in mem/ dir use numa_helper in libkerntest.
>
> Signed-off-by: Caspar Zhang<caspar@casparzhang.com>
> ---
>   testcases/kernel/mem/cpuset/Makefile           |    1 +
>   testcases/kernel/mem/cpuset/cpuset01.c         |   16 ++++----
>   testcases/kernel/mem/hugetlb/Makefile.inc      |    1 +
>   testcases/kernel/mem/hugetlb/hugemmap/Makefile |    1 +
>   testcases/kernel/mem/include/mem.h             |    2 +-
>   testcases/kernel/mem/ksm/Makefile              |    1 +
>   testcases/kernel/mem/ksm/ksm02.c               |    9 ++--
>   testcases/kernel/mem/ksm/ksm04.c               |    9 ++--
>   testcases/kernel/mem/lib/Makefile              |    1 +
>   testcases/kernel/mem/lib/mem.c                 |   50 ++++++++++++++++--------
>   testcases/kernel/mem/oom/Makefile              |    1 +
>   testcases/kernel/mem/oom/oom02.c               |    4 --
>   testcases/kernel/mem/oom/oom04.c               |    4 --
>   testcases/kernel/mem/swapping/Makefile         |    1 +
>   testcases/kernel/mem/thp/Makefile              |    1 +
>   testcases/kernel/mem/tunable/Makefile          |    1 +
>   testcases/kernel/mem/vma/Makefile              |    3 +-
>   testcases/kernel/mem/vma/vma02.c               |   19 ++++++---
>   testcases/kernel/mem/vma/vma04.c               |   11 ++++-
>   19 files changed, 81 insertions(+), 55 deletions(-)
> =======================================
> diff --git a/testcases/kernel/mem/cpuset/Makefile b/testcases/kernel/mem/cpuset/Makefile
> index f0c34ba..c9d03bf 100644
> --- a/testcases/kernel/mem/cpuset/Makefile
> +++ b/testcases/kernel/mem/cpuset/Makefile
> @@ -41,5 +41,6 @@
> trunk-clean::·|·lib-clean
> lib-clean::·$(LIBDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/cpuset/cpuset01.c b/testcases/kernel/mem/cpuset/cpuset01.c
> index b20485f..2be6953 100644
> --- a/testcases/kernel/mem/cpuset/cpuset01.c
> +++ b/testcases/kernel/mem/cpuset/cpuset01.c
> @@ -51,6 +51,7 @@
> #include·"test.h"
> #include·"usctest.h"
> #include·"mem.h"
> +#include·"numa_helper.h"
> char·*TCID·=·"cpuset01";
> int·TST_TOTAL·=·1;
> @@ -58,9 +59,9 @@
> int·TST_TOTAL·=·1;
> #if·HAVE_NUMA_H·&&·HAVE_LINUX_MEMPOLICY_H·&&·HAVE_NUMAIF_H·\
> » &&·HAVE_MPOL_CONSTANTS
> volatile·int·end;
> -static·long·nodes[MAXNODES];
> -static·long·nnodes;
> +static·int·*nodes;
> +static·int·nnodes;
> static·long·ncpus;
> static·void·testcpuset(void);
> @@ -77,12 +78,11 @@
> int·main(int·argc,·char·*argv[])
> » » tst_brkm(TBROK,·NULL,·"OPTION·PARSING·ERROR·-·%s",·msg);
> » ncpus·=·count_cpu();
> -» nnodes·=·count_numa(nodes);
> -» tst_resm(TINFO,·"The·system·has·%ld·CPUs,·%ld·NUMA·nodes",
> -» » » ncpus,·nnodes);
> +» if·(get_allowed_nodes_arr(NH_MEMS|NH_CPUS,·&nnodes,·&nodes)·<·0)
> +» » tst_brkm(TBROK|TERRNO,·NULL,·"get_allowed_nodes_arr");
> » if·(nnodes·<=·1)
> -» » tst_brkm(TCONF,·NULL,·"required·a·NUMA·system.");
> +» » tst_brkm(TCONF,·NULL,·"requires·a·NUMA·system.");
> » setup();
> » testcpuset();
> @@ -115,10 +115,10 @@
> static·void·testcpuset(void)
> » }
> » for·(lc·=·0;·TEST_LOOPING(lc);·lc++)·{
> » » Tst_count·=·0;
> -» » snprintf(buf,·BUFSIZ,·"%ld",·nodes[0]);
> +» » snprintf(buf,·BUFSIZ,·"%d",·nodes[0]);
> » » write_cpuset_files(CPATH_NEW,·"mems",·buf);
> -» » snprintf(buf,·BUFSIZ,·"%ld",·nodes[1]);
> +» » snprintf(buf,·BUFSIZ,·"%d",·nodes[1]);
> » » write_cpuset_files(CPATH_NEW,·"mems",·buf);
> » }
> =======================================
> diff --git a/testcases/kernel/mem/hugetlb/Makefile.inc b/testcases/kernel/mem/hugetlb/Makefile.inc
> index c7073a5..1831fbb 100644
> --- a/testcases/kernel/mem/hugetlb/Makefile.inc
> +++ b/testcases/kernel/mem/hugetlb/Makefile.inc
> @@ -41,5 +41,6 @@
> MAKE_DEPS» » +=·$(LIBMEM)·$(LIBIPC)
> lib-clean::·$(LIBMEMDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> #·vim:·syntax=make
> =======================================
> diff --git a/testcases/kernel/mem/hugetlb/hugemmap/Makefile b/testcases/kernel/mem/hugetlb/hugemmap/Makefile
> index 15ae693..0b1b60c 100644
> --- a/testcases/kernel/mem/hugetlb/hugemmap/Makefile
> +++ b/testcases/kernel/mem/hugetlb/hugemmap/Makefile
> @@ -34,5 +34,6 @@
> LDFLAGS»» » +=·-L$(abs_builddir)/$(LIBMEMDIR)
> LDLIBS» » » +=·$(NUMA_LIBS)·-lmem·-lltp
> MAKE_DEPS» » +=·$(LIBMEM)
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/include/mem.h b/testcases/kernel/mem/include/mem.h
> index cdc326b..16a65db 100644
> --- a/testcases/kernel/mem/include/mem.h
> +++ b/testcases/kernel/mem/include/mem.h
> @@ -67,8 +67,8 @@
> void·mount_mem(char·*name,·char·*fs,·char·*options,·char·*path,·char·*path_new); 
>
> void·umount_mem(char·*path,·char·*path_new);
> /*·shared·*/
> -long·count_numa(long·nodes[]);
> +unsigned·int·get_a_numa_node(void·(*cleanup_fn)(void));
> int··path_exist(const·char·*path,·...);
> long·read_meminfo(char·*item);
> void·set_sys_tune(char·*sys_file,·long·tune,·int·check);
> =======================================
> diff --git a/testcases/kernel/mem/ksm/Makefile b/testcases/kernel/mem/ksm/Makefile
> index c8e064c..b17845b 100644
> --- a/testcases/kernel/mem/ksm/Makefile
> +++ b/testcases/kernel/mem/ksm/Makefile
> @@ -40,5 +40,6 @@
> trunk-clean::·|·lib-clean
> lib-clean::·$(LIBDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/ksm/ksm02.c b/testcases/kernel/mem/ksm/ksm02.c
> index 92f1493..5546309 100644
> --- a/testcases/kernel/mem/ksm/ksm02.c
> +++ b/testcases/kernel/mem/ksm/ksm02.c
> @@ -88,15 +88,15 @@
> int·main(int·argc,·char·*argv[])
> » char·*msg;
> » int·size·=·128,·num·=·3,·unit·=·1;
> » unsigned·long·nmask·=·0;
> -» long·nodes[MAXNODES];
> +» unsigned·int·node;
> » msg·=·parse_opts(argc,·argv,·ksm_options,·ksm_usage);
> » if·(msg·!=·NULL)
> » » tst_brkm(TBROK,·NULL,·"OPTION·PARSING·ERROR·-·%s",·msg);
> -» if·(count_numa(nodes)·<=·1)
> -» » tst_brkm(TCONF,·NULL,·"required·a·NUMA·system.");
> +» node··=·get_a_numa_node(tst_exit);
> +» nmask·=·1·<<·node;
> » setup();
> @@ -103,8 +103,7 @@
> int·main(int·argc,·char·*argv[])
> » » Tst_count·=·0;
> » » check_ksm_options(&size,·&num,·&unit);
> -» » nmask·=·1·<<·nodes[1];
> » » if·(set_mempolicy(MPOL_BIND,·&nmask,·MAXNODES)·==·-1)·{
> » » » if·(errno·!=·ENOSYS)
> » » » » tst_brkm(TBROK|TERRNO,·cleanup,
> @@ -115,8 +114,8 @@
> int·main(int·argc,·char·*argv[])
> » » }
> » » create_same_memory(size,·num,·unit);
> -» » write_cpusets(nodes[1]);
> +» » write_cpusets(node);
> » » create_same_memory(size,·num,·unit);
> » }
> » cleanup();
> =======================================
> diff --git a/testcases/kernel/mem/ksm/ksm04.c b/testcases/kernel/mem/ksm/ksm04.c
> index 8a31051..6ecf3d0 100644
> --- a/testcases/kernel/mem/ksm/ksm04.c
> +++ b/testcases/kernel/mem/ksm/ksm04.c
> @@ -88,15 +88,15 @@
> int·main(int·argc,·char·*argv[])
> » char·*msg;
> » int·size·=·128,·num·=·3,·unit·=·1;
> » unsigned·long·nmask·=·0;
> -» long·nodes[MAXNODES];
> +» unsigned·int·node;
> » msg·=·parse_opts(argc,·argv,·ksm_options,·ksm_usage);
> » if·(msg·!=·NULL)
> » » tst_brkm(TBROK,·NULL,·"OPTION·PARSING·ERROR·-·%s",·msg);
> -» if·(count_numa(nodes)·<=·1)
> -» » tst_brkm(TCONF,·NULL,·"required·a·NUMA·system.");
> +» node··=·get_a_numa_node(tst_exit);
> +» nmask·=·1·<<·node;
> » setup();
> @@ -105,8 +105,7 @@
> int·main(int·argc,·char·*argv[])
> » » write_memcg();
> -» » nmask·=·1·<<·nodes[1];
> » » if·(set_mempolicy(MPOL_BIND,·&nmask,·MAXNODES)·==·-1)·{
> » » » if·(errno·!=·ENOSYS)
> » » » » tst_brkm(TBROK|TERRNO,·cleanup,
> @@ -117,8 +116,8 @@
> int·main(int·argc,·char·*argv[])
> » » }
> » » create_same_memory(size,·num,·unit);
> -» » write_cpusets(nodes[1]);
> +» » write_cpusets(node);
> » » create_same_memory(size,·num,·unit);
> » }
> » cleanup();
> =======================================
> diff --git a/testcases/kernel/mem/lib/Makefile b/testcases/kernel/mem/lib/Makefile
> index b22b1dd..399e290 100644
> --- a/testcases/kernel/mem/lib/Makefile
> +++ b/testcases/kernel/mem/lib/Makefile
> @@ -23,5 +23,6 @@
> include·$(top_srcdir)/include/mk/env_pre.mk
> CFLAGS» » » :=·-I../include
> LIB» » » :=·libmem.a
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/lib.mk
> =======================================
> diff --git a/testcases/kernel/mem/lib/mem.c b/testcases/kernel/mem/lib/mem.c
> index 81410d8..2077003 100644
> --- a/testcases/kernel/mem/lib/mem.c
> +++ b/testcases/kernel/mem/lib/mem.c
> @@ -22,6 +22,7 @@
> #include·"safe_macros.h"
> #include·"_private.h"
> #include·"mem.h"
> +#include·"numa_helper.h"
> /*·OOM·*/
> @@ -67,8 +68,12 @@
> void·oom(int·testcase,·int·mempolicy,·int·lite)
> #if·HAVE_NUMA_H·&&·HAVE_LINUX_MEMPOLICY_H·&&·HAVE_NUMAIF_H·\
> » &&·HAVE_MPOL_CONSTANTS
> » unsigned·long·nmask·=·0;
> -» long·nodes[MAXNODES];
> +» unsigned·int·node;
> +
> +» if·(mempolicy)
> +» » node·=·get_a_numa_node(cleanup);
> +» nmask·+=·1·<<·node;
> #endif
> » switch·(pid·=·fork())·{
> @@ -76,9 +81,7 @@
> void·oom(int·testcase,·int·mempolicy,·int·lite)
> » case·0:
> #if·HAVE_NUMA_H·&&·HAVE_LINUX_MEMPOLICY_H·&&·HAVE_NUMAIF_H·\
> » &&·HAVE_MPOL_CONSTANTS
> -» » count_numa(nodes);
> -» » nmask·+=·1·<<·nodes[1];
> » » if·(mempolicy)
> » » » if·(set_mempolicy(MPOL_BIND,·&nmask,·MAXNODES)·==·-1)
> » » » » tst_brkm(TBROK|TERRNO,·cleanup,
> @@ -107,13 +110,9 @@
> void·testoom(int·mempolicy,·int·lite,·int·numa)
> {
> » long·nodes[MAXNODES];
> -» if·(numa·&&·!mempolicy)·{
> -» » if·(count_numa(nodes)·<=·1)
> -» » » tst_brkm(TCONF,·cleanup,·"required·a·NUMA·system.");
> -» » /*·write·cpusets·to·2nd·node·*/
> -» » write_cpusets(nodes[1]);
> -» }
> +» if·(numa·&&·!mempolicy)
> +» » write_cpusets(get_a_numa_node(cleanup));
> » tst_resm(TINFO,·"start·normal·OOM·testing.");
> » oom(NORMAL,·mempolicy,·lite);
> @@ -715,17 +714,36 @@
> void·mount_mem(char·*name,·char·*fs,·char·*options,·char·*path,·char·*path_new) 
>
> /*·shared·*/
> -long·count_numa(long·nodes[])
> +/*·Warning:·*DO·NOT*·use·this·function·in·child·*/
> +unsigned·int·get_a_numa_node(void·(*cleanup_fn)(void))
> {
> -» long·nnodes,·i;
> +» unsigned·int·nd1,·nd2;
> +» int·ret;
> -» nnodes·=·0;
> -» for·(i·=·0;·i·<=·MAXNODES;·i++)
> -» » if·(path_exist(PATH_SYS_SYSTEM·"/node/node%d",·i))
> -» » » nodes[nnodes++]·=·i;
> +» ret·=·get_allowed_nodes(0,·2,·&nd1,·&nd2);
> +» switch·(ret)·{
> +» case·0:
> +» » break;
> +» case·-3:
> +» » tst_brkm(TCONF,·cleanup_fn,·"requires·a·NUMA·system.");
> +» default:
> +» » tst_brkm(TBROK|TERRNO,·cleanup_fn,·"1st·get_allowed_nodes");
> +» }
> -» return·nnodes;
> +» ret·=·get_allowed_nodes(NH_MEMS|NH_CPUS,·1,·&nd1);

Caspar, I found get_a_numa_node always return the first node id, which 
will make all cases called the function
only run in the first node, I don't think it's a good way, it decrease 
the coverage.

we should prefer to run cases on the second node, we can chose the first 
only if it just only has
one node with NH_MEMS|NH_CPUS. do you think so?

and others is good for me.

Thanks,
Zhouping
> +» switch·(ret)·{
> +» case·0:
> +» » tst_resm(TINFO,·"get·node%lu.",·nd1);
> +» » return·nd1;
> +» case·-3:
> +» » tst_brkm(TCONF,·cleanup_fn,·"requires·a·NUMA·system·that·has·"
> +» » » » "at·least·one·node·with·both·memory·and·CPU·"
> +» » » » "available.");
> +» default:
> +» » break;
> +» }
> +» tst_brkm(TBROK|TERRNO,·cleanup_fn,·"2nd·get_allowed_nodes");
> }
> int·path_exist(const·char·*path,·...)
> =======================================
> diff --git a/testcases/kernel/mem/oom/Makefile b/testcases/kernel/mem/oom/Makefile
> index c8e064c..b17845b 100644
> --- a/testcases/kernel/mem/oom/Makefile
> +++ b/testcases/kernel/mem/oom/Makefile
> @@ -40,5 +40,6 @@
> trunk-clean::·|·lib-clean
> lib-clean::·$(LIBDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/oom/oom02.c b/testcases/kernel/mem/oom/oom02.c
> index 551aad5..f0e784f 100644
> --- a/testcases/kernel/mem/oom/oom02.c
> +++ b/testcases/kernel/mem/oom/oom02.c
> @@ -48,8 +48,7 @@
> int·main(int·argc,·char·*argv[])
> {
> » char·*msg;
> » int·lc;
> -» long·nodes[MAXNODES];
> » msg·=·parse_opts(argc,·argv,·NULL,·NULL);
> » if·(msg·!=·NULL)
> @@ -58,10 +57,7 @@
> int·main(int·argc,·char·*argv[])
> » tst_brkm(TCONF,·NULL,·"test·is·not·designed·for·32-bit·system.");
> #endif
> -» if·(count_numa(nodes)·<=·1)
> -» » tst_brkm(TCONF,·NULL,·"required·a·NUMA·system.");
> -
> » setup();
> » for·(lc·=·0;·TEST_LOOPING(lc);·lc++)·{
> =======================================
> diff --git a/testcases/kernel/mem/oom/oom04.c b/testcases/kernel/mem/oom/oom04.c
> index 4b15b2f..15ba660 100644
> --- a/testcases/kernel/mem/oom/oom04.c
> +++ b/testcases/kernel/mem/oom/oom04.c
> @@ -49,8 +49,7 @@
> int·main(int·argc,·char·*argv[])
> » char·*msg;
> » int·lc;
> » int·swap_acc_on·=·1;
> -» long·nodes[MAXNODES];
> » char·buf[BUFSIZ],·mem[BUFSIZ];
> » msg·=·parse_opts(argc,·argv,·NULL,·NULL);
> @@ -60,10 +59,7 @@
> int·main(int·argc,·char·*argv[])
> » tst_brkm(TCONF,·NULL,·"test·is·not·designed·for·32-bit·system.");
> #endif
> -» if·(count_numa(nodes)·<=·1)
> -» » tst_brkm(TCONF,·NULL,·"required·a·NUMA·system.");
> -
> » setup();
> » for·(lc·=·0;·TEST_LOOPING(lc);·lc++)·{
> =======================================
> diff --git a/testcases/kernel/mem/swapping/Makefile b/testcases/kernel/mem/swapping/Makefile
> index c8e064c..b17845b 100644
> --- a/testcases/kernel/mem/swapping/Makefile
> +++ b/testcases/kernel/mem/swapping/Makefile
> @@ -40,5 +40,6 @@
> trunk-clean::·|·lib-clean
> lib-clean::·$(LIBDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/thp/Makefile b/testcases/kernel/mem/thp/Makefile
> index 9eb197e..3ef9288 100644
> --- a/testcases/kernel/mem/thp/Makefile
> +++ b/testcases/kernel/mem/thp/Makefile
> @@ -41,5 +41,6 @@
> trunk-clean::·|·lib-clean
> lib-clean::·$(LIBDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/tunable/Makefile b/testcases/kernel/mem/tunable/Makefile
> index 9eb197e..3ef9288 100644
> --- a/testcases/kernel/mem/tunable/Makefile
> +++ b/testcases/kernel/mem/tunable/Makefile
> @@ -41,5 +41,6 @@
> trunk-clean::·|·lib-clean
> lib-clean::·$(LIBDIR)
> » $(MAKE)·-C·$^·-f·"$(abs_srcdir)/$^/Makefile"·clean
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/vma/Makefile b/testcases/kernel/mem/vma/Makefile
> index 3899fcb..949db9a 100644
> --- a/testcases/kernel/mem/vma/Makefile
> +++ b/testcases/kernel/mem/vma/Makefile
> @@ -21,7 +21,6 @@
> top_srcdir··············?=·../../../..
> include·$(top_srcdir)/include/mk/testcases.mk
> -LDLIBS·»» » +=·$(NUMA_LIBS)
> -
> +include·$(top_srcdir)/testcases/kernel/include/lib.mk
> include·$(top_srcdir)/include/mk/generic_leaf_target.mk
> =======================================
> diff --git a/testcases/kernel/mem/vma/vma02.c b/testcases/kernel/mem/vma/vma02.c
> index f63bf77..13f0ce2 100644
> --- a/testcases/kernel/mem/vma/vma02.c
> +++ b/testcases/kernel/mem/vma/vma02.c
> @@ -43,6 +43,8 @@
> #include·<unistd.h>
> #include·"test.h"
> #include·"usctest.h"
> +#include·"safe_macros.h"
> +#include·"numa_helper.h"
> char·*TCID·=·"vma02";
> int·TST_TOTAL·=·1;
> @@ -73,15 +75,18 @@
> int·main(int·argc,·char·**argv)
> » msg·=·parse_opts(argc,·argv,·options,·usage);
> » if·(msg·!=·NULL)
> » » tst_brkm(TBROK,·NULL,·"OPTION·PARSING·ERROR·-·%s",·msg);
> +
> » if·(opt_node)·{
> -» » node·=·atoi(optarg);
> -» » if·(node·<·1)
> -» » » tst_brkm(TBROK,·NULL,
> -» » » » "Number·of·NUMA·nodes·cannot·be·less·that·1.");
> -» » numa_bitmask_setbit(nmask,·node);
> -» }·else
> -» » numa_bitmask_setbit(nmask,·0);
> +» » node·=·SAFE_STRTOL(NULL,·opt_nodestr,·1,·LONG_MAX);
> +» }·else·{
> +» » err·=·get_allowed_nodes(NH_MEMS|NH_MEMS,·1,·&node);
> +» » if·(err·==·-3)
> +» » » tst_brkm(TCONF,·NULL,·"requires·at·least·one·node.");
> +» » else·if·(err·<·0)
> +» » » tst_brkm(TBROK|TERRNO,·NULL,·"get_allowed_nodes");
> +» }
> +» numa_bitmask_setbit(nmask,·node);
> » for·(lc·=·0;·TEST_LOOPING(lc);·lc++)·{
> » » Tst_count·=·0;
> =======================================
> diff --git a/testcases/kernel/mem/vma/vma04.c b/testcases/kernel/mem/vma/vma04.c
> index cff0342..eca4567 100644
> --- a/testcases/kernel/mem/vma/vma04.c
> +++ b/testcases/kernel/mem/vma/vma04.c
> @@ -48,6 +48,7 @@
> #include·"test.h"
> #include·"usctest.h"
> #include·"safe_macros.h"
> +#include·"numa_helper.h"
> char·*TCID·=·"vma04";
> int·TST_TOTAL·=·5;
> @@ -85,8 +86,8 @@
> static·void·usage(void);
> int·main(int·argc,·char·**argv)
> {
> -» int·lc,·node;
> +» int·lc,·node,·err;
> » char·*msg;
> » msg·=·parse_opts(argc,·argv,·options,·usage);
> @@ -95,11 +96,15 @@
> int·main(int·argc,·char·**argv)
> » nmask·=·numa_allocate_nodemask();
> » if·(opt_node)·{
> » » node·=·SAFE_STRTOL(NULL,·opt_nodestr,·1,·LONG_MAX);
> -» » numa_bitmask_setbit(nmask,·node);
> » }·else·{
> -» » numa_bitmask_setbit(nmask,·0);
> +» » err·=·get_allowed_nodes(NH_MEMS|NH_MEMS,·1,·&node);
> +» » if·(err·==·-3)
> +» » » tst_brkm(TCONF,·NULL,·"requires·at·least·one·node.");
> +» » else·if·(err·<·0)
> +» » » tst_brkm(TBROK|TERRNO,·NULL,·"get_allowed_nodes");
> » }
> +» numa_bitmask_setbit(nmask,·node);
> » setup();
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats.http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
> _______________________________________________
> Ltp-list mailing list
> Ltp-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ltp-list
>
>
>
>


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  reply	other threads:[~2012-08-10  8:07 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-09  6:15 [LTP] [PATCH resend 0/6] NUMA and follow-up fix Caspar Zhang
2012-08-09  6:15 ` [LTP] [PATCH resend 1/6] numa_helper: add flag to get_allowed_nodes() Caspar Zhang
2012-08-10  7:43   ` Zhouping Liu
2012-08-09  6:15 ` [LTP] [PATCH resend 2/6] update testcases to use flag for get_allowed_nodes() Caspar Zhang
2012-08-10  7:45   ` Zhouping Liu
2012-08-09  6:15 ` [LTP] [PATCH resend 3/6] syscalls/numa: check syscall availability Caspar Zhang
2012-08-09  9:22   ` Jan Stancek
2012-08-09 10:35     ` Caspar Zhang
2012-08-10  7:46   ` Zhouping Liu
2012-08-10  7:54     ` Wanlong Gao
2012-08-10  8:13       ` Zhouping Liu
2012-08-09  6:15 ` [LTP] [PATCH resend 4/6] numa_helper: move to libkerntest Caspar Zhang
2012-08-10  3:26   ` [LTP] [PATCH resend 4/6 v2] " Caspar Zhang
2012-08-10  7:51     ` Zhouping Liu
2012-08-09  6:15 ` [LTP] [PATCH resend 5/6] mm: use new numa_helper Caspar Zhang
2012-08-10  8:02   ` Zhouping Liu [this message]
2012-08-10  8:22     ` Caspar Zhang
2012-08-10  8:24     ` Jan Stancek
2012-08-10  9:54       ` Zhouping Liu
2012-08-09  6:15 ` [LTP] [PATCH resend 6/6] mm: add common Makefile include: libmem.mk Caspar Zhang
2012-08-09 10:15 ` [LTP] [PATCH resend 0/6] NUMA and follow-up fix Jan Stancek
2012-08-09 10:31 ` [LTP] [PATCH resend v2 3/6] syscalls/numa: check syscall availability Caspar Zhang
2012-08-10  8:10   ` Zhouping Liu
2012-08-10  3:12 ` [LTP] [PATCH resend 0/6] NUMA and follow-up fix Zhouping Liu
2012-08-10  3:28   ` Caspar Zhang
2012-08-10  3:57     ` Zhouping Liu
2012-08-10  9:22 ` Wanlong Gao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5024BFF9.7050703@redhat.com \
    --to=zliu@redhat.com \
    --cc=caspar@casparzhang.com \
    --cc=ltp-list@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox