Patrick Bellasi | f2eac51 | 2015-11-27 16:35:57 +0000 | [diff] [blame] | 1 | #!__DEVLIB_SHELL__ |
| 2 | |
| 3 | CMD=$1 |
| 4 | shift |
| 5 | |
| 6 | BUSYBOX=${BUSYBOX:-__DEVLIB_BUSYBOX__} |
| 7 | GREP=${GREP:-$BUSYBOX grep} |
| 8 | SED=${SED:-$BUSYBOX sed} |
| 9 | |
Patrick Bellasi | cf76131 | 2015-11-27 16:38:30 +0000 | [diff] [blame] | 10 | ################################################################################ |
| 11 | # CPUFrequency Utility Functions |
| 12 | ################################################################################ |
| 13 | |
| 14 | cpufreq_set_all_frequencies() { |
| 15 | FREQ=$1 |
| 16 | for CPU in /sys/devices/system/cpu/cpu[0-9]*; do |
| 17 | echo $FREQ > $CPU/cpufreq/scaling_cur_freq |
| 18 | done |
| 19 | } |
| 20 | |
Patrick Bellasi | 51b7f01 | 2015-11-27 16:40:58 +0000 | [diff] [blame] | 21 | cpufreq_get_all_frequencies() { |
| 22 | $GREP '' /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq | \ |
| 23 | $SED -e 's|/sys/devices/system/cpu/cpu||' -e 's|/cpufreq/scaling_cur_freq:| |' |
| 24 | } |
| 25 | |
Patrick Bellasi | cf76131 | 2015-11-27 16:38:30 +0000 | [diff] [blame] | 26 | cpufreq_set_all_governors() { |
| 27 | GOV=$1 |
| 28 | for CPU in /sys/devices/system/cpu/cpu[0-9]*; do |
| 29 | echo $GOV > $CPU/cpufreq/scaling_governor |
| 30 | done |
| 31 | } |
| 32 | |
Patrick Bellasi | 51b7f01 | 2015-11-27 16:40:58 +0000 | [diff] [blame] | 33 | cpufreq_get_all_governors() { |
| 34 | $GREP '' /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | \ |
| 35 | $SED -e 's|/sys/devices/system/cpu/cpu||' -e 's|/cpufreq/scaling_governor:| |' |
| 36 | } |
| 37 | |
Patrick Bellasi | cf76131 | 2015-11-27 16:38:30 +0000 | [diff] [blame] | 38 | cpufreq_trace_all_frequencies() { |
| 39 | FREQS=$(cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq) |
| 40 | CPU=0; for F in $FREQS; do |
| 41 | echo "cpu_frequency: state=$F cpu_id=$CPU" > /sys/kernel/debug/tracing/trace_marker |
| 42 | CPU=$((CPU + 1)) |
| 43 | done |
| 44 | } |
Patrick Bellasi | f2eac51 | 2015-11-27 16:35:57 +0000 | [diff] [blame] | 45 | |
| 46 | ################################################################################ |
Patrick Bellasi | 082a82c | 2016-01-26 15:38:44 +0000 | [diff] [blame^] | 47 | # FTrace Utility Functions |
| 48 | ################################################################################ |
| 49 | |
| 50 | ftrace_get_function_stats() { |
| 51 | for CPU in $(ls /sys/kernel/debug/tracing/trace_stat | sed 's/function//'); do |
| 52 | REPLACE_STRING="s/ Function/\n Function (CPU$CPU)/" |
| 53 | cat /sys/kernel/debug/tracing/trace_stat/function$CPU \ |
| 54 | | sed "$REPLACE_STRING" |
| 55 | done |
| 56 | } |
| 57 | |
| 58 | ################################################################################ |
Patrick Bellasi | f2eac51 | 2015-11-27 16:35:57 +0000 | [diff] [blame] | 59 | # Main Function Dispatcher |
| 60 | ################################################################################ |
| 61 | |
| 62 | case $CMD in |
Patrick Bellasi | cf76131 | 2015-11-27 16:38:30 +0000 | [diff] [blame] | 63 | cpufreq_set_all_frequencies) |
| 64 | cpufreq_set_all_frequencies $* |
| 65 | ;; |
Patrick Bellasi | 51b7f01 | 2015-11-27 16:40:58 +0000 | [diff] [blame] | 66 | cpufreq_get_all_frequencies) |
| 67 | cpufreq_get_all_frequencies |
| 68 | ;; |
Patrick Bellasi | cf76131 | 2015-11-27 16:38:30 +0000 | [diff] [blame] | 69 | cpufreq_set_all_governors) |
| 70 | cpufreq_set_all_governors $* |
| 71 | ;; |
Patrick Bellasi | 51b7f01 | 2015-11-27 16:40:58 +0000 | [diff] [blame] | 72 | cpufreq_get_all_governors) |
| 73 | cpufreq_get_all_governors |
| 74 | ;; |
Patrick Bellasi | cf76131 | 2015-11-27 16:38:30 +0000 | [diff] [blame] | 75 | cpufreq_trace_all_frequencies) |
| 76 | cpufreq_trace_all_frequencies $* |
| 77 | ;; |
Patrick Bellasi | 082a82c | 2016-01-26 15:38:44 +0000 | [diff] [blame^] | 78 | ftrace_get_function_stats) |
| 79 | ftrace_get_function_stats |
| 80 | ;; |
Patrick Bellasi | f2eac51 | 2015-11-27 16:35:57 +0000 | [diff] [blame] | 81 | *) |
| 82 | echo "Command [$CMD] not supported" |
| 83 | exit -1 |
| 84 | esac |
| 85 | |
| 86 | # vim: tabstop=4 shiftwidth=4 |