blob: 9200b70b5689e69a656a93529cce55465b63a7cb [file] [log] [blame]
Patrick Bellasif2eac512015-11-27 16:35:57 +00001#!__DEVLIB_SHELL__
2
3CMD=$1
4shift
5
6BUSYBOX=${BUSYBOX:-__DEVLIB_BUSYBOX__}
7GREP=${GREP:-$BUSYBOX grep}
8SED=${SED:-$BUSYBOX sed}
9
Patrick Bellasicf761312015-11-27 16:38:30 +000010################################################################################
11# CPUFrequency Utility Functions
12################################################################################
13
14cpufreq_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 Bellasi51b7f012015-11-27 16:40:58 +000021cpufreq_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 Bellasicf761312015-11-27 16:38:30 +000026cpufreq_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 Bellasi51b7f012015-11-27 16:40:58 +000033cpufreq_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 Bellasicf761312015-11-27 16:38:30 +000038cpufreq_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 Bellasif2eac512015-11-27 16:35:57 +000045
46################################################################################
Patrick Bellasi082a82c2016-01-26 15:38:44 +000047# FTrace Utility Functions
48################################################################################
49
50ftrace_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 Bellasif2eac512015-11-27 16:35:57 +000059# Main Function Dispatcher
60################################################################################
61
62case $CMD in
Patrick Bellasicf761312015-11-27 16:38:30 +000063cpufreq_set_all_frequencies)
64 cpufreq_set_all_frequencies $*
65 ;;
Patrick Bellasi51b7f012015-11-27 16:40:58 +000066cpufreq_get_all_frequencies)
67 cpufreq_get_all_frequencies
68 ;;
Patrick Bellasicf761312015-11-27 16:38:30 +000069cpufreq_set_all_governors)
70 cpufreq_set_all_governors $*
71 ;;
Patrick Bellasi51b7f012015-11-27 16:40:58 +000072cpufreq_get_all_governors)
73 cpufreq_get_all_governors
74 ;;
Patrick Bellasicf761312015-11-27 16:38:30 +000075cpufreq_trace_all_frequencies)
76 cpufreq_trace_all_frequencies $*
77 ;;
Patrick Bellasi082a82c2016-01-26 15:38:44 +000078ftrace_get_function_stats)
79 ftrace_get_function_stats
80 ;;
Patrick Bellasif2eac512015-11-27 16:35:57 +000081*)
82 echo "Command [$CMD] not supported"
83 exit -1
84esac
85
86# vim: tabstop=4 shiftwidth=4