~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/cpufreq/main.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/testing/selftests/cpufreq/main.sh (Architecture i386) and /tools/testing/selftests/cpufreq/main.sh (Architecture alpha)


  1 #!/bin/bash                                         1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0                  2 # SPDX-License-Identifier: GPL-2.0
  3                                                     3 
  4 source cpu.sh                                       4 source cpu.sh
  5 source cpufreq.sh                                   5 source cpufreq.sh
  6 source governor.sh                                  6 source governor.sh
  7 source module.sh                                    7 source module.sh
  8 source special-tests.sh                             8 source special-tests.sh
  9                                                     9 
 10 DIR="$(dirname $(readlink -f "$0"))"               10 DIR="$(dirname $(readlink -f "$0"))"
 11 source "${DIR}"/../kselftest/ktap_helpers.sh       11 source "${DIR}"/../kselftest/ktap_helpers.sh
 12                                                    12 
 13 FUNC=basic      # do basic tests by default        13 FUNC=basic      # do basic tests by default
 14 OUTFILE=cpufreq_selftest                           14 OUTFILE=cpufreq_selftest
 15 SYSFS=                                             15 SYSFS=
 16 CPUROOT=                                           16 CPUROOT=
 17 CPUFREQROOT=                                       17 CPUFREQROOT=
 18                                                    18 
 19 helpme()                                           19 helpme()
 20 {                                                  20 {
 21         printf "Usage: $0 [-h] [-todg args]        21         printf "Usage: $0 [-h] [-todg args]
 22         [-h <help>]                                22         [-h <help>]
 23         [-o <output-file-for-dump>]                23         [-o <output-file-for-dump>]
 24         [-t <basic: Basic cpufreq testing          24         [-t <basic: Basic cpufreq testing
 25              suspend: suspend/resume,              25              suspend: suspend/resume,
 26              hibernate: hibernate/resume,          26              hibernate: hibernate/resume,
 27              suspend_rtc: suspend/resume back      27              suspend_rtc: suspend/resume back using the RTC wakeup alarm,
 28              hibernate_rtc: hibernate/resume b     28              hibernate_rtc: hibernate/resume back using the RTC wakeup alarm,
 29              modtest: test driver or governor      29              modtest: test driver or governor modules. Only to be used with -d or -g options,
 30              sptest1: Simple governor switch t     30              sptest1: Simple governor switch to produce lockdep.
 31              sptest2: Concurrent governor swit     31              sptest2: Concurrent governor switch to produce lockdep.
 32              sptest3: Governor races, shuffle      32              sptest3: Governor races, shuffle between governors quickly.
 33              sptest4: CPU hotplugs with update     33              sptest4: CPU hotplugs with updates to cpufreq files.>]
 34         [-d <driver's module name: only with \     34         [-d <driver's module name: only with \"-t modtest>\"]
 35         [-g <governor's module name: only with     35         [-g <governor's module name: only with \"-t modtest>\"]
 36         \n"                                        36         \n"
 37         exit "${KSFT_FAIL}"                        37         exit "${KSFT_FAIL}"
 38 }                                                  38 }
 39                                                    39 
 40 prerequisite()                                     40 prerequisite()
 41 {                                                  41 {
 42         msg="skip all tests:"                      42         msg="skip all tests:"
 43                                                    43 
 44         if [ $UID != 0 ]; then                     44         if [ $UID != 0 ]; then
 45                 ktap_skip_all "$msg must be ru     45                 ktap_skip_all "$msg must be run as root"
 46                 exit "${KSFT_SKIP}"                46                 exit "${KSFT_SKIP}"
 47         fi                                         47         fi
 48                                                    48 
 49         taskset -p 01 $$                           49         taskset -p 01 $$
 50                                                    50 
 51         SYSFS=`mount -t sysfs | head -1 | awk      51         SYSFS=`mount -t sysfs | head -1 | awk '{ print $3 }'`
 52                                                    52 
 53         if [ ! -d "$SYSFS" ]; then                 53         if [ ! -d "$SYSFS" ]; then
 54                 ktap_skip_all "$msg sysfs is n     54                 ktap_skip_all "$msg sysfs is not mounted"
 55                 exit "${KSFT_SKIP}"                55                 exit "${KSFT_SKIP}"
 56         fi                                         56         fi
 57                                                    57 
 58         CPUROOT=$SYSFS/devices/system/cpu          58         CPUROOT=$SYSFS/devices/system/cpu
 59         CPUFREQROOT="$CPUROOT/cpufreq"             59         CPUFREQROOT="$CPUROOT/cpufreq"
 60                                                    60 
 61         if ! ls $CPUROOT/cpu* > /dev/null 2>&1     61         if ! ls $CPUROOT/cpu* > /dev/null 2>&1; then
 62                 ktap_skip_all "$msg cpus not a     62                 ktap_skip_all "$msg cpus not available in sysfs"
 63                 exit "${KSFT_SKIP}"                63                 exit "${KSFT_SKIP}"
 64         fi                                         64         fi
 65                                                    65 
 66         if ! ls $CPUROOT/cpufreq > /dev/null 2     66         if ! ls $CPUROOT/cpufreq > /dev/null 2>&1; then
 67                 ktap_skip_all "$msg cpufreq di     67                 ktap_skip_all "$msg cpufreq directory not available in sysfs"
 68                 exit "${KSFT_SKIP}"                68                 exit "${KSFT_SKIP}"
 69         fi                                         69         fi
 70 }                                                  70 }
 71                                                    71 
 72 parse_arguments()                                  72 parse_arguments()
 73 {                                                  73 {
 74         while getopts ht:o:d:g: arg                74         while getopts ht:o:d:g: arg
 75         do                                         75         do
 76                 case $arg in                       76                 case $arg in
 77                         h) # --help                77                         h) # --help
 78                                 helpme             78                                 helpme
 79                                 ;;                 79                                 ;;
 80                                                    80 
 81                         t) # --func_type (Func     81                         t) # --func_type (Function to perform: basic, suspend, hibernate,
 82                            # suspend_rtc, hibe     82                            # suspend_rtc, hibernate_rtc, modtest, sptest1/2/3/4 (default: basic))
 83                                 FUNC=$OPTARG       83                                 FUNC=$OPTARG
 84                                 ;;                 84                                 ;;
 85                                                    85 
 86                         o) # --output-file (Ou     86                         o) # --output-file (Output file to store dumps)
 87                                 OUTFILE=$OPTAR     87                                 OUTFILE=$OPTARG
 88                                 ;;                 88                                 ;;
 89                                                    89 
 90                         d) # --driver-mod-name     90                         d) # --driver-mod-name (Name of the driver module)
 91                                 DRIVER_MOD=$OP     91                                 DRIVER_MOD=$OPTARG
 92                                 ;;                 92                                 ;;
 93                                                    93 
 94                         g) # --governor-mod-na     94                         g) # --governor-mod-name (Name of the governor module)
 95                                 GOVERNOR_MOD=$     95                                 GOVERNOR_MOD=$OPTARG
 96                                 ;;                 96                                 ;;
 97                                                    97 
 98                         \?)                        98                         \?)
 99                                 helpme             99                                 helpme
100                                 ;;                100                                 ;;
101                 esac                              101                 esac
102         done                                      102         done
103 }                                                 103 }
104                                                   104 
105 do_test()                                         105 do_test()
106 {                                                 106 {
107         # Check if CPUs are managed by cpufreq    107         # Check if CPUs are managed by cpufreq or not
108         count=$(count_cpufreq_managed_cpus)       108         count=$(count_cpufreq_managed_cpus)
109                                                   109 
110         if [ $count = 0 -a $FUNC != "modtest"     110         if [ $count = 0 -a $FUNC != "modtest" ]; then
111                 ktap_exit_fail_msg "No cpu is     111                 ktap_exit_fail_msg "No cpu is managed by cpufreq core, exiting"
112         fi                                        112         fi
113                                                   113 
114         case "$FUNC" in                           114         case "$FUNC" in
115                 "basic")                          115                 "basic")
116                 cpufreq_basic_tests               116                 cpufreq_basic_tests
117                 ;;                                117                 ;;
118                                                   118 
119                 "suspend")                        119                 "suspend")
120                 do_suspend "suspend" 1            120                 do_suspend "suspend" 1
121                 ;;                                121                 ;;
122                                                   122 
123                 "hibernate")                      123                 "hibernate")
124                 do_suspend "hibernate" 1          124                 do_suspend "hibernate" 1
125                 ;;                                125                 ;;
126                                                   126 
127                 "suspend_rtc")                    127                 "suspend_rtc")
128                 do_suspend "suspend" 1 rtc        128                 do_suspend "suspend" 1 rtc
129                 ;;                                129                 ;;
130                                                   130 
131                 "hibernate_rtc")                  131                 "hibernate_rtc")
132                 do_suspend "hibernate" 1 rtc      132                 do_suspend "hibernate" 1 rtc
133                 ;;                                133                 ;;
134                                                   134 
135                 "modtest")                        135                 "modtest")
136                 # Do we have modules in place?    136                 # Do we have modules in place?
137                 if [ -z $DRIVER_MOD ] && [ -z     137                 if [ -z $DRIVER_MOD ] && [ -z $GOVERNOR_MOD ]; then
138                         ktap_exit_fail_msg "No    138                         ktap_exit_fail_msg "No driver or governor module passed with -d or -g"
139                 fi                                139                 fi
140                                                   140 
141                 if [ $DRIVER_MOD ]; then          141                 if [ $DRIVER_MOD ]; then
142                         if [ $GOVERNOR_MOD ];     142                         if [ $GOVERNOR_MOD ]; then
143                                 module_test $D    143                                 module_test $DRIVER_MOD $GOVERNOR_MOD
144                         else                      144                         else
145                                 module_driver_    145                                 module_driver_test $DRIVER_MOD
146                         fi                        146                         fi
147                 else                              147                 else
148                         if [ $count = 0 ]; the    148                         if [ $count = 0 ]; then
149                                 ktap_exit_fail    149                                 ktap_exit_fail_msg "No cpu is managed by cpufreq core, exiting"
150                         fi                        150                         fi
151                                                   151 
152                         module_governor_test $    152                         module_governor_test $GOVERNOR_MOD
153                 fi                                153                 fi
154                 ;;                                154                 ;;
155                                                   155 
156                 "sptest1")                        156                 "sptest1")
157                 simple_lockdep                    157                 simple_lockdep
158                 ;;                                158                 ;;
159                                                   159 
160                 "sptest2")                        160                 "sptest2")
161                 concurrent_lockdep                161                 concurrent_lockdep
162                 ;;                                162                 ;;
163                                                   163 
164                 "sptest3")                        164                 "sptest3")
165                 governor_race                     165                 governor_race
166                 ;;                                166                 ;;
167                                                   167 
168                 "sptest4")                        168                 "sptest4")
169                 hotplug_with_updates              169                 hotplug_with_updates
170                 ;;                                170                 ;;
171                                                   171 
172                 *)                                172                 *)
173                 ktap_print_msg "Invalid [-f] f    173                 ktap_print_msg "Invalid [-f] function type"
174                 helpme                            174                 helpme
175                 ;;                                175                 ;;
176         esac                                      176         esac
177 }                                                 177 }
178                                                   178 
179 # clear dumps                                     179 # clear dumps
180 # $1: file name                                   180 # $1: file name
181 clear_dumps()                                     181 clear_dumps()
182 {                                                 182 {
183         echo "" > $1.txt                          183         echo "" > $1.txt
184         echo "" > $1.dmesg_cpufreq.txt            184         echo "" > $1.dmesg_cpufreq.txt
185         echo "" > $1.dmesg_full.txt               185         echo "" > $1.dmesg_full.txt
186 }                                                 186 }
187                                                   187 
188 # $1: output file name                            188 # $1: output file name
189 dmesg_dumps()                                     189 dmesg_dumps()
190 {                                                 190 {
191         dmesg | grep cpufreq >> $1.dmesg_cpufr    191         dmesg | grep cpufreq >> $1.dmesg_cpufreq.txt
192                                                   192 
193         # We may need the full logs as well       193         # We may need the full logs as well
194         dmesg >> $1.dmesg_full.txt                194         dmesg >> $1.dmesg_full.txt
195 }                                                 195 }
196                                                   196 
197 ktap_print_header                                 197 ktap_print_header
198                                                   198 
199 # Parse arguments                                 199 # Parse arguments
200 parse_arguments $@                                200 parse_arguments $@
201                                                   201 
202 ktap_set_plan 1                                   202 ktap_set_plan 1
203                                                   203 
204 # Make sure all requirements are met              204 # Make sure all requirements are met
205 prerequisite                                      205 prerequisite
206                                                   206 
207 # Run requested functions                         207 # Run requested functions
208 clear_dumps $OUTFILE                              208 clear_dumps $OUTFILE
209 do_test | tee -a $OUTFILE.txt                     209 do_test | tee -a $OUTFILE.txt
210 if [ "${PIPESTATUS[0]}" -ne 0 ]; then             210 if [ "${PIPESTATUS[0]}" -ne 0 ]; then
211     exit ${PIPESTATUS[0]};                        211     exit ${PIPESTATUS[0]};
212 fi                                                212 fi
213 dmesg_dumps $OUTFILE                              213 dmesg_dumps $OUTFILE
214                                                   214 
215 ktap_test_pass "Completed successfully"           215 ktap_test_pass "Completed successfully"
216                                                   216 
217 ktap_print_totals                                 217 ktap_print_totals
218 exit "${KSFT_PASS}"                               218 exit "${KSFT_PASS}"
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php