Applied with Vincent's ack: http://git.linaro.org/power/pm-qa.git/commit/04211670ed04645fe44e1244aa799658423bac47
Thanks! :) On 1 April 2015 at 00:23, Vincent Guittot <vincent.guit...@linaro.org> wrote: > On 3 March 2015 at 22:02, 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 | 109 >> +++++++++++++++++++++++++++++++++++++++++ >> cputopology/cputopology_03.txt | 1 + >> 2 files changed, 110 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..bfff5de >> --- /dev/null >> +++ b/cputopology/cputopology_03.sh >> @@ -0,0 +1,109 @@ >> +#!/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 >> +} >> + >> +are_flags_set() { >> + val=$1 >> + domain_num=$2 >> + >> + # flag value, flag description >> + set -- 0x80 "domain$domain_num share cpu capacity flag" 0x100 >> "domain$domain_num share power domain flag" 0x200 "domain$domain_num share >> cpu package resources flag" >> + >> + if [ $(($# % 2)) -ne 0 ]; then >> + echo "WARNING: malformed flag value, description in test" >> + fi >> + >> + nflags=$(($# / 2)) >> + i=1 >> + >> + while [ $i -le $nflags ] ; do >> + flagval=$((2*i-1)) >> + eval "var1=\${$flagval}" >> + flagstr=$((2*i)) >> + eval "var2=\${$flagstr}" >> + is_flag_set $val "$var1" "$var2" >> + i=$(( i + 1)) >> + done >> +} >> + >> +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 >> + >> + mask=$((0x7fff)) >> + unexpected_bits=$((val & ~mask)) >> + >> + if [ $unexpected_bits -ne 0 ]; then >> + printf "NOTE: unexpected flag bits 0x%x set\n" $unexpected_bits >> + fi >> + >> + are_flags_set $val $domain_num >> +} >> + >> +check_all_sched_domain_flags() { >> + >> + sched_domain_0_path=/proc/sys/kernel/sched_domain/cpu0 >> + >> + if [ ! -d $sched_domain_0_path ]; then >> + log_skip "no sched_domain directory present" >> + return >> + fi >> + >> + n=0 >> + >> + sched_domain_flags_path=/proc/sys/kernel/sched_domain/$1/domain0/flags >> + >> + while [ -e $sched_domain_flags_path ]; do >> + check_sched_domain_flags $1 $n >> + n=$(( n + 1)) >> + >> sched_domain_flags_path=/proc/sys/kernel/sched_domain/$1/domain$n/flags >> + done >> +} >> + >> +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 > > Hi Larry, > > You can add my Ack-by > > Vincent >> -- >> 1.9.1 >> _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev