ltp/numa: add new test11
PATCH v3 1/3 ltp/numa: add new test11
Signed-off-by Li Wang <[email protected]>
--- testcases/kernel/numa/README | 2 ++ testcases/kernel/numa/numa01.sh | 51 ++++++++++++++++++++++++++++++++-- testcases/kernel/numa/support_numa.c | 53 ++++++++++++++++++++++++++++++++++-- 3 files changed, 101 insertions(+), 5 deletions(-)
testcases/kernel/numa/README +2 -0
@@ -54,6 +54,8 @@ Verifies the numa_node_size api with hardware checking. TestCase10: Verifieds the NUMA migratepages policy. +TestCase11: +Verifies the hugepage memory allocated from the node we specify. Pre-requisites ====================================================================================================================
testcases/kernel/numa/numa01.sh +49 -2
75 lines not on this page · raw message
testcases/kernel/numa/support_numa.c +50 -3
79 lines not on this page · raw message
Signature · 1 line
2.9.3
PATCH v3 2/3 ltp/numa: Kill the support_numa if FAILED
Signed-off-by Li Wang <[email protected]>
--- testcases/kernel/numa/numa01.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
testcases/kernel/numa/numa01.sh +11 -3
@@ -56,7 +56,7 @@ extract_numastat_p() local pid=$1 local node=$(($2 + 2)) - echo $(numastat -p $pid |grep '^Total' |awk '{print $'$node'}') + echo $(numastat -p $pid |awk '/^Total/ {print $'$node'}') } wait_for_support_numa()
@@ -121,6 +121,7 @@ test1() if [ $(echo "$Mem_curr < $MB" | bc) -eq 1 ]; then tst_res TFAIL \ "NUMA memory allocated in node$node is less than expected" + kill -CONT $pid >/dev/null 2>&1 return fi
@@ -154,6 +155,7 @@ test2() if [ $(echo "$Mem_curr < $MB" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA memory allocated in node$Preferred_node is less than expected" + kill -CONT $pid >/dev/null 2>&1 return fi
@@ -189,6 +191,7 @@ test3() if [ $(echo "$Mem_curr < $MB" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA share memory allocated in node$Preferred_node is less than expected" + kill -CONT $pid >/dev/null 2>&1 return fi
@@ -217,6 +220,7 @@ test4() if [ $(echo "$Mem_curr < $Exp_incr" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA interleave memory allocated in node$node is less than expected" + kill -CONT $pid >/dev/null 2>&1 return fi done
@@ -243,6 +247,7 @@ test5() if [ $(echo "$Mem_curr < $Exp_incr" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA interleave share memory allocated in node$node is less than expected" + kill -CONT $pid >/dev/null 2>&1 return fi done
@@ -299,6 +304,7 @@ test7() if [ $(echo "$Mem_curr < $MB" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA localnode memory allocated in node$node is less than expected" + kill -CONT $pid >/dev/null 2>&1 return fi
@@ -324,11 +330,12 @@ test8() if [ $(echo "$Mem_curr < $Exp_incr" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA interleave memhog in node$node is less than expected" + kill -KILL $pid >/dev/null 2>&1 return fi done - kill -9 $pid >/dev/null 2>&1 + kill -KILL $pid >/dev/null 2>&1 tst_res TPASS "NUMA MEMHOG policy" }
@@ -392,6 +399,7 @@ test10() if [ $(echo "$Mem_curr < $MB" |bc ) -eq 1 ]; then tst_res TFAIL \ "NUMA migratepages is not working fine" + kill -CONT $pid >/dev/null 2>&1 return fi
@@ -428,7 +436,7 @@ test11() pid=$! wait_for_support_numa $pid - Mem_huge=$(echo $(numastat -p $pid |awk '/Huge/ {print $'$((node+2))'}')) + Mem_huge=$(echo $(numastat -p $pid |awk '/^Huge/ {print $'$((node+2))'}')) Mem_huge=$((${Mem_huge%.*} * 1024)) if [ "$Mem_huge" -lt "$HPAGE_SIZE" ]; then
Signature · 1 line
2.9.3
PATCH v3 3/3 ltp/numa: use string to describe operation
In reply to Li WangSigned-off-by Li Wang <[email protected]>
--- testcases/kernel/numa/numa01.sh | 24 +++++++++--------------- testcases/kernel/numa/support_numa.c | 23 +++++++++-------------- 2 files changed, 18 insertions(+), 29 deletions(-)
testcases/kernel/numa/numa01.sh +9 -15
@@ -86,12 +86,6 @@ setup() export PAGE_SIZE=$(getconf PAGE_SIZE) export HPAGE_SIZE=$(awk '/Hugepagesize:/ {print $2}' /proc/meminfo) - # arguments to memory exercise program support_numa.c - ALLOC_1MB=1 - SHARE_1MB=2 - HUGE_PAGE=3 - PAUSE=4 - total_nodes=0 nodes_list=$(numactl --show | grep nodebind | cut -d ':' -f 2)
@@ -112,7 +106,7 @@ test1() Mem_curr=0 for node in $nodes_list; do - numactl --cpunodebind=$node --membind=$node support_numa $ALLOC_1MB & + numactl --cpunodebind=$node --membind=$node support_numa alloc_1MB & pid=$! wait_for_support_numa $pid
@@ -146,7 +140,7 @@ test2() Preferred_node=$(echo $nodes_list | cut -d ' ' -f $((COUNTER+1))) fi - numactl --cpunodebind=$node --preferred=$Preferred_node support_numa $ALLOC_1MB & + numactl --cpunodebind=$node --preferred=$Preferred_node support_numa alloc_1MB & pid=$! wait_for_support_numa $pid
@@ -182,7 +176,7 @@ test3() Preferred_node=$(echo $nodes_list | cut -d ' ' -f $((COUNTER+1))) fi - numactl --cpunodebind=$node --preferred=$Preferred_node support_numa $SHARE_1MB & + numactl --cpunodebind=$node --preferred=$Preferred_node support_numa alloc_1MB_shared & pid=$! wait_for_support_numa $pid
@@ -209,7 +203,7 @@ test4() # Memory will be allocated using round robin on nodes. Exp_incr=$(echo "$MB / $total_nodes" |bc) - numactl --interleave=all support_numa $ALLOC_1MB & + numactl --interleave=all support_numa alloc_1MB & pid=$! wait_for_support_numa $pid
@@ -236,7 +230,7 @@ test5() # Memory will be allocated using round robin on nodes. Exp_incr=$(echo "$MB / $total_nodes" |bc) - numactl --interleave=all support_numa $SHARE_1MB & + numactl --interleave=all support_numa alloc_1MB_shared & pid=$! wait_for_support_numa $pid
@@ -267,7 +261,7 @@ test6() no_of_cpus=$(tst_ncpus) # not sure whether cpu's can't be in odd number run_on_cpu=$(($((no_of_cpus+1))/2)) - numactl --physcpubind=$run_on_cpu support_numa $PAUSE & #just waits for sigint + numactl --physcpubind=$run_on_cpu support_numa pause & #just waits for sigint pid=$! var=`awk '{ print $2 }' /proc/$pid/stat` while [ $var = '(numactl)' ]; do
@@ -295,7 +289,7 @@ test7() Mem_curr=0 for node in $nodes_list; do - numactl --cpunodebind=$node --localalloc support_numa $ALLOC_1MB & + numactl --cpunodebind=$node --localalloc support_numa alloc_1MB & pid=$! wait_for_support_numa $pid
@@ -388,7 +382,7 @@ test10() Preferred_node=$(echo $nodes_list | cut -d ' ' -f $((COUNTER+1))) fi - numactl --preferred=$node support_numa $ALLOC_1MB & + numactl --preferred=$node support_numa alloc_1MB & pid=$! wait_for_support_numa $pid
@@ -432,7 +426,7 @@ test11() return fi - numactl --cpunodebind=$node --membind=$node support_numa $HUGE_PAGE & + numactl --cpunodebind=$node --membind=$node support_numa alloc_1huge_page & pid=$! wait_for_support_numa $pid
testcases/kernel/numa/support_numa.c +9 -14
@@ -50,10 +50,10 @@static void help (void ) {printf ("Input: Describe input arguments to this program\n" ); -printf (" argv[1] == 1 then allocate 1MB of memory\n" ); -printf (" argv[1] == 2 then allocate 1MB of share memory\n" ); -printf (" argv[1] == 3 then allocate 1HUGE PAGE SIZE of memory\n" ); -printf (" argv[1] == 4 then pause the program to catch sigint\n" ); +printf (" argv[1] == " alloc_1MB" then allocate 1MB of memory\n" ); +printf (" argv[1] == " alloc_1MB_shared" then allocate 1MB of share memory\n" ); +printf (" argv[1] == " alloc_1huge_page" then allocate 1HUGE PAGE SIZE of memory\n" ); +printf (" argv[1] == " pause" then pause the program to catch sigint\n" );printf ("Exit: On failure - Exits with non-zero value\n" );printf (" On success - exits with 0 exit value\n" );
@@ -97,8 +97,7 @@ int main(int argc, char *argv[])exit (1 ); } -switch (atoi (argv[1 ])) { -case 1 : +if (!strcmp (argv[1 ],"alloc_1MB" )) { buf =malloc (MB );if (!buf) {fprintf (stderr,"Memory is not available\n" );
@@ -112,8 +111,7 @@ int main(int argc, char *argv[])raise (SIGSTOP );free (buf); -break ; -case 2 : + }else if (!strcmp (argv[1 ],"alloc_1MB_shared" )) { fd =open (TEST_SFILE ,O_RDWR |O_CREAT ,0666 );/* Writing 1MB of random data into this file [32 * 32768 = 1024 * 1024] */ for (i =0 ; i <32768 ; i++){
@@ -139,8 +137,7 @@ int main(int argc, char *argv[])munmap (buf, sb.st_size);close (fd);remove (TEST_SFILE ); -break ; -case 3 : + }else if (!strcmp (argv[1 ],"alloc_1huge_page" )) { hpsz =read_hugepagesize ();if (hpsz ==0 )exit (1 );
@@ -159,11 +156,9 @@ int main(int argc, char *argv[])raise (SIGSTOP );munmap (buf, hpsz); -break ; -case 4 : + }else if (!strcmp (argv[1 ],"pause" )) {raise (SIGSTOP ); -break ; -default : + }else {help (); }
Signature · 1 line
2.9.3
PATCH v3 3/3 ltp/numa: use string to describe operation
Quoted 21 lines · Li Wang
Signed-off-by Li Wang <[email protected]>testcases/kernel/numa/support_numa.c +4
-4@@ -50,10 +50,10 @@static void help (void ) {printf ("Input: Describe input arguments to this program\n" ); -printf (" argv[1] == 1 then allocate 1MB of memory\n" ); -printf (" argv[1] == 2 then allocate 1MB of share memory\n" ); -printf (" argv[1] == 3 then allocate 1HUGE PAGE SIZE of memory\n" ); -printf (" argv[1] == 4 then pause the program to catch sigint\n" ); +printf (" argv[1] == " alloc_1MB" then allocate 1MB of memory\n" ); +printf (" argv[1] == " alloc_1MB_shared" then allocate 1MB of share memory\n" ); +printf (" argv[1] == " alloc_1huge_page" then allocate 1HUGE PAGE SIZE of memory\n" ); +printf (" argv[1] == " pause" then pause the program to catch sigint\n" );printf ("Exit: On failure - Exits with non-zero value\n" );printf (" On success - exits with 0 exit value\n" );
testcases/kernel/numa/support_numa.c int main(int argc, char *argv[]) · line 98
Quoted 2 lines
testcases/kernel/numa/support_numa.c +0
-0@@ -97,8 +97,7 @@ int main(int argc, char *argv[])exit (1 ); }
Oops, this one has little syntax error.
please apply the latest:
[PATCH v3 3/3] ltp/numa: use string to describe operation
Signature · 3 lines
Regards, Li Wang Email: [email protected]