xref: /aosp_15_r20/external/ltp/testcases/kernel/power_management/README (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker################################################################################
2*49cdfc7eSAndroid Build Coastguard Worker##                                                                            ##
3*49cdfc7eSAndroid Build Coastguard Worker## Copyright (c) International Business Machines  Corp., 2007                 ##
4*49cdfc7eSAndroid Build Coastguard Worker##                                                                            ##
5*49cdfc7eSAndroid Build Coastguard Worker## This program is free software;  you can redistribute it and#or modify      ##
6*49cdfc7eSAndroid Build Coastguard Worker## it under the terms of the GNU General Public License as published by       ##
7*49cdfc7eSAndroid Build Coastguard Worker## the Free Software Foundation; either version 2 of the License, or          ##
8*49cdfc7eSAndroid Build Coastguard Worker## (at your option) any later version.                                        ##
9*49cdfc7eSAndroid Build Coastguard Worker##                                                                            ##
10*49cdfc7eSAndroid Build Coastguard Worker## This program is distributed in the hope that it will be useful, but        ##
11*49cdfc7eSAndroid Build Coastguard Worker## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
12*49cdfc7eSAndroid Build Coastguard Worker## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
13*49cdfc7eSAndroid Build Coastguard Worker## for more details.                                                          ##
14*49cdfc7eSAndroid Build Coastguard Worker##                                                                            ##
15*49cdfc7eSAndroid Build Coastguard Worker## You should have received a copy of the GNU General Public License          ##
16*49cdfc7eSAndroid Build Coastguard Worker## along with this program;  if not, write to the Free Software               ##
17*49cdfc7eSAndroid Build Coastguard Worker## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
18*49cdfc7eSAndroid Build Coastguard Worker##                                                                            ##
19*49cdfc7eSAndroid Build Coastguard Worker################################################################################
20*49cdfc7eSAndroid Build Coastguard Worker
21*49cdfc7eSAndroid Build Coastguard WorkerPOWER MANAGEMENT TESTS AUTOMATION SUITE
22*49cdfc7eSAndroid Build Coastguard Worker----------------------------------------
23*49cdfc7eSAndroid Build Coastguard WorkerThe tests requires the Kernel to  be compiled with the following config's
24*49cdfc7eSAndroid Build Coastguard Worker
25*49cdfc7eSAndroid Build Coastguard Workerfor CPU FREQUENCY tests:
26*49cdfc7eSAndroid Build Coastguard Worker
27*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ
28*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ_TABLE
29*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ_DEBUG
30*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ_STAT
31*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ_STAT_DETAILS
32*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ_DEFAULT_GOV_*
33*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_FREQ_GOV_*
34*49cdfc7eSAndroid Build Coastguard Worker
35*49cdfc7eSAndroid Build Coastguard Workerfor CPU IDLE tests:
36*49cdfc7eSAndroid Build Coastguard Worker
37*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_IDLE
38*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_IDLE_GOV_LADDER
39*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_CPU_IDLE_GOV_MENU
40*49cdfc7eSAndroid Build Coastguard Worker
41*49cdfc7eSAndroid Build Coastguard Workerfor SCHED_MC tests:
42*49cdfc7eSAndroid Build Coastguard Worker
43*49cdfc7eSAndroid Build Coastguard WorkerCONFIG_SCHED_MC
44*49cdfc7eSAndroid Build Coastguard Worker
45*49cdfc7eSAndroid Build Coastguard WorkerThe power management test automation suite helps run the power management functionality
46*49cdfc7eSAndroid Build Coastguard Worker(e.g: cpu frequency, cpu idle etc..) tests and report results.
47*49cdfc7eSAndroid Build Coastguard Worker
48*49cdfc7eSAndroid Build Coastguard WorkerTest Scripts for CPU FREQUENCY:
49*49cdfc7eSAndroid Build Coastguard Workerchange_freq.sh
50*49cdfc7eSAndroid Build Coastguard Workerchange_govr.sh
51*49cdfc7eSAndroid Build Coastguard Workercheck_cpufreq_sysfs_files.sh
52*49cdfc7eSAndroid Build Coastguard Worker
53*49cdfc7eSAndroid Build Coastguard WorkerTest Scripts for CPU IDLE:
54*49cdfc7eSAndroid Build Coastguard Workerwill be added soon
55*49cdfc7eSAndroid Build Coastguard Worker
56*49cdfc7eSAndroid Build Coastguard WorkerTest Scripts for SCHED_MC:
57*49cdfc7eSAndroid Build Coastguard Workertest_sched_mc.sh
58*49cdfc7eSAndroid Build Coastguard Worker
59*49cdfc7eSAndroid Build Coastguard WorkerCommon functionality:
60*49cdfc7eSAndroid Build Coastguard Workerpm_include.sh
61*49cdfc7eSAndroid Build Coastguard Workercheck_kv_arch.c
62*49cdfc7eSAndroid Build Coastguard Workerpwkm_load_unload.sh
63*49cdfc7eSAndroid Build Coastguard Worker
64*49cdfc7eSAndroid Build Coastguard WorkerTo run your tests you can execute the runpwtests.sh
65*49cdfc7eSAndroid Build Coastguard Worker
66*49cdfc7eSAndroid Build Coastguard WorkerTo run the tests individually :
67*49cdfc7eSAndroid Build Coastguard Worker
68*49cdfc7eSAndroid Build Coastguard WorkerP.S. As of now the supporting architecture(s) are x86,x86_64
69*49cdfc7eSAndroid Build Coastguard Worker
70*49cdfc7eSAndroid Build Coastguard WorkerSupport of system:
71*49cdfc7eSAndroid Build Coastguard Worker-----------------
72*49cdfc7eSAndroid Build Coastguard WorkerIf you see some thing like following,
73*49cdfc7eSAndroid Build Coastguard Worker
74*49cdfc7eSAndroid Build Coastguard WorkerPower Management    1  FAIL  :  Required kernel configuration for SCHED_MC NOT set
75*49cdfc7eSAndroid Build Coastguard Workeror
76*49cdfc7eSAndroid Build Coastguard WorkerPower Management    1  FAIL  :  Required kernel configuration for CPU_FREQ NOT set
77*49cdfc7eSAndroid Build Coastguard Worker
78*49cdfc7eSAndroid Build Coastguard WorkerThen either configuration is not set or the system won't support.
79*49cdfc7eSAndroid Build Coastguard Worker
80*49cdfc7eSAndroid Build Coastguard WorkerFor CPU consolidation verification ebizzy is included in utils directory of LTP.
81*49cdfc7eSAndroid Build Coastguard WorkerTo run cpu consolidation test user has to provide -w <workload> -l <sched_mc_level>.
82*49cdfc7eSAndroid Build Coastguard WorkerRefer to README in LTPROOT/utils/benchmark/ebizzy-0.2 directory for details of ebizzy.
83*49cdfc7eSAndroid Build Coastguard Worker
84*49cdfc7eSAndroid Build Coastguard WorkerTo test CPU consolidation for sched_mc 2 kernbench has to run. Kernbench needs linux kernel source as input in /root directory . For example download from http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.4.tar.bz2. If Linux kernel source not found kernbench wiil  not execute.
85*49cdfc7eSAndroid Build Coastguard WorkerCPU consolidation testcases will not execute if number of CPU's in package is less then 2. If system is hyper threaded but number of CPU is 1 only sched_smt testcases will be excuted. For better coverage of testcases select a system which is at least quad core and then hyper threaded so that you will observe 8 CPU's in each package.
86*49cdfc7eSAndroid Build Coastguard Worker
87*49cdfc7eSAndroid Build Coastguard WorkerTimer migration interface test will execute on kernel versions 2.6.31 and above. Timer migration functionality verification testcases will be executed only on suitable architecture like quad core or the number of CPU's in each package should be at least 4 and above
88