[LTP] [PATCH 3/3] ltp/numa: Rewrite && convert to new library

Cyril Hrubis chrubis@suse.cz
Thu Nov 24 17:02:45 CET 2016


Hi!
> +##############################################################################
> +#                                                                            #
> +# Copyright (c) International Business Machines  Corp., 2007                 #
> +#               Sivakumar Chinnaiah, Sivakumar.C@in.ibm.com                  #
> +# Copyright (c) Linux Test Project, 2016                                     #
> +#                                                                            #
> +# This program is free software: you can redistribute it and/or modify       #
> +# it under the terms of the GNU General Public License as published by       #
> +# the Free Software Foundation, either version 3 of the License, or          #
> +# (at your option) any later version.                                        #
> +#                                                                            #
> +# This program is distributed in the hope that it will be useful,            #
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of             #
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
> +# GNU General Public License for more details.                               #
> +#                                                                            #
> +# You should have received a copy of the GNU General Public License          #
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.       #
> +#                                                                            #
> +##############################################################################
> +#                                                                            #
> +# Description:  Test Basic functionality of numactl command.                 #
> +#               Test #1: Verifies cpunodebind and membind                    #
> +#               Test #2: Verifies preferred node bind for memory allocation  #
> +#               Test #3: Verifies memory interleave on all nodes             #
> +#               Test #4: Verifies physcpubind                                #
> +#               Test #5: Verifies localalloc                                 #
> +#               Test #6: Verifies memory policies on shared memory           #
> +#               Test #7: Verifies numademo                                   #
> +#               Test #8: Verifies memhog                                     #
> +#               Test #9: Verifies numa_node_size api                         #
> +#               Test #10:Verifies Migratepages                               #
> +#                                                                            #
> +##############################################################################
> +
> +TST_ID="numa01"
> +TST_CNT=10
> +TST_SETUP=setup
> +TST_CLEANUP=cleanup
> +TST_TESTFUNC=test
> +TST_NEEDS_TMPDIR=1
> +TST_NEEDS_ROOT=1
> +
> +. tst_test.sh
>  
>  # Function:     extract_numastat
>  #
> -# Description:  - extract the value of given row,column from the numastat output .
> +# Description:  - extract the value of given row, column from the numastat output.
>  #
>  # Input:        - $1 - row number.
>  #               - $2 - column number.
> @@ -79,29 +55,29 @@ chk_ifexists()
>  #               - non-zero on failure.
>  extract_numastat()
>  {
> -    RC=0
> -
> -    # check whether numastat output is changed
> -
> -    RC=$(awk '
> -        { if ( NR == '$2' ){
> -            print $1;
> -            }
> -        }
> -        ' $LTPTMP/numalog)
> -    if [ $RC != $1 ]
> -    then
> -	tst_brkm TBROK NULL "numastat o/p seems to be changed, $1 expected to be in the row $2"
> -        return 1
> -    fi
> -
> -    RC=$(awk '
> -        { if ( NR == '$2' ){
> -            print $'$3';
> -            }
> -        }
> -        ' $LTPTMP/numalog)
> -    return 0
> +	RC=0
> +
> +	# check whether numastat output is changed
> +
> +	RC=$(awk '
> +	{ if ( NR == '$2' ){
> +		print $1;
> +		}
> +	}
> +	' $LTPTMP/numalog)
> +	if [ $RC != $1 ]
> +	then
> +		tst_brk TBROK "numastat o/p seems to be changed, $1 expected to be in the row $2"
> +		return 1
> +	fi
> +
> +	RC=$(awk '
> +	{ if ( NR == '$2' ){
> +		print $'$3';
> +		}
> +	}
> +	' $LTPTMP/numalog)
> +	return 0

Why do we even bother to return 0 here?

Also passing the result aroun in global variable is not clean solution
as well. Why don't you rather echo te result here and then do
RC=$(check_numastat) in the code?

>  }
>  
>  # Function:     wait_for_update
> @@ -110,28 +86,27 @@ extract_numastat()
>  #               - $2 - numastat content.
>  #
>  # Description:  - waiting for numastat update
> -#
>  wait_for_update()
>  {
> -    NUMASTAT_PATH="/sys/devices/system/node/node$1/numastat"
> -    local loop=0
> +	NUMASTAT_PATH="/sys/devices/system/node/node$1/numastat"
> +	local loop=0
>  
> -    while [ $loop -lt 5 ]; do
> -        sum_value=0
> +	while [ $loop -lt 5 ]; do
> +		sum_value=0
>  
> -        for i in $(seq 200); do
> -            det_value=$(grep $2 ${NUMASTAT_PATH} | cut -d ' ' -f 2)
> -            sum_value=$((sum_value + det_value))
> +		for i in $(seq 200); do
> +			det_value=$(grep $2 ${NUMASTAT_PATH} | cut -d ' ' -f 2)
> +			sum_value=$((sum_value + det_value))
>  
> -            sync && tst_sleep 10ms
> -        done
> +			sync && tst_sleep 10ms
> +		done
>  
> -        if [ $((sum_value/200)) -eq $det_value ]; then
> -            return
> -        fi
> +		if [ $((sum_value/200)) -eq $det_value ]; then
> +			return
> +		fi
>  
> -        loop=$((loop+1))
> -    done
> +		loop=$((loop+1))
> +	done
>  }
>  
>  # Function:     comparelog
> @@ -145,564 +120,468 @@ wait_for_update()
>  # Return:       - difference of arguments on success.
>  comparelog()
>  {
> -
> -    if [ $2 -gt $1 ]
> -    then
> -        RC=$[$2-$1]
> -    else
> -        RC=0
> -    fi
> -    return 0
> +	if [ $2 -gt $1 ]; then
> +		RC=$[$2-$1]
> +	else
> +		RC=0
> +	fi
> +	return 0
>  }
>  
> -
> -
> -# Function: init
> +# Function: setup
>  #
>  # Description:  - Check if command required for this test exits.
>  #               - Initialize global variables.
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -init()
> +setup()
>  {
> -    # Initialize global variables.
> -    export RC=0
> -    export TST_TOTAL=6
> -    export TCID="Initnuma"
> -    export TST_COUNT=0
> -
> -    # Page Size
> -    page_size=0
> -
> -    # row definitions, pls see at the top of this file
> -    numa_hit=2
> -    numa_miss=3
> -    numa_foreign=4
> -    interleave_hit=5
> -    local_node=6
> -    other_node=7
> -
> -    #arguments to memory exercise program support_numa.c
> -    PRT_PG_SIZE=1
> -    ALLOC_1MB=2
> -    PAUSE=3
> -
> -    # Inititalize cleanup function.
> -    trap "cleanup" 0
> -
> -    # create the temporary directory used by this testcase
> -    if [ -z $TMP ]
> -    then
> -        LTPTMP=/tmp/tst_numa.$$
> -    else
> -        LTPTMP=$TMP/tst_numa.$$
> -    fi
> -
> -    mkdir -p $LTPTMP &>/dev/null || RC=$?
> -    if [ $RC -ne 0 ]
> -    then
> -         tst_brkm TBROK NULL "INIT: Unable to create temporary directory"
> -         return $RC
> -    fi
> -
> -    # check if commands tst_*, numa*, awk exists.
> -    chk_ifexists INIT tst_resm   || return $RC
> -    chk_ifexists INIT numactl    || return $RC
> -    chk_ifexists INIT numastat   || return $RC
> -    chk_ifexists INIT awk        || return $RC
> -    chk_ifexists INIT cat        || return $RC
> -    chk_ifexists INIT kill       || return $RC
> -
> -    RC=0
> -    #Set pagesize
> -    support_numa $PRT_PG_SIZE > $LTPTMP/numaarg || RC=$?
> -    if [ $RC -ne 0 ]
> -    then
> -        tst_resm TFAIL "INIT: memory exerciser program support_numa exits abnormally"
> -    fi
> -    page_size=$(cat $LTPTMP/numaarg)
> -
> -    tst_resm TINFO "INIT: Numa tests will start now !!"
> -}
> +	export RC=0
> +
> +	# Page Size
> +	page_size=0
> +
> +	# row definitions, pls see at the top of this file
> +	numa_hit=2
> +	numa_miss=3
> +	numa_foreign=4
> +	interleave_hit=5
> +	local_node=6
> +	other_node=7
> +
> +	# arguments to memory exercise program support_numa.c
> +	PRT_PG_SIZE=1
> +	ALLOC_1MB=2
> +	PAUSE=3
> +
> +	# create the temporary directory used by this testcase
> +	if [ -z $TMP ]; then
> +		LTPTMP=/tmp/tst_numa.$$
> +	else
> +		LTPTMP=$TMP/tst_numa.$$
> +	fi
>  
> +	mkdir -p $LTPTMP &>/dev/null || RC=$?
> +	if [ $RC -ne 0 ]; then
> +		tst_brk TBROK "INIT: Unable to create temporary directory"
> +	fi

The test library will create temporary directory for you. So you should
just drop the LTPTMP from the source code and work with files in local
directory instead.

> +	# check if commands numa*, awk exists.
> +	tst_check_cmds numactl
> +	tst_check_cmds numastat
> +	tst_check_cmds awk

You can also specify these before the tst_test.sh is sourced as:

TST_NEEDS_CMDS="numactl numastat awk"

> -# Function:     cleanup
> -#
> -# Description:  - remove temporaty files and directories.
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -cleanup()
> -{
> -    TCID=exitnuma
> -    RC=0
> +	RC=0
> +	#Set pagesize
> +	support_numa $PRT_PG_SIZE > $LTPTMP/numaarg || RC=$?
> +	if [ $RC -ne 0 ]; then
> +		tst_res TFAIL "INIT: memory exerciser program support_numa exits abnormally"
> +	fi
> +	page_size=$(cat $LTPTMP/numaarg)

Why the file? Why can't you just do

page_size=$(support_numa $PRT_PG_SIZE)

And also we have 'getconf PAGE_SIZE' so that we can drop the code for
page size queries from the C helper.

> +	total_nodes=0       # total no. of numa nodes
> +	# all availiable nodes id list
> +	nodes_list=`numactl --show | grep nodebind | cut -d ':' -f 2`
> +	for node in `echo $nodes_list`; do

Why not just:

for node in $nodes_list; do
	...
done

> +		total_nodes=$[$total_nodes+1]
> +	done
> +	tst_res TINFO "The system contains $total_nodes nodes: $nodes_list"
> +	if [ $total_nodes -le 1 ]; then
> +		tst_brk TCONF "your machine does not support numa policy
> +		or your machine is not a NUMA machine"
> +	fi
>  
> -    # remove all the temporary files created by this test.
> -    tst_resm TINFO "CLEAN: removing $LTPTMP"
> -    rm -fr $LTPTMP || RC=$?
> -    return $RC
> +	tst_res TINFO "INIT: Numa tests will start now !!"
>  }
>  
> +cleanup()
> +{
> +	# remove all the temporary files created by this test.
> +	tst_res TINFO "CLEAN: removing $LTPTMP"
> +	rm -fr $LTPTMP
> +}
>  
> -
> -# Function:     test01
> +# Function:     test1
>  #
>  # Description:  - Verification of local node and memory affinity
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test01()
> +test1()
>  {
> -    TCID=numa01
> -    TST_COUNT=1
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    Curr_value=0	# Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ PAGESIZE
> -    col=0
> -    MB=$[1024*1024]
> -
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]		#Node number in numastat o/p
> -        numastat > $LTPTMP/numalog
> -        extract_numastat local_node $local_node $col || return 1
> -        Prev_value=$RC
> -        numactl --cpunodebind=$node --membind=$node support_numa $ALLOC_1MB
> -        numastat > $LTPTMP/numalog
> -        extract_numastat local_node $local_node $col || return 1
> -        Curr_value=$RC
> -        comparelog $Prev_value $Curr_value
> -        if [ $RC -lt $Exp_incr ]
> -        then
> -             tst_resm TFAIL \
> -                 "Test #1: NUMA hit and localnode increase in node$node is less than expected"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA local node and memory affinity -TEST01 PASSED !!"
> -    return 0
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	Curr_value=0	# Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ PAGESIZE
> +	col=0
> +	MB=$((1024*1024))
> +
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/page_size))
> +
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))		#Node number in numastat o/p
> +		numastat > $LTPTMP/numalog
> +		extract_numastat local_node $local_node $col || return 1
> +		Prev_value=$RC
> +		numactl --cpunodebind=$node --membind=$node support_numa $ALLOC_1MB
> +		numastat > $LTPTMP/numalog
> +		extract_numastat local_node $local_node $col || return 1
> +		Curr_value=$RC
> +		comparelog $Prev_value $Curr_value
> +		if [ $RC -lt $Exp_incr ]; then
> +			tst_res TFAIL \
> +				"NUMA hit and localnode increase in node$node is less than expected"
> +			return 1
> +		fi
> +		COUNTER=$[$COUNTER+1]
                           ^
			   Bashism, only $((expression)) is portable way
			   how to do arithmetic
> +	done
> +
> +	tst_res TPASS "NUMA local node and memory affinity -TEST01 PASSED !!"
>  }
>  
> -
> -
> -# Function:     test02
> +# Function:     test2
>  #
>  # Description:  - Verification of memory allocated from preferred node
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test02()
> +test2()
>  {
> -    TCID=numa02
> -    TST_COUNT=2
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ PAGESIZE
> -    col=0
> -    MB=$[1024*1024]
> -
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -
> -	if [ $total_nodes -eq 1 ]
> -        then
> -            tst_brkm TBROK NULL "Preferred policy cant be applied for a single node machine"
> -	    return 1
> -	fi
> -
> -        if [ $COUNTER -eq $total_nodes ]   #wrap up for last node
> - 	then
> -	    Preferred_node=`echo $nodes_list | cut -d ' ' -f 1`
> -	    col=2			#column represents node0 in numastat o/p
> -	else
> -	    # always next node is preferred node
> -	    Preferred_node=`echo $nodes_list | cut -d ' ' -f $[COUNTER+1]`
> -	    col=$[$COUNTER+2]              #Preferred Node number in numastat o/p
> -	fi
> -
> -        numastat > $LTPTMP/numalog
> -        extract_numastat other_node $other_node $col || return 1
> -        Prev_value=$RC
> -        numactl --cpunodebind=$node --preferred=$Preferred_node support_numa $ALLOC_1MB
> -
> -        # In RHEL collection of statistics takes more time
> -        wait_for_update $Preferred_node other_node
> -
> -        numastat > $LTPTMP/numalog
> -        extract_numastat other_node $other_node $col || return 1
> -        Curr_value=$RC
> -        comparelog $Prev_value $Curr_value
> -        if [ $RC -lt $Exp_incr ]
> -        then
> -             tst_resm TFAIL \
> -                 "Test #2: NUMA hit and othernode increase in node$node is less than expected"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA preferred node policy -TEST02 PASSED !!"
> -    return 0
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ PAGESIZE
> +	col=0
> +	MB=$((1024*1024))
> +
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/page_size))
> +
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do

Again why not just 'for node in $nodes_list; do

> +		if [ $total_nodes -eq 1 ]; then
> +			tst_brk TBROK \
> +				"Preferred policy cant be applied for a single node machine"
> +		fi

We checked for that in the test setup haven't we?

So this cannot be true at all.

> +		if [ $COUNTER -eq $total_nodes ]   #wrap up for last node
> +		then
> +			Preferred_node=`echo $nodes_list | cut -d ' ' -f 1`
> +			col=2			   #column represents node0 in numastat o/p
> +		else
> +			# always next node is preferred node
> +			Preferred_node=`echo $nodes_list | cut -d ' ' -f $((COUNTER+1))`
> +			col=$((COUNTER+2))         #Preferred Node number in numastat o/p
> +		fi
> +
> +		numastat > $LTPTMP/numalog
> +		extract_numastat other_node $other_node $col || return 1
> +		Prev_value=$RC
> +		numactl --cpunodebind=$node --preferred=$Preferred_node support_numa $ALLOC_1MB
> +
> +		# In RHEL collection of statistics takes more time
> +		wait_for_update $Preferred_node other_node
> +
> +		numastat > $LTPTMP/numalog
> +		extract_numastat other_node $other_node $col || return 1
> +		Curr_value=$RC
> +		comparelog $Prev_value $Curr_value
> +		if [ $RC -lt $Exp_incr ]; then
> +			tst_res TFAIL \
> +				"NUMA hit and othernode increase in node$node is less than expected"
> +			return 1
> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	tst_res TPASS "NUMA preferred node policy -TEST02 PASSED !!"
>  }
>  
> -
> -# Function:     test03
> +# Function:     test3
>  #
>  # Description:  - Verification of memory interleaved on all nodes
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test03()
> +test3()
>  {
> -    TCID=numa03
> -    TST_COUNT=3
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    declare -a parray   # array contains previous value of all nodes
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> -    col=0
> -    MB=$[1024*1024]
> -
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -    # Pages will be allocated using round robin on nodes.
> -    Exp_incr=$[$Exp_incr/$total_nodes]
> -
> -    # Check whether the pages are equally distributed among available nodes
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat interleave_hit $interleave_hit $col || return 1
> -        Prev_value=$RC
> -        parray[$COUNTER]=$Prev_value
> -        COUNTER=$[$COUNTER+1]
> -    done
> -
> -    numactl --interleave=all support_numa $ALLOC_1MB
> -
> -    for node in `echo $nodes_list`; do
> -        wait_for_update $node interleave_hit
> -    done
> -
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat interleave_hit $interleave_hit $col || return 1
> -        Curr_value=$RC
> -        comparelog ${parray[$COUNTER]} $Curr_value
> -        if [ $RC -lt $Exp_incr ]
> -        then
> -             tst_resm TFAIL \
> -                 "Test #3: NUMA interleave hit in node$node is less than expected"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA interleave policy -TEST03 PASSED !!"
> -    return 0
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	declare -a parray   # array contains previous value of all nodes
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> +	col=0
> +	MB=$((1024*1024))
> +
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/page_size))
> +	# Pages will be allocated using round robin on nodes.
> +	Exp_incr=$((Exp_incr/total_nodes))
> +
> +	# Check whether the pages are equally distributed among available nodes
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat interleave_hit $interleave_hit $col || return 1
> +		Prev_value=$RC
> +		parray[$COUNTER]=$Prev_value

Arrays are bashishm.

You can, for example, emulate array in portable shell by appending the
numbers into a string then using cut to get the number from it.

> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	numactl --interleave=all support_numa $ALLOC_1MB
> +
> +	for node in `echo $nodes_list`; do

Again remove the backtick and echo?

> +		wait_for_update $node interleave_hit
> +	done
> +
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))             #Node number in numastat o/p
> +		extract_numastat interleave_hit $interleave_hit $col || return 1
> +		Curr_value=$RC
> +		comparelog ${parray[$COUNTER]} $Curr_value
> +		if [ $RC -lt $Exp_incr ]; then
> +			tst_res TFAIL \
> +				"NUMA interleave hit in node$node is less than expected"
> +			return 1
> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	tst_res TPASS "NUMA interleave policy -TEST03 PASSED !!"
>  }
>  
> -
> -
> -# Function:     test04
> +# Function:     test4
>  #
>  # Description:  - Verification of physical cpu bind
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test04()
> +test4()
>  {
> +	no_of_cpus=0	#no. of cpu's exist
> +	run_on_cpu=0
> +	running_on_cpu=0
> +
> +	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
> +	pid=$!
> +	var=`awk '{ print $2 }' /proc/$pid/stat`
> +	while [ $var = '(numactl)' ]; do
> +		var=`awk '{ print $2 }' /proc/$pid/stat`

You should add a short tst_usleep here, checking things in a bussy loop
only wastes resources.

> +	done
> +	# Warning !! 39 represents cpu number, on which process pid is currently running and
> +	# this may change if Some more fields are added in the middle, may be in future
> +	running_on_cpu=$(awk '{ print $39; }' /proc/$pid/stat)
> +	if [ $running_on_cpu -ne $run_on_cpu ]; then
> +		tst_res TFAIL \
> +			"Process running on cpu$running_on_cpu but expected to run on cpu$run_on_cpu"
> +		return 1
> +	fi
> +	RC=0
> +	kill -9 $pid || RC=$?
> +	if [ $RC -ne 0 ]; then
> +		tst_brk TBROK "Kill on process $pid fails"
> +	fi
>  
> -    TCID=numa04
> -    TST_COUNT=4
> -
> -    no_of_cpus=0	#no. of cpu's exist
> -    run_on_cpu=0
> -    running_on_cpu=0
> -
> -    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
> -    pid=$!
> -    var=`awk '{ print $2 }' /proc/$pid/stat`
> -    while [ $var = '(numactl)' ]; do
> -        var=`awk '{ print $2 }' /proc/$pid/stat`
> -    done
> -    # Warning !! 39 represents cpu number, on which process pid is currently running and
> -    # this may change if Some more fields are added in the middle, may be in future
> -    running_on_cpu=$(awk '{ print $39; }' /proc/$pid/stat)
> -    if [ $running_on_cpu -ne $run_on_cpu ]
> -    then
> -	 tst_resm TFAIL \
> -	     "Test #4: Process running on cpu$running_on_cpu but expected to run on cpu$run_on_cpu"
> -	 return 1
> -    fi
> -    RC=0
> -    kill -INT $pid || RC=$?
> -    if [ $RC -ne 0 ]
> -    then
> -        tst_brkm TBROK NULL "Kill on process $pid fails"
> -    fi
> -    tst_resm TPASS "NUMA phycpubind policy -TEST04 PASSED !!"
> -    return 0
> +	tst_res TPASS "NUMA phycpubind policy -TEST04 PASSED !!"
>  }
>  
> -
> -
> -# Function:     test05
> +# Function:     test5
>  #
>  # Description:  - Verification of local node allocation
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test05()
> +test5()
>  {
> -    TCID=numa05
> -    TST_COUNT=5
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ PAGESIZE
> -    col=0
> -    MB=$[1024*1024]
> -
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]               #Node number in numastat o/p
> -        numastat > $LTPTMP/numalog
> -        extract_numastat local_node $local_node $col || return 1
> -        Prev_value=$RC
> -        numactl --cpunodebind=$node --localalloc support_numa $ALLOC_1MB
> -        numastat > $LTPTMP/numalog
> -        extract_numastat local_node $local_node $col || return 1
> -        Curr_value=$RC
> -        comparelog $Prev_value $Curr_value
> -        if [ $RC -lt $Exp_incr ]
> -        then
> -             tst_resm TFAIL \
> -                 "Test #5: NUMA hit and localnode increase in node$node is less than expected"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA local node allocation -TEST05 PASSED !!"
> -    return 0
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ PAGESIZE
> +	col=0
> +	MB=$((1024*1024))
> +
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/page_size))
> +
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))               #Node number in numastat o/p
> +		numastat > $LTPTMP/numalog
> +		extract_numastat local_node $local_node $col || return 1
> +		Prev_value=$RC
> +		numactl --cpunodebind=$node --localalloc support_numa $ALLOC_1MB
> +		numastat > $LTPTMP/numalog
> +		extract_numastat local_node $local_node $col || return 1
> +		Curr_value=$RC
> +		comparelog $Prev_value $Curr_value
> +		if [ $RC -lt $Exp_incr ]; then
> +			tst_res TFAIL \
> +				"NUMA hit and localnode increase in node$node is less than expected"
> +			return 1
> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	tst_res TPASS "NUMA local node allocation -TEST05 PASSED !!"
>  }
>  
> -
> -
> -# Function:     test06
> +# Function:     test6
>  #
>  # Description:  - Verification of shared memory interleaved on all nodes
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test06()
> +test6()
>  {
> -    TCID=numa06
> -    TST_COUNT=6
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    declare -a parray   # array contains previous value of all nodes
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> -    col=0
> -    MB=$[1024*1024]
> -
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -    # Pages will be allocated using round robin on nodes.
> -    Exp_incr=$[$Exp_incr/$total_nodes]
> -
> -    # Check whether the pages are equally distributed among available nodes
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat numa_hit $numa_hit $col || return 1
> -        Prev_value=$RC
> -        parray[$COUNTER]=$Prev_value
> -        COUNTER=$[$COUNTER+1]
> -    done
> -
> -    numactl --length=1M --file /dev/shm/numa_shm --interleave=all --touch
> -
> -    for node in `echo $nodes_list`; do
> -        wait_for_update $node numa_hit
> -    done
> -
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat numa_hit $numa_hit $col || return 1
> -        Curr_value=$RC
> -        comparelog ${parray[$COUNTER]} $Curr_value
> -        if [ $RC -lt $Exp_incr ]
> -        then
> -             tst_resm TFAIL \
> -                 "Test #6: NUMA numa_hit for shm file numa_shm in node$node is less than expected"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA interleave policy on shared memory -TEST06 PASSED !!"
> -    RC=0
> -    rm -r /dev/shm/numa_shm || RC=$?
> -    if [ $RC -ne 0 ]
> -    then
> -	tst_resm TINFO "Test #6: Failed removing shared memory file numa_shm"
> -        return 1
> -    fi
> -    return 0
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	declare -a parray   # array contains previous value of all nodes
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> +	col=0
> +	MB=$((1024*1024))
> +
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/page_size))
> +	# Pages will be allocated using round robin on nodes.
> +	Exp_incr=$((Exp_incr/total_nodes))
> +
> +	# Check whether the pages are equally distributed among available nodes
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do

again the `echo ...`

> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat numa_hit $numa_hit $col || return 1
> +		Prev_value=$RC
> +		parray[$COUNTER]=$Prev_value

again the array is bashishm

> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	numactl --length=1M --file /dev/shm/numa_shm --interleave=all --touch
                                           ^
					   It would be much better to
					   prefix the filename with ltp_
					   so that is clear where the
					   file came from
> +
> +	for node in `echo $nodes_list`; do

here as well

> +		wait_for_update $node numa_hit
> +	done
> +
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat numa_hit $numa_hit $col || return 1
> +		Curr_value=$RC
> +		comparelog ${parray[$COUNTER]} $Curr_value
> +		if [ $RC -lt $Exp_incr ]; then
> +			tst_res TFAIL \
> +				"NUMA numa_hit for shm file numa_shm in node$node is less than expected"
> +			return 1
> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	tst_res TPASS "NUMA interleave policy on shared memory -TEST06 PASSED !!"
> +	RC=0
> +	rm -r /dev/shm/numa_shm || RC=$?
> +	if [ $RC -ne 0 ]; then
> +		tst_res TFAIL "Failed removing shared memory file numa_shm"
> +	fi
>  }
>  
> -# Function:     test07
> +# Function:     test7
>  #
>  # Description:  - Verification of numademo
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test07()
> +test7()
>  {
> -    TCID=numa07
> -    TST_COUNT=7
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    declare -a parray   # array contains previous value of all nodes
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> -    col=0
> -    msize=1000
> -    KB=1024
> -    # Increase in numastat o/p is interms of pages
> -     Exp_incr=$[($KB * $msize)/$page_size]
> -    # Pages will be allocated using round robin on nodes.
> -    Exp_incr=$[$Exp_incr/$total_nodes]
> -
> -    # Check whether the pages are equally distributed among available nodes
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat interleave_hit $interleave_hit $col || return 1
> -        Prev_value=$RC
> -        parray[$COUNTER]=$Prev_value
> -        COUNTER=$[$COUNTER+1]
> -    done
> -
> -    numademo -c ${msize}k > $LTPTMP/demolog
> -
> -    for node in `echo $nodes_list`; do
> -        wait_for_update $node interleave_hit
> -    done
> -
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    x=0
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat interleave_hit $interleave_hit $col || return 1
> -        Curr_value=$RC
> -         comparelog ${parray[$COUNTER]} $Curr_value
> -        counter=$[$counter+1]
> -        if [ $RC -le $Exp_incr ]
> -        then
> -            x=1
> -            break;
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    if [ $x -eq 0 ]
> -    then
> -        tst_resm TPASS "NUMADEMO policies  -TEST07 PASSED !!"
> -        return 0
> -    else
> -        tst_resm TFAIL "Test #7: NUMA interleave hit is less than expected"
> -    return 1
> -    fi
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	declare -a parray   # array contains previous value of all nodes
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> +	col=0
> +	msize=1000
> +	KB=1024
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$(($((KB * msize))/page_size))
> +	# Pages will be allocated using round robin on nodes.
> +	Exp_incr=$((Exp_incr/total_nodes))
> +
> +	# Check whether the pages are equally distributed among available nodes
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat interleave_hit $interleave_hit $col || return 1
> +		Prev_value=$RC
> +		parray[$COUNTER]=$Prev_value

again array and loop.

> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	numademo -c ${msize}k > $LTPTMP/demolog
> +
> +	for node in `echo $nodes_list`; do
> +		wait_for_update $node interleave_hit
> +	done
> +
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	x=0
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat interleave_hit $interleave_hit $col || return 1
> +		Curr_value=$RC
> +		comparelog ${parray[$COUNTER]} $Curr_value
> +		counter=$((counter+1))
> +		if [ $RC -le $Exp_incr ]; then
> +			x=1
> +			break;
> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +	if [ $x -eq 0 ]; then
> +		tst_res TPASS "NUMADEMO policies  -TEST07 PASSED !!"
> +	else
> +		tst_res TFAIL "NUMA interleave hit is less than expected"
> +	fi
>  }
>  
> -# Function:     test08
> +# Function:     test8
>  #
>  # Description:  - Verification of memhog with interleave policy
> -#
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -test08()
> +test8()
>  {
> -    TCID=numa08
> -    TST_COUNT=8
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    declare -a parray   # array contains previous value of all nodes
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> -    col=0
> -    MB=$[1024*1024]
> -
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -    # Pages will be allocated using round robin on nodes.
> -    Exp_incr=$[$Exp_incr/$total_nodes]
> -
> -    # Check whether the pages are equally distributed among available nodes
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat interleave_hit $interleave_hit $col || return 1
> -        Prev_value=$RC
> -        parray[$COUNTER]=$Prev_value
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    numactl --interleave=all memhog 1MB
> -
> -    for node in `echo $nodes_list`; do
> -        wait_for_update $node interleave_hit
> -    done
> -
> -    numastat > $LTPTMP/numalog
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -        col=$[$COUNTER+1]              #Node number in numastat o/p
> -        extract_numastat interleave_hit $interleave_hit $col || return 1
> -        Curr_value=$RC
> -        comparelog ${parray[$COUNTER]} $Curr_value
> -        if [ $RC -lt $Exp_incr ]
> -        then
> -             tst_resm TFAIL \
> -                 "Test #8: NUMA interleave hit in node$node is less than expected"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA MEMHOG policy -TEST08 PASSED !!"
> -    return 0
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	declare -a parray   # array contains previous value of all nodes
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ (PAGESIZE*num_of_nodes)
> +	col=0
> +	MB=$((1024*1024))
> +
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/$page_size))
> +	# Pages will be allocated using round robin on nodes.
> +	Exp_incr=$((Exp_incr/total_nodes))
> +
> +	# Check whether the pages are equally distributed among available nodes
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat interleave_hit $interleave_hit $col || return 1
> +		Prev_value=$RC
> +		parray[$COUNTER]=$Prev_value
> +		COUNTER=$((COUNTER+1))
> +	done
> +	numactl --interleave=all memhog 1MB
> +
> +	for node in `echo $nodes_list`; do
> +		wait_for_update $node interleave_hit
> +	done
> +
> +	numastat > $LTPTMP/numalog
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +		col=$((COUNTER+1))              #Node number in numastat o/p
> +		extract_numastat interleave_hit $interleave_hit $col || return 1
> +		Curr_value=$RC
> +		comparelog ${parray[$COUNTER]} $Curr_value
> +		if [ $RC -lt $Exp_incr ]; then
> +			tst_res TFAIL \
> +				"NUMA interleave hit in node$node is less than expected"
> +			return 1
> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	tst_res TPASS "NUMA MEMHOG policy -TEST08 PASSED !!"

Again loops and array.

>  }
>  
>  # Function:     hardware cheking with numa_node_size api
> @@ -721,150 +600,79 @@ test08()
>  #                 0:  10  20
>  #                 1:  20  10
>  #
> -# Return:       - zero on success.
> -#               - non-zero on failure.
> -#
> -test09()
> +test9()
>  {
> -    TCID=numa09
> -    TST_COUNT=9
> -
> -    RC=0                # Return value from commands.
> -    Prev_value=0        # extracted from the numastat o/p
> -    Curr_value=0        # Current value extracted from numastat o/p
> -    Exp_incr=0          # 1 MB/ PAGESIZE
> -    col=0
> -    MB=$[1024*1024]
> -    # Increase in numastat o/p is interms of pages
> -    Exp_incr=$[$MB/$page_size]
> -
> -    numactl --hardware > $LTPTMP/avail_nodes
> -    RC=$(awk '{ if ( NR == 1 ) {print $1;} }' $LTPTMP/avail_nodes)
> -    if [ $RC = "available:" ]
> -    then
> -
> -        RC=$(awk '{ if ( NR == 1 ) {print $3;} }' $LTPTMP/avail_nodes)
> -        if [ $RC = "nodes" ]
> -        then
> -           RC=$(awk '{ if ( NR == 1 ) {print $2;} }' $LTPTMP/avail_nodes)
> -
> -        tst_resm TPASS "NUMA policy on lib NUMA_NODE_SIZE API -TEST09 PASSED !!"
> -        else
> -                tst_resm TINFO "Test #9: Failed with numa policy"
> -        fi
> -    else
> -        tst_resm TINFO "Test #9: Failed with numa policy"
> -    fi
> +	RC=0                # Return value from commands.
> +	Prev_value=0        # extracted from the numastat o/p
> +	Curr_value=0        # Current value extracted from numastat o/p
> +	Exp_incr=0          # 1 MB/ PAGESIZE
> +	col=0
> +	MB=$((1024*1024))
> +	# Increase in numastat o/p is interms of pages
> +	Exp_incr=$((MB/$page_size))

Most of these variables are not used in the function at all.

> +	numactl --hardware > $LTPTMP/avail_nodes
> +	RC=$(awk '{ if ( NR == 1 ) {print $1;} }' $LTPTMP/avail_nodes)
> +	if [ $RC = "available:" ]; then
> +		RC=$(awk '{ if ( NR == 1 ) {print $3;} }' $LTPTMP/avail_nodes)
> +		if [ $RC = "nodes" ]; then
> +			RC=$(awk '{ if ( NR == 1 ) {print $2;} }' $LTPTMP/avail_nodes)
> +			tst_res TPASS "NUMA policy on lib NUMA_NODE_SIZE API -TEST09 PASSED !!"
> +		else
> +			tst_res TFAIL "Failed with numa policy"
> +		fi
> +	else
> +		tst_res TFAIL "Failed with numa policy"
> +	fi
>  }
> +
>  # Function:     test10
>  #
>  # Description:  - Verification of migratepages
>  #
>  # Return:       - zero on success.
>  #               - non-zero on failure.
> -test010()
> +test10()
>  {
> -    TCID=numa10
> -    TST_COUNT=10
> -    RC=0
> -    Prev_value=0
> -    Curr_value=0
> -
> -    COUNTER=1
> -    for node in `echo $nodes_list`; do
> -
> -        if [ $total_nodes -eq 1 ]
> -        then
> -            tst_brkm TBROK NULL "Preferred policy cant be applied for a single node machine"
> -            return 1
> -        fi
> -
> -        if [ $COUNTER -eq $total_nodes ]; then
> -            Preferred_node=`echo $nodes_list | cut -d ' ' -f 1`
> -            col=2
> -        else
> -            Preferred_node=`echo $nodes_list | cut -d ' ' -f $[$COUNTER+1]`
> -            col=$[$COUNTER+2]
> -        fi
> -
> -        numastat > $LTPTMP/numalog
> -        extract_numastat other_node $other_node $col || return 1
> -        Prev_value=$RC
> -        numactl --preferred=$node support_numa $PAUSE &
> -        pid=$!
> -        migratepages $pid $node $Preferred_node
> -        numastat > $LTPTMP/numalog
> -        extract_numastat other_node $other_node $col || return 1
> -        Curr_value=$RC
> -        kill -INT $pid
> -        if [ $RC -lt $Prev_value ]; then
> -             tst_resm TFAIL \
> -                 "Test #10: NUMA migratepages is not working fine"
> -            return 1
> -        fi
> -        COUNTER=$[$COUNTER+1]
> -    done
> -    tst_resm TPASS "NUMA MIGRATEPAGES policy -TEST10 PASSED !!"
> -    return 0
> +	RC=0
> +	Prev_value=0
> +	Curr_value=0
> +
> +	COUNTER=1
> +	for node in `echo $nodes_list`; do
> +
> +		if [ $total_nodes -eq 1 ]; then
> +			tst_brk TBROK \
> +				"Preferred policy cant be applied for a single node machine"
> +		fi

Again, we did this in the test setup, didn't we?

> +		if [ $COUNTER -eq $total_nodes ]; then
> +			Preferred_node=`echo $nodes_list | cut -d ' ' -f 1`
> +			col=2
> +		else
> +			Preferred_node=`echo $nodes_list | cut -d ' ' -f $[$COUNTER+1]`
> +			col=$((COUNTER+2))
> +		fi
> +
> +		numastat > $LTPTMP/numalog
> +		extract_numastat other_node $other_node $col || return 1
> +		Prev_value=$RC
> +		numactl --preferred=$node support_numa $PAUSE &
> +		pid=$!
> +		migratepages $pid $node $Preferred_node
> +		numastat > $LTPTMP/numalog
> +		extract_numastat other_node $other_node $col || return 1
> +		Curr_value=$RC
> +		kill -9 $pid
> +		if [ $RC -lt $Prev_value ]; then
> +			tst_res TFAIL \
> +				"NUMA migratepages is not working fine"
> +			return 1

We can do just return here (omit the 1) the return value from the
function is not used in any way at all.

> +		fi
> +		COUNTER=$((COUNTER+1))
> +	done
> +
> +	tst_res TPASS "NUMA MIGRATEPAGES policy -TEST10 PASSED !!"
>  }
>  
> -# Function:    main
> -#
> -# Description: - Execute all tests and report results.
> -#
> -# Exit:        - zero on success
> -#              - non-zero on failure.
> -    #WARNING!! Never use duplicate variables here...
> -    TCID=numa
> -    no_of_test=10	#total no. of testcases
> -    no_of_test_failed=0	#total no. of testcases failed
> -    numa_ret=0		#return value of main script
> -
> -    init_ret=0
> -    init || init_ret=$?
> -    if [ $init_ret -ne 0 ]
> -    then
> -        tst_resm TFAIL "INIT NUMA FAILED !!"
> -        exit $RC
> -    fi
> -
> -    total_nodes=0       # total no. of numa nodes
> -    # all availiable nodes id list
> -    nodes_list=`numactl --show | grep nodebind | cut -d ':' -f 2`
> -    for node in `echo $nodes_list`; do
> -        total_nodes=$[$total_nodes+1]
> -    done
> -    tst_resm TINFO "The system contains $total_nodes nodes: $nodes_list"
> -    if [ $total_nodes -le 1 ]; then
> -        tst_resm TCONF "your machine does not support numa policy or
> -                        your machine is not a NUMA machine"
> -        exit 0
> -    fi
> -
> -    # call each testcases sequentially
> -    COUNT=1
> -    while [  $COUNT -le $no_of_test ]; do
> -	call_test=$(echo test0$COUNT)
> -        func_ret=0
> -	$call_test || func_ret=$?
> -        if [ $func_ret -ne 0 ]
> -        then
> -            no_of_test_failed=$[$no_of_test_failed+1]
> -        fi
> -        COUNT=$[$COUNT+1]
> -    done
> -
> -    TCID=numa
> -    TST_COUNT=0
> -
> -    if [ $no_of_test_failed -ne 0 ]
> -    then
> -        numa_ret=1	#set return value to non-zero if any one of the testcas got failed
> -        tst_resm TINFO "A total of $no_of_test_failed numa testcases FAILED !!"
> -    else
> -        numa_ret=0
> -        tst_resm TINFO "All numa testcases PASSED !!"
> -    fi
> -
> -exit $numa_ret
> -
> +tst_run
> -- 
> 1.8.3.1
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list