On 25 February 2015 at 20:02, Lisa Nguyen lisa.nguyen@linaro.org wrote:
On 25 February 2015 at 05:52, Vincent Guittot vincent.guittot@linaro.org wrote:
On 24 February 2015 at 21:53, Vincent Guittot vincent.guittot@linaro.org wrote:
On 24 February 2015 at 01:58, Lisa Nguyen lisa.nguyen@linaro.org wrote:
[Adding Mike Turquette as another possible reviewer]
On 7 February 2015 at 16:08, Larry Bassel larry.bassel@linaro.org wrote:
Add test which checks and prints scheduler domain flags.
Signed-off-by: Larry Bassel larry.bassel@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.bassel@linaro.org +#
+# URL : https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/Pm...
+. ../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 ?
Vincent,
I've attached Larry's script and the functions.sh file with some modifications to avoid downloading the entire PM-QA test suite. Put them in the same directory, and run `sudo ./cputopology_03.sh`. Let me know if you're still having trouble.
Thanks, it works fine.
the output of the script looks ok for me. Let wait for the next version of larry's script that will replace hardcoded tests
Regards, Vincent