forked from luck/tmp_suning_uos_patched
linux-kselftest-5.8-rc2
This Kselftest update for Linux 5.8-rc2 consists of: - ftrace "requires:" list for simplifying and unifying requirement checks for each test case, adding "requires:" line instead of checking required ftrace interfaces in each test case. - a minor spelling correction patch -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAl7s440ACgkQCwJExA0N Qxyl1A//YDbxzJlB6zrmSmagIKC0KGKDcSrAJNsV6K5lIEf7yPi2DkvQT6jpo27M Xtv+GTF8nuAJRuRceawKp622o+jT7dd7dUt0FFInsj2xPwTLFy0E+AvZ5j2cqps7 gqcdOeHU/u6QrprUX4JCoOf0NdjJsKwzfOXiaOlBGG26bqMZFOnhbd/DclwWbStJ gOIqMxp7feQ9yjm5ngSZVmQ6sbM+6ZwsywD1kXrSL68gQ+s3segnzDoaoHSFoGwj lysOHbx3+/Q+pH18nnFAp6H9csr+iMVqlj1FGN62JUVhkaMdlFhnk/cpO97Lvuwf nOU3BC0FWSjvquAhL2ZqGnfeXBoHSO9wfpOcC/Dyro4QozvlzigM1PBS3WoRbxzl 2ArZ985xhSqeuiJKa4CwLQWR495FOasm4gHBe9nVrqaiwAORZfdqeBgTJBTw8Y7K W3+DmA4ttZE6QNZokfgpGLWT4K9PRm8F5ZdzUX8+sqjAQmlMp30LW7lhhAlbprqc dKUAIB1dJwwT2gPsa/ntIf1SZEbMD8FlrAZDDBNZkId/IdgtRUrl9OCPGAwyrRJ7 pA4YxqBQqB1hwL51Dmk1KOlhePIfeDu9DFzUPgKETvuZA6ITmyM/artYaexcpDoF 7pvbLNsNsL7yuNF8y7wCSFj4IP8kPYRCBpmXR4hhugJI15M14dw= =nqUq -----END PGP SIGNATURE----- Merge tag 'linux-kselftest-5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest cleanups from Shuah Khan: - ftrace "requires:" list for simplifying and unifying requirement checks for each test case, adding "requires:" line instead of checking required ftrace interfaces in each test case. - a minor spelling correction patch * tag 'linux-kselftest-5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/ftrace: Support ":README" suffix for requires selftests/ftrace: Support ":tracer" suffix for requires selftests/ftrace: Convert check_filter_file() with requires list selftests/ftrace: Convert required interface checks into requires list selftests/ftrace: Add "requires:" list support selftests/ftrace: Return unsupported for the unconfigured features selftests/ftrace: Allow ":" in description tools: testing: ftrace: trigger: fix spelling mistake
This commit is contained in:
commit
27c2760561
|
@ -263,10 +263,16 @@ CASENO=0
|
|||
|
||||
testcase() { # testfile
|
||||
CASENO=$((CASENO+1))
|
||||
desc=`grep "^#[ \t]*description:" $1 | cut -f2 -d:`
|
||||
desc=`grep "^#[ \t]*description:" $1 | cut -f2- -d:`
|
||||
prlog -n "[$CASENO]$INSTANCE$desc"
|
||||
}
|
||||
|
||||
checkreq() { # testfile
|
||||
requires=`grep "^#[ \t]*requires:" $1 | cut -f2- -d:`
|
||||
# Use eval to pass quoted-patterns correctly.
|
||||
eval check_requires "$requires"
|
||||
}
|
||||
|
||||
test_on_instance() { # testfile
|
||||
grep -q "^#[ \t]*flags:.*instance" $1
|
||||
}
|
||||
|
@ -356,7 +362,8 @@ trap 'SIG_RESULT=$XFAIL' $SIG_XFAIL
|
|||
|
||||
__run_test() { # testfile
|
||||
# setup PID and PPID, $$ is not updated.
|
||||
(cd $TRACING_DIR; read PID _ < /proc/self/stat; set -e; set -x; initialize_ftrace; . $1)
|
||||
(cd $TRACING_DIR; read PID _ < /proc/self/stat; set -e; set -x;
|
||||
checkreq $1; initialize_ftrace; . $1)
|
||||
[ $? -ne 0 ] && kill -s $SIG_FAIL $SIG_PID
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/sh
|
||||
# description: Snapshot and tracing setting
|
||||
# requires: snapshot
|
||||
# flags: instance
|
||||
|
||||
[ ! -f snapshot ] && exit_unsupported
|
||||
|
||||
echo "Set tracing off"
|
||||
echo 0 > tracing_on
|
||||
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: trace_pipe and trace_marker
|
||||
# requires: trace_marker
|
||||
# flags: instance
|
||||
|
||||
[ ! -f trace_marker ] && exit_unsupported
|
||||
|
||||
echo "test input 1" > trace_marker
|
||||
|
||||
: "trace interface never consume the ring buffer"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Test ftrace direct functions against kprobes
|
||||
# requires: kprobe_events
|
||||
|
||||
rmmod ftrace-direct ||:
|
||||
if ! modprobe ftrace-direct ; then
|
||||
|
@ -8,11 +9,6 @@ if ! modprobe ftrace-direct ; then
|
|||
exit_unresolved;
|
||||
fi
|
||||
|
||||
if [ ! -f kprobe_events ]; then
|
||||
echo "No kprobe_events file -please build CONFIG_KPROBE_EVENTS"
|
||||
exit_unresolved;
|
||||
fi
|
||||
|
||||
echo "Let the module run a little"
|
||||
sleep 1
|
||||
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - add/remove kprobe events
|
||||
|
||||
[ -f dynamic_events ] || exit_unsupported
|
||||
|
||||
grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported
|
||||
grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported
|
||||
# requires: dynamic_events "place: [<module>:]<symbol>":README "place (kretprobe): [<module>:]<symbol>":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - add/remove synthetic events
|
||||
|
||||
[ -f dynamic_events ] || exit_unsupported
|
||||
|
||||
grep -q "s:\[synthetic/\]" README || exit_unsupported
|
||||
# requires: dynamic_events "s:[synthetic/]":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,16 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - selective clear (compatibility)
|
||||
|
||||
[ -f dynamic_events ] || exit_unsupported
|
||||
|
||||
grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported
|
||||
grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported
|
||||
|
||||
grep -q "s:\[synthetic/\]" README || exit_unsupported
|
||||
|
||||
[ -f synthetic_events ] || exit_unsupported
|
||||
[ -f kprobe_events ] || exit_unsupported
|
||||
# requires: dynamic_events kprobe_events synthetic_events "place: [<module>:]<symbol>":README "place (kretprobe): [<module>:]<symbol>":README "s:[synthetic/]":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - generic clear event
|
||||
|
||||
[ -f dynamic_events ] || exit_unsupported
|
||||
|
||||
grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported
|
||||
grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported
|
||||
|
||||
grep -q "s:\[synthetic/\]" README || exit_unsupported
|
||||
# requires: dynamic_events "place: [<module>:]<symbol>":README "place (kretprobe): [<module>:]<symbol>":README "s:[synthetic/]":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event tracing - enable/disable with event level files
|
||||
# requires: set_event events/sched
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
|
@ -13,11 +14,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo 'sched:sched_switch' > set_event
|
||||
|
||||
yield
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event tracing - restricts events based on pid notrace filtering
|
||||
# requires: set_event events/sched set_event_pid set_event_notrace_pid
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
|
@ -56,16 +57,6 @@ enable_events() {
|
|||
echo 1 > tracing_on
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f set_event_pid -o ! -f set_event_notrace_pid ]; then
|
||||
echo "event pid notrace filtering is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo 0 > options/event-fork
|
||||
|
||||
do_reset
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event tracing - restricts events based on pid
|
||||
# requires: set_event set_event_pid events/sched
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
|
@ -16,16 +17,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f set_event_pid ]; then
|
||||
echo "event pid filtering is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo 0 > options/event-fork
|
||||
|
||||
echo 1 > events/sched/sched_switch/enable
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event tracing - enable/disable with subsystem level files
|
||||
# requires: set_event events/sched/enable
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
|
@ -13,11 +14,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo 'sched:*' > set_event
|
||||
|
||||
yield
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event tracing - enable/disable with top level files
|
||||
# requires: available_events set_event events/enable
|
||||
|
||||
do_reset() {
|
||||
echo > set_event
|
||||
|
@ -12,11 +13,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo '*:*' > set_event
|
||||
|
||||
yield
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function graph filters with stack tracer
|
||||
# requires: stack_trace set_ftrace_filter function_graph:tracer
|
||||
|
||||
# Make sure that function graph filtering works, and is not
|
||||
# affected by other tracers enabled (like stack tracer)
|
||||
|
||||
if ! grep -q function_graph available_tracers; then
|
||||
echo "no function graph tracer configured"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
do_reset() {
|
||||
if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
|
||||
echo 0 > /proc/sys/kernel/stack_tracer_enabled
|
||||
|
@ -37,12 +31,6 @@ fi
|
|||
|
||||
echo function_graph > current_tracer
|
||||
|
||||
if [ ! -f stack_trace ]; then
|
||||
echo "Stack tracer not configured"
|
||||
do_reset
|
||||
exit_unsupported;
|
||||
fi
|
||||
|
||||
echo "Now testing with stack tracer"
|
||||
|
||||
echo 1 > /proc/sys/kernel/stack_tracer_enabled
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function graph filters
|
||||
# requires: set_ftrace_filter function_graph:tracer
|
||||
|
||||
# Make sure that function graph filtering works
|
||||
|
||||
if ! grep -q function_graph available_tracers; then
|
||||
echo "no function graph tracer configured"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
fail() { # msg
|
||||
echo $1
|
||||
exit_fail
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function glob filters
|
||||
# requires: set_ftrace_filter function:tracer
|
||||
|
||||
# Make sure that function glob matching filter works.
|
||||
|
||||
if ! grep -q function available_tracers; then
|
||||
echo "no function tracer configured"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
disable_tracing
|
||||
clear_trace
|
||||
|
||||
|
|
|
@ -1,22 +1,11 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function pid notrace filters
|
||||
# requires: set_ftrace_notrace_pid set_ftrace_filter function:tracer
|
||||
# flags: instance
|
||||
|
||||
# Make sure that function pid matching filter with notrace works.
|
||||
|
||||
if ! grep -q function available_tracers; then
|
||||
echo "no function tracer configured"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f set_ftrace_notrace_pid ]; then
|
||||
echo "set_ftrace_notrace_pid not found? Is function tracer not set?"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
do_function_fork=1
|
||||
|
||||
if [ ! -f options/function-fork ]; then
|
||||
|
|
|
@ -1,23 +1,12 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function pid filters
|
||||
# requires: set_ftrace_pid set_ftrace_filter function:tracer
|
||||
# flags: instance
|
||||
|
||||
# Make sure that function pid matching filter works.
|
||||
# Also test it on an instance directory
|
||||
|
||||
if ! grep -q function available_tracers; then
|
||||
echo "no function tracer configured"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f set_ftrace_pid ]; then
|
||||
echo "set_ftrace_pid not found? Is function tracer not set?"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
do_function_fork=1
|
||||
|
||||
if [ ! -f options/function-fork ]; then
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - stacktrace filter command
|
||||
# requires: set_ftrace_filter
|
||||
# flags: instance
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
echo _do_fork:stacktrace >> set_ftrace_filter
|
||||
|
||||
grep -q "_do_fork:stacktrace:unlimited" set_ftrace_filter
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function trace with cpumask
|
||||
# requires: function:tracer
|
||||
|
||||
if ! which nproc ; then
|
||||
nproc() {
|
||||
|
@ -15,11 +16,6 @@ if [ $NP -eq 1 ] ;then
|
|||
exit_unresolved
|
||||
fi
|
||||
|
||||
if ! grep -q "function" available_tracers ; then
|
||||
echo "Function trace is not enabled"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
ORIG_CPUMASK=`cat tracing_cpumask`
|
||||
|
||||
do_reset() {
|
||||
|
|
|
@ -3,15 +3,14 @@
|
|||
# description: ftrace - test for function event triggers
|
||||
# flags: instance
|
||||
#
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
# requires: set_ftrace_filter
|
||||
#
|
||||
# Ftrace allows to add triggers to functions, such as enabling or disabling
|
||||
# tracing, enabling or disabling trace events, or recording a stack trace
|
||||
# within the ring buffer.
|
||||
#
|
||||
# This test is designed to test event triggers
|
||||
#
|
||||
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
do_reset() {
|
||||
reset_ftrace_filter
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function trace on module
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
# requires: set_ftrace_filter
|
||||
|
||||
: "mod: allows to filter a non exist function"
|
||||
echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function profiling
|
||||
|
||||
[ ! -f function_profile_enabled ] && exit_unsupported
|
||||
# requires: function_profile_enabled
|
||||
|
||||
: "Enable function profile"
|
||||
echo 1 > function_profile_enabled
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - function profiler with function tracing
|
||||
# requires: function_profile_enabled set_ftrace_filter function_graph:tracer
|
||||
|
||||
# There was a bug after a rewrite of the ftrace infrastructure that
|
||||
# caused the function_profiler not to be able to run with the function
|
||||
|
@ -13,17 +14,6 @@
|
|||
# This test triggers those bugs on those kernels.
|
||||
#
|
||||
# We need function_graph and profiling to to run this test
|
||||
if ! grep -q function_graph available_tracers; then
|
||||
echo "no function graph tracer configured"
|
||||
exit_unsupported;
|
||||
fi
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
if [ ! -f function_profile_enabled ]; then
|
||||
echo "function_profile_enabled not found, function profiling enabled?"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
fail() { # mesg
|
||||
echo $1
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - test reading of set_ftrace_filter
|
||||
#
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
# requires: set_ftrace_filter
|
||||
#
|
||||
# The set_ftrace_filter file of ftrace is used to list functions as well as
|
||||
# triggers (probes) attached to functions. The code to read this file is not
|
||||
# straight forward and has had various bugs in the past. This test is designed
|
||||
|
@ -9,9 +12,6 @@
|
|||
# file in various ways (cat vs dd).
|
||||
#
|
||||
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
fail() { # mesg
|
||||
echo $1
|
||||
exit_fail
|
||||
|
|
|
@ -1,15 +1,9 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - Max stack tracer
|
||||
# requires: stack_trace stack_trace_filter
|
||||
# Test the basic function of max-stack usage tracing
|
||||
|
||||
if [ ! -f stack_trace ]; then
|
||||
echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
check_filter_file stack_trace_filter
|
||||
|
||||
echo > stack_trace_filter
|
||||
echo 0 > stack_max_size
|
||||
echo 1 > /proc/sys/kernel/stack_tracer_enabled
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
# description: ftrace - test for function traceon/off triggers
|
||||
# flags: instance
|
||||
#
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
# requires: set_ftrace_filter
|
||||
#
|
||||
# Ftrace allows to add triggers to functions, such as enabling or disabling
|
||||
# tracing, enabling or disabling trace events, or recording a stack trace
|
||||
# within the ring buffer.
|
||||
|
@ -10,9 +13,6 @@
|
|||
# This test is designed to test enabling and disabling tracing triggers
|
||||
#
|
||||
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
check_filter_file set_ftrace_filter
|
||||
|
||||
fail() { # mesg
|
||||
echo $1
|
||||
exit_fail
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: ftrace - test tracing error log support
|
||||
# event tracing is currently the only ftrace tracer that uses the
|
||||
# tracing error_log, hence this check
|
||||
# requires: set_event error_log
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
# event tracing is currently the only ftrace tracer that uses the
|
||||
# tracing error_log, hence this check
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
[ -f error_log ] || exit_unsupported
|
||||
|
||||
ftrace_errlog_check 'event filter parse error' '((sig >= 10 && sig < 15) || dsig ^== 17) && comm != bash' 'events/signal/signal_generate/filter'
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,10 +1,3 @@
|
|||
check_filter_file() { # check filter file introduced by dynamic ftrace
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "$1 not found? Is dynamic ftrace not set?"
|
||||
exit_unsupported
|
||||
fi
|
||||
}
|
||||
|
||||
clear_trace() { # reset trace output
|
||||
echo > trace
|
||||
}
|
||||
|
@ -113,6 +106,27 @@ initialize_ftrace() { # Reset ftrace to initial-state
|
|||
enable_tracing
|
||||
}
|
||||
|
||||
check_requires() { # Check required files and tracers
|
||||
for i in "$@" ; do
|
||||
r=${i%:README}
|
||||
t=${i%:tracer}
|
||||
if [ $t != $i ]; then
|
||||
if ! grep -wq $t available_tracers ; then
|
||||
echo "Required tracer $t is not configured."
|
||||
exit_unsupported
|
||||
fi
|
||||
elif [ $r != $i ]; then
|
||||
if ! grep -Fq "$r" README ; then
|
||||
echo "Required feature pattern \"$r\" is not in README."
|
||||
exit_unsupported
|
||||
fi
|
||||
elif [ ! -e $i ]; then
|
||||
echo "Required feature interface $i doesn't exist."
|
||||
exit_unsupported
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
LOCALHOST=127.0.0.1
|
||||
|
||||
yield() {
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Test creation and deletion of trace instances while setting an event
|
||||
|
||||
if [ ! -d instances ] ; then
|
||||
echo "no instance directory with this kernel"
|
||||
exit_unsupported;
|
||||
fi
|
||||
# requires: instances
|
||||
|
||||
fail() { # mesg
|
||||
rmdir foo 2>/dev/null
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Test creation and deletion of trace instances
|
||||
|
||||
if [ ! -d instances ] ; then
|
||||
echo "no instance directory with this kernel"
|
||||
exit_unsupported;
|
||||
fi
|
||||
# requires: instances
|
||||
|
||||
fail() { # mesg
|
||||
rmdir x y z 2>/dev/null
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe dynamic event - adding and removing
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
echo p:myevent _do_fork > kprobe_events
|
||||
grep myevent kprobe_events
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe dynamic event - busy event check
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported
|
||||
# requires: kprobe_events
|
||||
|
||||
echo p:myevent _do_fork > kprobe_events
|
||||
test -d events/kprobes/myevent
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe dynamic event with arguments
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
echo 'p:testprobe _do_fork $stack $stack0 +0($stack)' > kprobe_events
|
||||
grep testprobe kprobe_events | grep -q 'arg1=\$stack arg2=\$stack0 arg3=+0(\$stack)'
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event with comm arguments
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
grep -A1 "fetcharg:" README | grep -q "\$comm" || exit_unsupported # this is too old
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event string type argument
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
case `uname -m` in
|
||||
x86_64)
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event symbol argument
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
SYMBOL="linux_proc_banner"
|
||||
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event argument syntax
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
|
||||
grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
|
||||
# requires: kprobe_events "x8/16/32/64":README
|
||||
|
||||
PROBEFUNC="vfs_read"
|
||||
GOODREG=
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobes event arguments with types
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
|
||||
grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
|
||||
# requires: kprobe_events "x8/16/32/64":README
|
||||
|
||||
gen_event() { # Bitsize
|
||||
echo "p:testprobe _do_fork \$stack0:s$1 \$stack0:u$1 \$stack0:x$1 \$stack0:b4@4/$1"
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event user-memory access
|
||||
# requires: kprobe_events '$arg<N>':README
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
|
||||
grep -q '\$arg<N>' README || exit_unresolved # depends on arch
|
||||
grep -A10 "fetcharg:" README | grep -q 'ustring' || exit_unsupported
|
||||
grep -A10 "fetcharg:" README | grep -q '\[u\]<offset>' || exit_unsupported
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event auto/manual naming
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
:;: "Add an event on function without name" ;:
|
||||
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe dynamic event with function tracer
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
grep "function" available_tracers || exit_unsupported # this is configurable
|
||||
|
||||
check_filter_file set_ftrace_filter
|
||||
# requires: kprobe_events stack_trace_filter function:tracer
|
||||
|
||||
# prepare
|
||||
echo nop > current_tracer
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe dynamic event - probing module
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
rmmod trace-printk ||:
|
||||
if ! modprobe trace-printk ; then
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Create/delete multiprobe on kprobe event
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported
|
||||
|
||||
grep -q "Create/append/" README || exit_unsupported
|
||||
# requires: kprobe_events "Create/append/":README
|
||||
|
||||
# Choose 2 symbols for target
|
||||
SYM1=_do_fork
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event parser error log check
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
|
||||
[ -f error_log ] || exit_unsupported
|
||||
# requires: kprobe_events error_log
|
||||
|
||||
check_error() { # command-with-error-pos-by-^
|
||||
ftrace_errlog_check 'trace_kprobe' "$1" 'kprobe_events'
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kretprobe dynamic event with arguments
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
# Add new kretprobe event
|
||||
echo 'r:testprobe2 _do_fork $retval' > kprobe_events
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kretprobe dynamic event with maxactive
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
grep -q 'r\[maxactive\]' README || exit_unsupported # this is older version
|
||||
# requires: kprobe_events 'r[maxactive]':README
|
||||
|
||||
# Test if we successfully reject unknown messages
|
||||
if echo 'a:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Register/unregister many kprobe events
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
# ftrace fentry skip size depends on the machine architecture.
|
||||
# Currently HAVE_KPROBES_ON_FTRACE defined on x86 and powerpc64le
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe events - probe points
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
TARGET_FUNC=tracefs_create_dir
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe dynamic event - adding and removing
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
# requires: kprobe_events
|
||||
|
||||
! grep -q 'myevent' kprobe_profile
|
||||
echo p:myevent _do_fork > kprobe_events
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Uprobe event parser error log check
|
||||
|
||||
[ -f uprobe_events ] || exit_unsupported # this is configurable
|
||||
|
||||
[ -f error_log ] || exit_unsupported
|
||||
# requires: uprobe_events error_log
|
||||
|
||||
check_error() { # command-with-error-pos-by-^
|
||||
ftrace_errlog_check 'trace_uprobe' "$1" 'uprobe_events'
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: test for the preemptirqsoff tracer
|
||||
# requires: preemptoff:tracer irqsoff:tracer
|
||||
|
||||
MOD=preemptirq_delay_test
|
||||
|
||||
|
@ -27,9 +28,6 @@ unres() { #msg
|
|||
modprobe $MOD || unres "$MOD module not available"
|
||||
rmmod $MOD
|
||||
|
||||
grep -q "preemptoff" available_tracers || unsup "preemptoff tracer not enabled"
|
||||
grep -q "irqsoff" available_tracers || unsup "irqsoff tracer not enabled"
|
||||
|
||||
reset_tracer
|
||||
|
||||
# Simulate preemptoff section for half a second couple of times
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: %HERE DESCRIBE WHAT THIS DOES%
|
||||
# requires: %HERE LIST THE REQUIRED FILES, TRACERS OR README-STRINGS%
|
||||
# The required tracer needs :tracer suffix, e.g. function:tracer
|
||||
# The required README string needs :README suffix, e.g. "x8/16/32/64":README
|
||||
# and the README string is treated as a fixed-string instead of regexp pattern.
|
||||
# you have to add ".tc" extention for your testcase file
|
||||
# Note that all tests are run with "errexit" option.
|
||||
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Test wakeup tracer
|
||||
# requires: wakeup:tracer
|
||||
|
||||
if ! which chrt ; then
|
||||
echo "chrt is not found. This test requires nice command."
|
||||
exit_unresolved
|
||||
fi
|
||||
|
||||
if ! grep -wq "wakeup" available_tracers ; then
|
||||
echo "wakeup tracer is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo wakeup > current_tracer
|
||||
echo 1 > tracing_on
|
||||
echo 0 > tracing_max_latency
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Test wakeup RT tracer
|
||||
# requires: wakeup_rt:tracer
|
||||
|
||||
if ! which chrt ; then
|
||||
echo "chrt is not found. This test requires chrt command."
|
||||
exit_unresolved
|
||||
fi
|
||||
|
||||
if ! grep -wq "wakeup_rt" available_tracers ; then
|
||||
echo "wakeup_rt tracer is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo wakeup_rt > current_tracer
|
||||
echo 1 > tracing_on
|
||||
echo 0 > tracing_max_latency
|
||||
|
|
|
@ -1,24 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger expected fail actions
|
||||
# requires: set_event snapshot "snapshot()":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f snapshot ]; then
|
||||
echo "snapshot is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
grep -q "snapshot()" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test expected snapshot action failure"
|
||||
|
||||
echo 'hist:keys=comm:onmatch(sched.sched_wakeup).snapshot()' >> events/sched/sched_waking/trigger && exit_fail
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test field variable support
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test field variable support"
|
||||
|
||||
echo 'wakeup_latency u64 lat; pid_t pid; int prio; char comm[16]' > synthetic_events
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event combined histogram trigger
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'waking_latency u64 lat pid_t pid' > synthetic_events
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test multiple actions on hist trigger
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test multiple actions on hist trigger"
|
||||
echo 'wakeup_latency u64 lat; pid_t pid' >> synthetic_events
|
||||
TRIGGER1=events/sched/sched_wakeup/trigger
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger onchange action
|
||||
# requires: set_event "onchange(var)":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
grep -q "onchange(var)" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test onchange action"
|
||||
|
||||
echo 'hist:keys=comm:newprio=prio:onchange($newprio).save(comm,prio) if comm=="ping"' >> events/sched/sched_waking/trigger
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger onmatch action
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger onmatch-onmax action
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger onmax action
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events
|
||||
|
|
|
@ -1,31 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger snapshot action
|
||||
# requires: set_event snapshot events/sched/sched_process_fork/hist "onchange(var)":README "snapshot()":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f snapshot ]; then
|
||||
echo "snapshot is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
grep -q "onchange(var)" README || exit_unsupported # version issue
|
||||
|
||||
grep -q "snapshot()" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test snapshot action"
|
||||
|
||||
echo 1 > events/sched/enable
|
||||
|
|
|
@ -1,22 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test synthetic event create remove
|
||||
# requires: set_event synthetic_events
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test synthetic_events syntax parser
|
||||
# requires: set_event synthetic_events
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
|
@ -14,16 +15,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
reset_tracer
|
||||
do_reset
|
||||
|
||||
|
|
|
@ -1,29 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger trace action
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist "trace(<synthetic_event>":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
grep -q "trace(<synthetic_event>" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test event enable/disable trigger
|
||||
# requires: set_event events/sched/sched_process_fork/trigger
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,16 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
FEATURE=`grep enable_event events/sched/sched_process_fork/trigger`
|
||||
if [ -z "$FEATURE" ]; then
|
||||
echo "event enable/disable trigger is not supported"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test trigger filter
|
||||
# requires: set_event events/sched/sched_process_fork/trigger
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,16 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test trigger filter"
|
||||
echo 1 > tracing_on
|
||||
echo 'traceoff if child_pid == 0' > events/sched/sched_process_fork/trigger
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test histogram modifiers
|
||||
# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,21 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test histogram with execname modifier"
|
||||
|
||||
echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
|
||||
|
|
|
@ -1,23 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test histogram parser errors
|
||||
|
||||
if [ ! -f set_event -o ! -d events/kmem ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/kmem/kmalloc/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/kmem/kmalloc/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
[ -f error_log ] || exit_unsupported
|
||||
# requires: set_event events/kmem/kmalloc/trigger events/kmem/kmalloc/hist error_log
|
||||
|
||||
check_error() { # command-with-error-pos-by-^
|
||||
ftrace_errlog_check 'hist:kmem:kmalloc' "$1" 'events/kmem/kmalloc/trigger'
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test histogram trigger
|
||||
# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,22 +9,7 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test histogram basic tigger"
|
||||
echo "Test histogram basic trigger"
|
||||
|
||||
echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
|
||||
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test multiple histogram triggers
|
||||
# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,21 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test histogram multiple triggers"
|
||||
|
||||
echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
|
||||
|
|
|
@ -1,27 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test snapshot-trigger
|
||||
# requires: set_event events/sched/sched_process_fork/trigger snapshot
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f snapshot ]; then
|
||||
echo "snapshot is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
FEATURE=`grep snapshot events/sched/sched_process_fork/trigger`
|
||||
if [ -z "$FEATURE" ]; then
|
||||
echo "snapshot trigger is not supported"
|
||||
|
|
|
@ -1,29 +1,20 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test stacktrace-trigger
|
||||
# requires: set_event events/sched/sched_process_fork/trigger
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
FEATURE=`grep stacktrace events/sched/sched_process_fork/trigger`
|
||||
if [ -z "$FEATURE" ]; then
|
||||
echo "stacktrace trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test stacktrace tigger"
|
||||
echo "Test stacktrace trigger"
|
||||
echo 0 > trace
|
||||
echo 0 > options/stacktrace
|
||||
echo 'stacktrace' > events/sched/sched_process_fork/trigger
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: trace_marker trigger - test histogram trigger
|
||||
# requires: set_event events/ftrace/print/trigger events/ftrace/print/hist
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,27 +9,7 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -d events/ftrace/print ]; then
|
||||
echo "event trace_marker is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test histogram trace_marker tigger"
|
||||
echo "Test histogram trace_marker trigger"
|
||||
|
||||
echo 'hist:keys=common_pid' > events/ftrace/print/trigger
|
||||
for i in `seq 1 10` ; do echo "hello" > trace_marker; done
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: trace_marker trigger - test snapshot trigger
|
||||
# requires: set_event snapshot events/ftrace/print/trigger
|
||||
# flags: instance
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,26 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f snapshot ]; then
|
||||
echo "snapshot is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -d events/ftrace/print ]; then
|
||||
echo "event trace_marker is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
test_trace() {
|
||||
file=$1
|
||||
x=$2
|
||||
|
@ -46,7 +27,7 @@ test_trace() {
|
|||
done
|
||||
}
|
||||
|
||||
echo "Test snapshot trace_marker tigger"
|
||||
echo "Test snapshot trace_marker trigger"
|
||||
|
||||
echo 'snapshot' > events/ftrace/print/trigger
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: trace_marker trigger - test histogram with synthetic event against kernel event
|
||||
# requires: set_event synthetic_events events/sched/sched_waking events/ftrace/print/trigger events/ftrace/print/hist
|
||||
# flags:
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,36 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic events not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -d events/ftrace/print ]; then
|
||||
echo "event trace_marker is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -d events/sched/sched_waking ]; then
|
||||
echo "event sched_waking is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test histogram kernel event to trace_marker latency histogram trigger"
|
||||
|
||||
echo 'latency u64 lat' > synthetic_events
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: trace_marker trigger - test histogram with synthetic event
|
||||
# requires: set_event synthetic_events events/ftrace/print/trigger events/ftrace/print/hist
|
||||
# flags:
|
||||
|
||||
fail() { #msg
|
||||
|
@ -8,31 +9,6 @@ fail() { #msg
|
|||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic events not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -d events/ftrace/print ]; then
|
||||
echo "event trace_marker is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/ftrace/print/hist ]; then
|
||||
echo "hist trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test histogram trace_marker to trace_marker latency histogram trigger"
|
||||
|
||||
echo 'latency u64 lat' > synthetic_events
|
||||
|
|
|
@ -1,22 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test traceon/off trigger
|
||||
# requires: set_event events/sched/sched_process_fork/trigger
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event -o ! -d events/sched ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
||||
echo "event trigger is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
echo "Test traceoff trigger"
|
||||
echo 1 > tracing_on
|
||||
echo 'traceoff' > events/sched/sched_process_fork/trigger
|
||||
|
|
Loading…
Reference in New Issue
Block a user