blob: bc477195aaaea08a42c5fa45273e82bfa5dcc701 [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
Patrick Bellasia65ff132016-02-23 12:11:06 +000058
59################################################################################
60# CGroups Utility Functions
61################################################################################
62
63cgroups_get_attributes() {
64 [[ $# -eq 2 ]] || exit -1
65 CGROUP="$1"
66 CONTROLLER="$2"
67 $GREP '' $CGROUP/* | \
68 $GREP "$CONTROLLER\." | \
69 $SED -e "s|$CONTROLLER\.||" -e "s|$CGROUP/||"
70}
71
Patrick Bellasi082a82c2016-01-26 15:38:44 +000072################################################################################
Patrick Bellasif2eac512015-11-27 16:35:57 +000073# Main Function Dispatcher
74################################################################################
75
76case $CMD in
Patrick Bellasicf761312015-11-27 16:38:30 +000077cpufreq_set_all_frequencies)
78 cpufreq_set_all_frequencies $*
79 ;;
Patrick Bellasi51b7f012015-11-27 16:40:58 +000080cpufreq_get_all_frequencies)
81 cpufreq_get_all_frequencies
82 ;;
Patrick Bellasicf761312015-11-27 16:38:30 +000083cpufreq_set_all_governors)
84 cpufreq_set_all_governors $*
85 ;;
Patrick Bellasi51b7f012015-11-27 16:40:58 +000086cpufreq_get_all_governors)
87 cpufreq_get_all_governors
88 ;;
Patrick Bellasicf761312015-11-27 16:38:30 +000089cpufreq_trace_all_frequencies)
90 cpufreq_trace_all_frequencies $*
91 ;;
Patrick Bellasia65ff132016-02-23 12:11:06 +000092cgroups_get_attributes)
93 cgroups_get_attributes $*
94 ;;
Patrick Bellasi082a82c2016-01-26 15:38:44 +000095ftrace_get_function_stats)
96 ftrace_get_function_stats
97 ;;
Patrick Bellasif2eac512015-11-27 16:35:57 +000098*)
99 echo "Command [$CMD] not supported"
100 exit -1
101esac
102
103# vim: tabstop=4 shiftwidth=4