Hi Nageswara,
On Mon, 2008-10-20 at 20:14 +0530, Nageswara R Sastry wrote:
> Subrata Modak wrote:
> > On Fri, 2008-10-17 at 14:50 +0530, Nageswara R Sastry wrote:
> >> The Power Management basic testcases are aimed at the user level testing
> >> of the features like cpufrequency and sched_mc. More details are at README
> >>
> >> Signed-Off-By: Nageswara R Sastry <[EMAIL PROTECTED]>
> >
> > Thanks once again Nageswara for contributing the Power Management Test
> > cases to LTP. I have tested them on x86_64, ppc64 & i386 systems running
> > 2.6.27 kernels with the following options enabled as per your README:
> >
>
> Subrata, These tests support only x86_64 and i386. Sorry for not
> mentioning previously and now I updated README file also.
> >
> > Can you kindly look into them and submit a refreshed patch once again ?
>
> Please find the attached refreshed patch.
Thanks once again for sending a refreshed patch. Following are my
observation(s), while running it on i386 & x86_64 systems:
1) uname -a
Linux 2.6.27-gcov-autokern1 #1 SMP PREEMPT Thu Oct 23 02:09:37 UTC 2008
x86_64 GNU/Linux
<<<test_output>>>
incrementing stop
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
---Valid test cases---
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS: echo 0 > /sys/devices/system/cpu/sched_mc_power_savings
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS: echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
---Invalid test cases---
a
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo a
> /sys/devices/system/cpu/sched_mc_power_savings
2
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo 2
> /sys/devices/system/cpu/sched_mc_power_savings
abcefg
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo abcefg
> /sys/devices/system/cpu/sched_mc_power_savings
x1999
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo x1999
> /sys/devices/system/cpu/sched_mc_power_savings
xffff
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo xffff
> /sys/devices/system/cpu/sched_mc_power_savings
-1
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo -1
> /sys/devices/system/cpu/sched_mc_power_savings
-00000
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo -00000
> /sys/devices/system/cpu/sched_mc_power_savings
200000000000000000000000000000000000000000000000000000000000000000000000000000
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo
200000000000000000000000000000000000000000000000000000000000000000000000000000
> /sys/devices/system/cpu/sched_mc_power_savings
ox324
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo ox324
> /sys/devices/system/cpu/sched_mc_power_savings
-0xfffffffffffffffffffff
/root/subrata/ltp/ltp-full-20081023/testcases/bin/test_sched_mc.sh:
Testcase PASS - Unable to execute: echo -0xfffffffffffffffffffff
> /sys/devices/system/cpu/sched_mc_power_savings
Power Management 1 FAIL : Required kernel configuration for
CPU_FREQ NOT set
I am little confused with the way above results are published. Not able
to make out whether they are failing or passing.
2) uname -a
Linux 2.6.27-gcov-autokern1 #1 SMP Wed Oct 22 19:26:13 PDT 2008 i686
GNU/Linux
<<<test_output>>>
incrementing stop
Power Management 1 FAIL : Required kernel configuration for
SCHED_MC NOT set
Power Management 1 FAIL : Required kernel configuration for
CPU_FREQ NOT set
<<<execution_status>>>
duration=0 termination_type=exited termination_id=0 corefile=no
cutime=0 cstime=1
<<<test_end>>>
I have built the kernel with all the options mentioned in your README.
Regards--
Subrata
> Thanks and Regards
> R.Nageswara Sastry
>
> plain text document attachment (ltp_pwmng_testcases_v2.patch)
> diff -uprN ltp-full-20080930/runtest/power_management_tests
> ltp-full-20080930_pwmng/runtest/power_management_tests
> --- ltp-full-20080930/runtest/power_management_tests 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/runtest/power_management_tests 2008-10-20
> 19:26:09.000000000 +0530
> @@ -0,0 +1 @@
> +POWER_MANAGEMENT runpwtests.sh
> diff -uprN ltp-full-20080930/testcases/kernel/Makefile
> ltp-full-20080930_pwmng/testcases/kernel/Makefile
> --- ltp-full-20080930/testcases/kernel/Makefile 2008-09-30
> 18:06:39.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/Makefile 2008-10-20
> 19:25:26.000000000 +0530
> @@ -1,4 +1,4 @@
> -SUBDIRS = numa containers controllers connectors include fs io ipc mem pty
> sched security syscalls timers
> +SUBDIRS = pwmng numa containers controllers connectors include fs io ipc mem
> pty sched security syscalls timers
> UCLINUX_SUBDIRS = syscalls
>
> all:
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/change_freq.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/change_freq.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/change_freq.sh 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/change_freq.sh
> 2008-10-20 20:06:00.000000000 +0530
> @@ -0,0 +1,36 @@
> +#!/bin/bash
> +
> +. pm_include.sh
> +available_freq=$(get_supporting_freq)
> +available_govr=$(get_supporting_govr)
> +RC=0
> +
> +total_cpus=$(no_of_cpus)
> +(( total_cpus-=1 ))
> +
> +if ( echo ${available_govr} | grep -i "userspace" 2>&1 >/dev/null ) ; then
> + for cpu in $(seq 0 "${total_cpus}" )
> + do
> + echo userspace >
> /sys/devices/system/cpu/cpu${cpu}/cpufreq/scaling_governor
> + if [ $? -ne 0 ] ; then
> + RC=1
> + fi
> + done
> + if [ ${RC} -ne 1 ] ; then
> + for cpu in $(seq 0 "${total_cpus}" )
> + do
> + for freq in ${available_freq}
> + do
> + echo ${freq} >
> /sys/devices/system/cpu/cpu${cpu}/cpufreq/scaling_setspeed
> + if [ "$?" -ne "0" ] ; then
> + echo "${0}: FAIL: Unable to set
> frequency -- ${freq} for cpu${cpu}"
> + RC=1
> + fi
> + done
> + done
> + fi
> +fi
> +if [ ${RC} -eq 0 ] ; then
> + echo "${0}: PASS: Changing cpu frequencies"
> +fi
> +#return $RC
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/change_govr.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/change_govr.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/change_govr.sh 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/change_govr.sh
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,24 @@
> +#!/bin/bash
> +
> +. pm_include.sh
> +available_govr=$(get_supporting_govr)
> +
> +total_cpus=$(no_of_cpus)
> +(( total_cpus-=1 ))
> +RC=0
> +
> +for cpu in $(seq 0 "${total_cpus}" )
> +do
> + for govr in ${available_govr}
> + do
> + echo ${govr} >
> /sys/devices/system/cpu/cpu${cpu}/cpufreq/scaling_governor
> + if [ "$?" -ne "0" ] ; then
> + echo "${0}: FAIL: Unable to set governor -- ${govr} for
> cpu${cpu}"
> + RC=1
> + fi
> + done
> +done
> +if [ ${RC} -eq 0 ] ; then
> + echo "${0}: PASS: Changing cpu governors"
> +fi
> +#return $RC
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/check_config.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/check_config.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/check_config.sh 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/check_config.sh
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,32 @@
> +#!/bin/bash
> +
> +. pm_include.sh
> +
> +if [ $# -lt 1 ] ; then
> + echo "Usage: ${0} <filename>"
> + RC=1
> + return ${RC}
> +fi
> +filename=${1}
> +
> +RC=0
> +grep_command=grep
> +config_file=/boot/config-$(uname -r)
> +if [ ! -f ${config_file} ]; then
> + echo "MISSING_FILE: can't find the required config file at
> /boot/config-$(uname -r)"
> + echo "Trying for alternate file at /proc/config.gz"
> + config_file=/proc/config.gz
> +fi
> +if [ ! -f ${config_file} ]; then
> + echo "MISSING_FILE: can't find the required config file at
> /proc/config.gz"
> + RC=1
> +fi
> +if [ "${config_file}" = "/proc/config.gz" ] ; then
> + grep_command=zgrep
> +fi
> +
> +while read config_option
> +do
> + check_config_options "${config_option}=*" ${config_file} ${grep_command}
> +done < ${filename}
> +#return ${RC}
> diff -uprN
> ltp-full-20080930/testcases/kernel/pwmng/check_cpufreq_sysfs_files.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/check_cpufreq_sysfs_files.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/check_cpufreq_sysfs_files.sh
> 1970-01-01 05:30:00.000000000 +0530
> +++
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/check_cpufreq_sysfs_files.sh
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,24 @@
> +#!/bin/bash
> +
> +. pm_include.sh
> +
> +total_cpus=$(no_of_cpus)
> +(( total_cpus-=1 ))
> +RC=0
> +
> +for cpu in $(seq 0 "${total_cpus}" )
> +do
> + cpufiles=$(find /sys/devices/system/cpu/cpu"${cpu}"/cpufreq/ -name "*"
> -type f)
> + for files in ${cpufiles}
> + do
> + cat ${files} 2>&1 >/dev/null
> + if [ $? -ne 0 ] ; then
> + echo "${0}: FAIL: cat ${files}"
> + RC=1
> + fi
> + done
> +done
> +if [ ${RC} -eq 0 ] ; then
> + echo "${0}: PASS: Checking cpu freq sysfs files"
> +fi
> +#return $RC
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/check_kv_arch.c
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/check_kv_arch.c
> --- ltp-full-20080930/testcases/kernel/pwmng/check_kv_arch.c 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/check_kv_arch.c
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,41 @@
> +/************************************************************************
> +* Copyright (c) International Business Machines Corp., 2008
> +* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> +*
> +***************************************************************************/
> +#include <stdio.h>
> +#include <test.h>
> +
> +int kernel_is_too_old(void) {
> + if (tst_kvercmp(2,6,21) < 0)
> + return 1;
> + return 0;
> +}
> +
> +/*
> + * yeah, to make the makefile coding easier, do_check returns
> + * 1 if unshare is not supported, 0 if it is
> + */
> +#ifdef __i386__
> +int do_check(void) { return kernel_is_too_old(); }
> +#elif __x86_64__
> +int do_check(void) { return kernel_is_too_old(); }
> +#else
> +int do_check(void) { return 1; }
> +#endif
> +
> +int main() {
> + return do_check();
> +}
> +
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/config_cpu_freq
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/config_cpu_freq
> --- ltp-full-20080930/testcases/kernel/pwmng/config_cpu_freq 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/config_cpu_freq
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,7 @@
> +CONFIG_CPU_FREQ
> +CONFIG_CPU_FREQ_TABLE
> +CONFIG_CPU_FREQ_DEBUG
> +CONFIG_CPU_FREQ_STAT
> +CONFIG_CPU_FREQ_STAT_DETAILS
> +CONFIG_CPU_FREQ_DEFAULT_GOV_*
> +CONFIG_CPU_FREQ_GOV_*
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/config_cpu_idle
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/config_cpu_idle
> --- ltp-full-20080930/testcases/kernel/pwmng/config_cpu_idle 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/config_cpu_idle
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,3 @@
> +CONFIG_CPU_IDLE
> +CONFIG_CPU_IDLE_GOV_LADDER
> +CONFIG_CPU_IDLE_GOV_MENU
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/config_sched_mc
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/config_sched_mc
> --- ltp-full-20080930/testcases/kernel/pwmng/config_sched_mc 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/config_sched_mc
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1 @@
> +CONFIG_SCHED_MC
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/Makefile
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/Makefile
> --- ltp-full-20080930/testcases/kernel/pwmng/Makefile 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/Makefile 2008-10-20
> 19:24:56.000000000 +0530
> @@ -0,0 +1,42 @@
> +################################################################################
> +##
> ##
> +## Copyright (c) International Business Machines Corp., 2008
> ##
> +##
> ##
> +## 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> ##
> +##
> ##
> +################################################################################
> +
> +all:
> + @set -e; $(MAKE) check_kv_arch ;
> +
> +check_kv_arch: check_kv_arch.c
> + $(CC) -o $@ $< ../../../lib/tst_kvercmp.c -I../../../include
> +
> +install:
> + @set -e; ln -f check_kv_arch ../../bin/check_kv_arch; \
> + ln -f change_freq.sh ../../bin/change_freq.sh; \
> + ln -f change_govr.sh ../../bin/change_govr.sh; \
> + ln -f check_cpufreq_sysfs_files.sh
> ../../bin/check_cpufreq_sysfs_files.sh; \
> + ln -f check_config.sh ../../bin/check_config.sh; \
> + ln -f pwkm_load_unload.sh ../../bin/pwkm_load_unload.sh; \
> + ln -f pm_include.sh ../../bin/pm_include.sh; \
> + ln -f runpwtests.sh ../../bin/runpwtests.sh; \
> + ln -f test_sched_mc.sh ../../bin/test_sched_mc.sh; \
> + ln -f config_cpu_freq ../../bin/config_cpu_freq; \
> + ln -f config_cpu_idle ../../bin/config_cpu_idle; \
> + ln -f config_sched_mc ../../bin/config_sched_mc;
> +clean:
> + rm -f check_kv_arch
> +
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/pm_include.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/pm_include.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/pm_include.sh 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/pm_include.sh
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,63 @@
> +#!/bin/bash
> +
> +TMPDIR=/tmp
> +
> +PASS=0
> +FAIL=1
> +NOSUPPORT=2
> +MISSING_FILE=3
> +UNTESTED=4
> +
> +function cleanup() {
> + if [ -f ${1} ] ; then
> + rm -f ${1}
> + fi
> +}
> +function check_config_options() {
> + if ( ! ${3} "${1}" ${2} | grep -v "#" > /dev/null ) ; then
> + echo "NOSUPPORT: current system dosen't support ${1}"
> + fi
> +}
> +function no_of_cpus() {
> + echo $(cat /proc/cpuinfo | grep processor | wc -l)
> +}
> +function get_topology() {
> + declare -a cpus
> + declare -a phyid
> +
> + total_cpus=$(no_of_cpus)
> + (( total_cpus-=1 ))
> + for cpu in $(seq 0 "${total_cpus}" )
> + do
> + cpus[$cpu]=cpu${cpu}
> + phyid[$cpu]=$(cat
> /sys/devices/system/cpu/cpu${cpu}/topology/physical_package_id)
> + done
> + j=0
> + while [ "${j}" -lt "${total_cpus}" ]
> + do
> + (( k = $j + 1 ))
> + if [ ${phyid[$j]} -eq ${phyid[$k]} ] ; then
> + echo "${cpus[$j]} -P ${cpus[$k]}" | sed -e "s/cpu//g"
> + fi
> + (( j+=1 ))
> + done
> +}
> +function check_cpufreq() {
> + total_cpus=$(no_of_cpus)
> + (( total_cpus-=1 ))
> +
> + for cpu in $(seq 0 "${total_cpus}" )
> + do
> + if [ ! -d /sys/devices/system/cpu/cpu${cpu}/cpufreq ] ; then
> + echo "NOSUPPORT: cpufreq support not found please check
> Kernel configuration or BIOS settings"
> + exit $NOSUPPORT
> + fi
> + done
> +}
> +function get_supporting_freq() {
> + cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
> | uniq
> +}
> +function get_supporting_govr() {
> + cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors |
> uniq
> +}
> +
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/pwkm_load_unload.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/pwkm_load_unload.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/pwkm_load_unload.sh
> 1970-01-01 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/pwkm_load_unload.sh
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,19 @@
> +#!/bin/bash
> +
> +#Loading modules
> +for module in cpufreq_conservative cpufreq_powersave cpufreq_userspace
> +do
> + #echo -n "Loading $module ... "
> + modprobe $module >/dev/null
> + if [ $? -ne 0 ] ; then
> + echo "${0}: FAIL: Loading of module $module or check whether
> you compiled as module or not"
> + fi
> +done
> +for module in cpufreq_conservative cpufreq_powersave cpufreq_userspace
> +do
> + #echo -n "Unloading $module ... "
> + modprobe -r $module >/dev/null
> + if [ $? -ne 0 ] ; then
> + echo "${0}: FAIL: Loading of module $module or check whether
> you compiled as module or not"
> + fi
> +done
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/README
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/README
> --- ltp-full-20080930/testcases/kernel/pwmng/README 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/README 2008-10-20
> 19:28:56.000000000 +0530
> @@ -0,0 +1,68 @@
> +################################################################################
> +##
> ##
> +## Copyright (c) International Business Machines Corp., 2007
> ##
> +##
> ##
> +## 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> ##
> +##
> ##
> +################################################################################
> +
> +POWER MANAGEMENT TESTS AUTOMATION SUITE
> +----------------------------------------
> +The tests requires the Kernel to be compiled with the following config's
> +
> +for CPU FREQUENCY tests:
> +
> +CONFIG_CPU_FREQ
> +CONFIG_CPU_FREQ_TABLE
> +CONFIG_CPU_FREQ_DEBUG
> +CONFIG_CPU_FREQ_STAT
> +CONFIG_CPU_FREQ_STAT_DETAILS
> +CONFIG_CPU_FREQ_DEFAULT_GOV_*
> +CONFIG_CPU_FREQ_GOV_*
> +
> +for CPU IDLE tests:
> +
> +CONFIG_CPU_IDLE
> +CONFIG_CPU_IDLE_GOV_LADDER
> +CONFIG_CPU_IDLE_GOV_MENU
> +
> +for SCHED_MC tests:
> +
> +CONFIG_SCHED_MC
> +
> +The power management test automation suite helps run the power management
> functionality
> +(e.g: cpu frequency, cpu idle etc..) tests and report results.
> +
> +Test Scripts for CPU FREQUENCY:
> +change_freq.sh
> +change_govr.sh
> +check_cpufreq_sysfs_files.sh
> +
> +Test Scripts for CPU IDLE:
> +will be added soon
> +
> +Test Scripts for SCHED_MC:
> +test_sched_mc.sh
> +
> +Common functionality:
> +pm_include.sh
> +check_kv_arch.c
> +pwkm_load_unload.sh
> +
> +To run your tests you can execute the runpwtests.sh
> +
> +To run the tests individually :
> +
> +P.S. As of now the supporting architecture(s) are x86,x86_64
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/runpwtests.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/runpwtests.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/runpwtests.sh 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/runpwtests.sh
> 2008-10-20 19:45:29.000000000 +0530
> @@ -0,0 +1,97 @@
> +################################################################################
> +##
> ##
> +## Copyright (c) International Business Machines Corp., 2001
> ##
> +##
> ##
> +## 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> ##
> +##
> ##
> +################################################################################
> +#
> +# File : test_powermanagement.sh
> +#
> +# Description:
> +#
> +# Author: Nageswara R Sastry <[EMAIL PROTECTED]>
> +#
> +# History: 26 Aug 2008 - Created this file
> +#
> +#! /bin/sh
> +
> +# Exporting Required variables
> +
> +export TST_TOTAL=1
> +LTPTMP=${TMP}
> +LTPROOT=../../bin
> +export PATH=${PATH}:.
> +export TCID="Power Management"
> +export TST_COUNT=0
> +
> +# Function: main
> +#
> +# Description: - Execute all tests, exit with test status.
> +#
> +# Exit: - zero on success
> +# - non-zero on failure.
> +#
> +RC=0 #Return status
> +
> +# Checking required kernel version and architecture
> +check_kv_arch || RC=$?
> +if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "Kernel version or Architecture not supported: Not
> running testcases"
> + #exit 0
> +fi
> +
> +# Checking sched_mc sysfs interface
> +#check_config.sh config_sched_mc || RC=$?
> +if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then
> + test_sched_mc.sh || RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "SCHED_MC sysfs tests failed"
> + fi
> +else
> + tst_resm TFAIL "Required kernel configuration for SCHED_MC NOT set"
> + #exit 0
> +fi
> +
> +# Checking cpufreq sysfs interface files
> +#check_config.sh config_cpu_freq || RC=$?
> +if [ -d /sys/devices/system/cpu/cpu0/cpufreq ] ; then
> + check_cpufreq_sysfs_files.sh || RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "CPUFREQ sysfs tests failed"
> + fi
> +
> + # Changing governors
> + change_govr.sh || RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "Changing governors failed"
> + fi
> +
> + # Changing frequencies
> + change_freq.sh || RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "Changing frequncies failed"
> + fi
> +
> + # Loading and Unloading governor related kernel modules
> + pwkm_load_unload.sh || RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "Loading and Unloading of governor kernel
> modules got failed"
> + fi
> +else
> + tst_resm TFAIL "Required kernel configuration for CPU_FREQ NOT set"
> + #exit 0
> +fi
> +
> diff -uprN ltp-full-20080930/testcases/kernel/pwmng/test_sched_mc.sh
> ltp-full-20080930_pwmng/testcases/kernel/pwmng/test_sched_mc.sh
> --- ltp-full-20080930/testcases/kernel/pwmng/test_sched_mc.sh 1970-01-01
> 05:30:00.000000000 +0530
> +++ ltp-full-20080930_pwmng/testcases/kernel/pwmng/test_sched_mc.sh
> 2008-10-20 19:24:56.000000000 +0530
> @@ -0,0 +1,45 @@
> +#!/bin/bash
> +
> +. pm_include.sh
> +
> +valid_input="0 1"
> +invalid_input="a 2 abcefg x1999 xffff -1 -00000
> 200000000000000000000000000000000000000000000000000000000000000000000000000000
> ox324 -0xfffffffffffffffffffff"
> +test_file="/sys/devices/system/cpu/sched_mc_power_savings"
> +if [ ! -f ${test_file} ] ; then
> + echo "MISSING_FILE: missing file ${test_file}"
> + exit $MISSING_FILE
> +fi
> +
> +function check_input() {
> + validity_check=${2:-valid}
> + if [ "${validity_check}" = "invalid" ] ; then
> + PASS="Testcase FAIL - Able to execute"
> + FAIL="Testcase PASS - Unable to execute"
> + else
> + PASS="Testcase PASS"
> + FAIL="Testcase FAIL"
> + fi
> + for input in ${1}
> + do
> + echo ${input} > ${test_file} 2>/dev/null
> + return_value=$?
> + output=$(cat ${test_file})
> + if [ "${return_value}" = "0" -a "${input}" = "${output}" ] ;
> then
> + echo "${0}: ${PASS}: echo ${input} > ${test_file}"
> + if [ "${validity_check}" = "invalid" ] ; then
> + RC=1
> + fi
> + else
> + echo "${0}: ${FAIL}: echo ${input} > ${test_file}"
> + if [ "${validity_check}" = "valid" ] ; then
> + RC=1
> + fi
> + fi
> + done
> +}
> +RC=0
> +echo "${0}: ---Valid test cases---"
> +check_input "${valid_input}"
> +echo "${0}: ---Invalid test cases---"
> +check_input "${invalid_input}" invalid
> +#return $RC
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list