# perf ftrace commands only works for root if [ "$(id -u)" != 0 ]; then echo"perf ftrace test [Skipped: no permission]"
exit 2 fi
output=$(mktemp /tmp/__perf_test.ftrace.XXXXXX)
cleanup() { rm -f "${output}"
trap - EXIT TERM INT
}
trap_cleanup() {
cleanup
exit 1
}
trap trap_cleanup EXIT TERM INT
# this will be set in test_ftrace_trace()
target_function=
test_ftrace_list() { echo"perf ftrace list test"
perf ftrace -F > "${output}" # this will be used in test_ftrace_trace()
sleep_functions=$(grep 'sys_.*sleep$'"${output}") echo"syscalls for sleep:" echo"${sleep_functions}" echo"perf ftrace list test [Success]"
}
test_ftrace_trace() { echo"perf ftrace trace test"
perf ftrace trace --graph-opts depth=5 sleep 0.1 > "${output}" # it should have some function name contains 'sleep'
grep "^#" "${output}"
grep -F 'sleep()'"${output}" # find actual syscall function name for FN in ${sleep_functions}; do if grep -q "${FN}""${output}"; then
target_function="${FN}" echo"perf ftrace trace test [Success]"
return fi done
echo"perf ftrace trace test [Failure: sleep syscall not found]"
exit 1
}
test_ftrace_profile() { echo"perf ftrace profile test"
perf ftrace profile --graph-opts depth=5 sleep 0.1 > "${output}"
grep ^# "${output}"
time_re="[[:space:]]+1[[:digit:]]{5}\.[[:digit:]]{3}" # 100283.000 100283.000 100283.000 1 __x64_sys_clock_nanosleep # Check for one *clock_nanosleep line with a Count of just 1 that takes a bit more than 0.1 seconds # Strip the _x64_sys part to work with other architectures
grep -E "^${time_re}${time_re}${time_re}[[:space:]]+1[[:space:]]+.*clock_nanosleep""${output}" echo"perf ftrace profile test [Success]"
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.