On 24 February 2015 at 21:53, Vincent Guittot <vincent.guit...@linaro.org> wrote: > On 24 February 2015 at 01:58, Lisa Nguyen <lisa.ngu...@linaro.org> wrote: >> [Adding Mike Turquette as another possible reviewer] >> >> On 7 February 2015 at 16:08, Larry Bassel <larry.bas...@linaro.org> wrote: >>> Add test which checks and prints scheduler domain flags. >>> >>> Signed-off-by: Larry Bassel <larry.bas...@linaro.org> >>> --- >>> cputopology/cputopology_03.sh | 74 >>> ++++++++++++++++++++++++++++++++++++++++++ >>> cputopology/cputopology_03.txt | 1 + >>> 2 files changed, 75 insertions(+) >>> create mode 100755 cputopology/cputopology_03.sh >>> create mode 100644 cputopology/cputopology_03.txt >>> >>> diff --git a/cputopology/cputopology_03.sh b/cputopology/cputopology_03.sh >>> new file mode 100755 >>> index 0000000..0fc2771 >>> --- /dev/null >>> +++ b/cputopology/cputopology_03.sh >>> @@ -0,0 +1,74 @@ >>> +#!/bin/sh >>> +# >>> +# PM-QA validation test suite for the power management on Linux >>> +# >>> +# Copyright (C) 2015, Linaro Limited. >>> +# >>> +# 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 2 >>> +# 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, write to the Free Software >>> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA >>> 02110-1301, USA. >>> +# >>> +# Contributors: >>> +# Larry Bassel <larry.bas...@linaro.org> >>> +# >>> + >>> +# URL : >>> https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/PmQaSpecification#cputopology_03 >>> + >>> +. ../include/functions.sh >>> + >>> +is_flag_set() { >>> + flag=$1 >>> + mask=$2 >>> + message=$3 >>> + >>> + value=$(( $flag & $mask )) >>> + >>> + if [ $value -ne 0 ]; then >>> + echo "$message set" >>> + else >>> + echo "$message not set" >>> + fi >>> +} >>> + >>> +check_sched_domain_flags() { >>> + >>> + cpu_num=$1 >>> + domain_num=$2 >>> + >>> + >>> sched_domain_flags=/proc/sys/kernel/sched_domain/$cpu_num/domain$domain_num/flags >>> + val=$(cat $sched_domain_flags) >>> + >>> + check "sched_domain_flags (domain $domain_num)" "test \"$val\" != >>> \"-1\"" >>> + printf "domain$domain_num flag 0x%x\n" $val >>> + >>> + is_flag_set $val 0x80 "domain$domain_num share cpu capacity flag" >>> + is_flag_set $val 0x100 "domain$domain_num share power domain flag" >>> + is_flag_set $val 0x200 "domain$domain_num share cpu package >>> resources flag" >>> +} >>> + >>> +check_all_sched_domain_flags() { >>> + >>> + n=0 >>> + >>> + if ! [ -d /proc/sys/kernel/sched_domain/cpu0 ]; then >>> + return >>> + fi >> >> That looks weird with the ! hanging outside of the expression; it's >> usually inside the [ ]. Can you store the >> /proc/sys/kernel/sched_domain/cpu0 path into a variable? It'd make >> that small code block nicer and easier to maintain if the path needs >> to be changed in the future. >> >> Also, please use the log_skip function to display an "error" message >> to stdout before the return keyword if the directory doesn't exist. >> >>> + while [ -e /proc/sys/kernel/sched_domain/$1/domain$n/flags ]; do >>> + check_sched_domain_flags $1 $n >>> + n=$(( n + 1)) >>> + done >>> +} >> >> Again, if there's a way to store the path into a variable, it'd be nice. >> >>> + >>> +for_each_cpu check_all_sched_domain_flags 1 || exit 1 >>> +test_status_show >>> diff --git a/cputopology/cputopology_03.txt b/cputopology/cputopology_03.txt >>> new file mode 100644 >>> index 0000000..e43de69 >>> --- /dev/null >>> +++ b/cputopology/cputopology_03.txt >>> @@ -0,0 +1 @@ >>> +test that the sched_domain files are present and show the topology related >>> flags >>> -- >>> 1.9.1 >> >> Amit, Daniel, Vincent, or Mike, can you guys run Larry's script to see >> if his tests make sense? I can't accept Larry's patch without another >> person's ack or reviewed-by and in need of a second opinion. Thanks. > > I'm going to test it on my cb2 tomorrow and will give you a feedback
testing the script and the output is not as straight forward as I was expecting. The script has some dependency with other one that i don't have. Is there a simple way to get the minimal scripts to run this one ? IIUC, the script needs ../include/functions.sh which provides some helper function. can lisa or larry make this script available somewhere ? Regards, Vincent _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev