1 This is cpufreq-bench, a microbenchmark for th 2 3 Purpose 4 ======= 5 6 What is this benchmark for: 7 - Identify worst case performance loss when 8 scaling using Linux kernel governors 9 - Identify average reaction time of a govern 10 - (Stress) Testing whether a cpufreq low lev 11 as expected 12 - Identify cpufreq related performance regre 13 - Possibly Real time priority testing? -> wh 14 processes with a higher prio than the gove 15 - ... 16 17 What this benchmark does *not* cover: 18 - Power saving related regressions (In fact 19 throughput is, the worse the power savings 20 mostly count more...) 21 - Real world (workloads) 22 23 24 Description 25 =========== 26 27 cpufreq-bench helps to test the condition of a 28 For that purpose, it compares the performance 29 powersave module. 30 31 32 How it works 33 ============ 34 You can specify load (100% CPU load) and sleep 35 will be run X time in a row (cycles): 36 37 sleep=25000 38 load=25000 39 cycles=20 40 41 This part of the configuration file will creat 42 repeated 20 times. 43 44 Adding this: 45 sleep_step=25000 46 load_step=25000 47 rounds=5 48 Will increase load and sleep time by 25ms 5 ti 49 Together you get following test: 50 25ms load/sleep time repeated 20 times (cycle 51 50ms load/sleep time repeated 20 times (cycle 52 .. 53 100ms load/sleep time repeated 20 times (cycle 54 55 First it is calibrated how long a specific CPU 56 takes on this machine and needs to be run in a 57 governor. 58 Then the above test runs are processed using t 59 and the governor to test. The time the calcula 60 with the dynamic freq scaling governor is comp 61 on full performance and you get the overall pe 62 63 64 Example of expected results with ondemand gove 65 66 This shows expected results of the first two t 67 above config, you there have: 68 69 100% CPU load (load) | 0 % CPU load (sleep) | 70 25 ms | 25 ms | 71 50 ms | 50 ms | 72 73 For example if ondemand governor is configured 74 sampling rate you get: 75 76 In round 1, ondemand should have rather static 77 won't ever switch up (as long as up_threshold 78 79 In round 2, if the ondemand sampling times exa 80 trigger of the cpufreq-bench, you will see no 81 below possible ondemand sample kick ins (1)): 82 83 But if ondemand always kicks in in the middle 84 will always see 50% loads and you get worst pe 85 switching up (compare with below possible onde 86 87 50 50 50 50ms ->time 88 load -----| |-----| |-----| |----- 89 | | | | | | 90 sleep |-----| |-----| |-----| 91 |-----|-----|-----|-----|-----|-----|----- 92 100 0 100 0 100 0 1 93 |-----|-----|-----|-----|-----|-----|-- 94 50 50 50 50 50 50 50 95 96 You can easily test all kind of load/sleep tim 97 governor in average behaves as expected. 98 99 100 ToDo 101 ==== 102 103 Provide a gnuplot utility script for easy gene 104 the outcome nicely. 105 106 107 cpufreq-bench Command Usage 108 =========================== 109 -l, --load=<long int> initial load t 110 -s, --sleep=<long int> initial sleep 111 -x, --load-step=<long int> time to be add 112 -y, --sleep-step=<long int> time to be add 113 -c, --cpu=<unsigned int> CPU Number to 114 -p, --prio=<priority> scheduler prio 115 -g, --governor=<governor> cpufreq govern 116 -n, --cycles=<int> load/sleep cyc 117 -r, --rounds<int> load/sleep rou 118 -f, --file=<configfile> config file to 119 -o, --output=<dir> output dir, mu 120 -v, --verbose verbose output 121 122 Due to the high priority, the application may 123 After the benchmark, the logfile is saved in O 124
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.