Merge tag 'trace-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt: "New features for this release: - Pretty much a full rewrite of the processing of function plugins. i.e. echo do_IRQ:stacktrace > set_ftrace_filter - The rewrite was needed to add plugins to be unique to tracing instances. i.e. mkdir instance/foo; cd instances/foo; echo do_IRQ:stacktrace > set_ftrace_filter The old way was written very hacky. This removes a lot of those hacks. - New "function-fork" tracing option. When set, pids in the set_ftrace_pid will have their children added when the processes with their pids listed in the set_ftrace_pid file forks. - Exposure of "maxactive" for kretprobe in kprobe_events - Allow for builtin init functions to be traced by the function tracer (via the kernel command line). Module init function tracing will come in the next release. - Added more selftests, and have selftests also test in an instance" * tag 'trace-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (60 commits) ring-buffer: Return reader page back into existing ring buffer selftests: ftrace: Allow some event trigger tests to run in an instance selftests: ftrace: Have some basic tests run in a tracing instance too selftests: ftrace: Have event tests also run in an tracing instance selftests: ftrace: Make func_event_triggers and func_traceonoff_triggers tests do instances selftests: ftrace: Allow some tests to be run in a tracing instance tracing/ftrace: Allow for instances to trigger their own stacktrace probes tracing/ftrace: Allow for the traceonoff probe be unique to instances tracing/ftrace: Enable snapshot function trigger to work with instances tracing/ftrace: Allow instances to have their own function probes tracing/ftrace: Add a better way to pass data via the probe functions ftrace: Dynamically create the probe ftrace_ops for the trace_array tracing: Pass the trace_array into ftrace_probe_ops functions tracing: Have the trace_array hold the list of registered func probes ftrace: If the hash for a probe fails to update then free what was initialized ftrace: Have the function probes call their own function ftrace: Have each function probe use its own ftrace_ops ftrace: Have unregister_ftrace_function_probe_func() return a value ftrace: Add helper function ftrace_hash_move_and_update_ops() ftrace: Remove data field from ftrace_func_probe structure ...
This commit is contained in:
@@ -16,6 +16,7 @@ echo " -k|--keep Keep passed test logs"
|
||||
echo " -v|--verbose Increase verbosity of test messages"
|
||||
echo " -vv Alias of -v -v (Show all results in stdout)"
|
||||
echo " -d|--debug Debug mode (trace all shell commands)"
|
||||
echo " -l|--logdir <dir> Save logs on the <dir>"
|
||||
exit $1
|
||||
}
|
||||
|
||||
@@ -64,6 +65,10 @@ parse_opts() { # opts
|
||||
DEBUG=1
|
||||
shift 1
|
||||
;;
|
||||
--logdir|-l)
|
||||
LOG_DIR=$2
|
||||
shift 2
|
||||
;;
|
||||
*.tc)
|
||||
if [ -f "$1" ]; then
|
||||
OPT_TEST_CASES="$OPT_TEST_CASES `abspath $1`"
|
||||
@@ -145,11 +150,16 @@ XFAILED_CASES=
|
||||
UNDEFINED_CASES=
|
||||
TOTAL_RESULT=0
|
||||
|
||||
INSTANCE=
|
||||
CASENO=0
|
||||
testcase() { # testfile
|
||||
CASENO=$((CASENO+1))
|
||||
desc=`grep "^#[ \t]*description:" $1 | cut -f2 -d:`
|
||||
prlog -n "[$CASENO]$desc"
|
||||
prlog -n "[$CASENO]$INSTANCE$desc"
|
||||
}
|
||||
|
||||
test_on_instance() { # testfile
|
||||
grep -q "^#[ \t]*flags:.*instance" $1
|
||||
}
|
||||
|
||||
eval_result() { # sigval
|
||||
@@ -266,6 +276,17 @@ for t in $TEST_CASES; do
|
||||
run_test $t
|
||||
done
|
||||
|
||||
# Test on instance loop
|
||||
INSTANCE=" (instance) "
|
||||
for t in $TEST_CASES; do
|
||||
test_on_instance $t || continue
|
||||
SAVED_TRACING_DIR=$TRACING_DIR
|
||||
export TRACING_DIR=`mktemp -d $TRACING_DIR/instances/ftracetest.XXXXXX`
|
||||
run_test $t
|
||||
rmdir $TRACING_DIR
|
||||
TRACING_DIR=$SAVED_TRACING_DIR
|
||||
done
|
||||
|
||||
prlog ""
|
||||
prlog "# of passed: " `echo $PASSED_CASES | wc -w`
|
||||
prlog "# of failed: " `echo $FAILED_CASES | wc -w`
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: Basic test for tracers
|
||||
# flags: instance
|
||||
test -f available_tracers
|
||||
for t in `cat available_tracers`; do
|
||||
echo $t > current_tracer
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: Basic trace clock test
|
||||
# flags: instance
|
||||
test -f trace_clock
|
||||
for c in `cat trace_clock | tr -d \[\]`; do
|
||||
echo $c > trace_clock
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event tracing - enable/disable with event level files
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
echo > set_event
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event tracing - restricts events based on pid
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
echo > set_event
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event tracing - enable/disable with subsystem level files
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
echo > set_event
|
||||
|
@@ -0,0 +1,114 @@
|
||||
#!/bin/sh
|
||||
# description: ftrace - test for function event triggers
|
||||
# flags: instance
|
||||
#
|
||||
# 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
|
||||
if [ ! -f set_ftrace_filter ]; then
|
||||
echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
do_reset() {
|
||||
reset_ftrace_filter
|
||||
reset_tracer
|
||||
disable_events
|
||||
clear_trace
|
||||
enable_tracing
|
||||
}
|
||||
|
||||
fail() { # mesg
|
||||
do_reset
|
||||
echo $1
|
||||
exit $FAIL
|
||||
}
|
||||
|
||||
SLEEP_TIME=".1"
|
||||
|
||||
do_reset
|
||||
|
||||
echo "Testing function probes with events:"
|
||||
|
||||
EVENT="sched:sched_switch"
|
||||
EVENT_ENABLE="events/sched/sched_switch/enable"
|
||||
|
||||
cnt_trace() {
|
||||
grep -v '^#' trace | wc -l
|
||||
}
|
||||
|
||||
test_event_enabled() {
|
||||
val=$1
|
||||
|
||||
e=`cat $EVENT_ENABLE`
|
||||
if [ "$e" != $val ]; then
|
||||
echo "Expected $val but found $e"
|
||||
exit -1
|
||||
fi
|
||||
}
|
||||
|
||||
run_enable_disable() {
|
||||
enable=$1 # enable
|
||||
Enable=$2 # Enable
|
||||
check_disable=$3 # 0
|
||||
check_enable_star=$4 # 1*
|
||||
check_disable_star=$5 # 0*
|
||||
|
||||
cnt=`cnt_trace`
|
||||
if [ $cnt -ne 0 ]; then
|
||||
fail "Found junk in trace file"
|
||||
fi
|
||||
|
||||
echo "$Enable event all the time"
|
||||
|
||||
echo $check_disable > $EVENT_ENABLE
|
||||
sleep $SLEEP_TIME
|
||||
|
||||
test_event_enabled $check_disable
|
||||
|
||||
echo "schedule:${enable}_event:$EVENT" > set_ftrace_filter
|
||||
|
||||
echo " make sure it works 5 times"
|
||||
|
||||
for i in `seq 5`; do
|
||||
sleep $SLEEP_TIME
|
||||
echo " test $i"
|
||||
test_event_enabled $check_enable_star
|
||||
|
||||
echo $check_disable > $EVENT_ENABLE
|
||||
done
|
||||
sleep $SLEEP_TIME
|
||||
echo " make sure it's still works"
|
||||
test_event_enabled $check_enable_star
|
||||
|
||||
reset_ftrace_filter
|
||||
|
||||
echo " make sure it only works 3 times"
|
||||
|
||||
echo $check_disable > $EVENT_ENABLE
|
||||
sleep $SLEEP_TIME
|
||||
|
||||
echo "schedule:${enable}_event:$EVENT:3" > set_ftrace_filter
|
||||
|
||||
for i in `seq 3`; do
|
||||
sleep $SLEEP_TIME
|
||||
echo " test $i"
|
||||
test_event_enabled $check_enable_star
|
||||
|
||||
echo $check_disable > $EVENT_ENABLE
|
||||
done
|
||||
|
||||
sleep $SLEEP_TIME
|
||||
echo " make sure it stop working"
|
||||
test_event_enabled $check_disable_star
|
||||
|
||||
do_reset
|
||||
}
|
||||
|
||||
run_enable_disable enable Enable 0 "1*" "0*"
|
||||
run_enable_disable disable Disable 1 "0*" "1*"
|
@@ -0,0 +1,132 @@
|
||||
#!/bin/sh
|
||||
# description: ftrace - test reading of 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
|
||||
# to add functions and triggers to that file in various ways and read that
|
||||
# file in various ways (cat vs dd).
|
||||
#
|
||||
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
if [ ! -f set_ftrace_filter ]; then
|
||||
echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
do_reset() {
|
||||
reset_tracer
|
||||
reset_ftrace_filter
|
||||
disable_events
|
||||
clear_trace
|
||||
enable_tracing
|
||||
}
|
||||
|
||||
fail() { # mesg
|
||||
do_reset
|
||||
echo $1
|
||||
exit $FAIL
|
||||
}
|
||||
|
||||
do_reset
|
||||
|
||||
FILTER=set_ftrace_filter
|
||||
FUNC1="schedule"
|
||||
FUNC2="do_IRQ"
|
||||
|
||||
ALL_FUNCS="#### all functions enabled ####"
|
||||
|
||||
test_func() {
|
||||
if ! echo "$1" | grep -q "^$2\$"; then
|
||||
return 0
|
||||
fi
|
||||
echo "$1" | grep -v "^$2\$"
|
||||
return 1
|
||||
}
|
||||
|
||||
check_set_ftrace_filter() {
|
||||
cat=`cat $FILTER`
|
||||
dd1=`dd if=$FILTER bs=1 | grep -v -e 'records in' -e 'records out' -e 'bytes copied'`
|
||||
dd100=`dd if=$FILTER bs=100 | grep -v -e 'records in' -e 'records out' -e 'bytes copied'`
|
||||
|
||||
echo "Testing '$@'"
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
echo "test $1"
|
||||
if cat=`test_func "$cat" "$1"`; then
|
||||
return 0
|
||||
fi
|
||||
if dd1=`test_func "$dd1" "$1"`; then
|
||||
return 0
|
||||
fi
|
||||
if dd100=`test_func "$dd100" "$1"`; then
|
||||
return 0
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if [ -n "$cat" ]; then
|
||||
return 0
|
||||
fi
|
||||
if [ -n "$dd1" ]; then
|
||||
return 0
|
||||
fi
|
||||
if [ -n "$dd100" ]; then
|
||||
return 0
|
||||
fi
|
||||
return 1;
|
||||
}
|
||||
|
||||
if check_set_ftrace_filter "$ALL_FUNCS"; then
|
||||
fail "Expected only $ALL_FUNCS"
|
||||
fi
|
||||
|
||||
echo "$FUNC1:traceoff" > set_ftrace_filter
|
||||
if check_set_ftrace_filter "$ALL_FUNCS" "$FUNC1:traceoff:unlimited"; then
|
||||
fail "Expected $ALL_FUNCS and $FUNC1:traceoff:unlimited"
|
||||
fi
|
||||
|
||||
echo "$FUNC1" > set_ftrace_filter
|
||||
if check_set_ftrace_filter "$FUNC1" "$FUNC1:traceoff:unlimited"; then
|
||||
fail "Expected $FUNC1 and $FUNC1:traceoff:unlimited"
|
||||
fi
|
||||
|
||||
echo "$FUNC2" >> set_ftrace_filter
|
||||
if check_set_ftrace_filter "$FUNC1" "$FUNC2" "$FUNC1:traceoff:unlimited"; then
|
||||
fail "Expected $FUNC1 $FUNC2 and $FUNC1:traceoff:unlimited"
|
||||
fi
|
||||
|
||||
echo "$FUNC2:traceoff" >> set_ftrace_filter
|
||||
if check_set_ftrace_filter "$FUNC1" "$FUNC2" "$FUNC1:traceoff:unlimited" "$FUNC2:traceoff:unlimited"; then
|
||||
fail "Expected $FUNC1 $FUNC2 $FUNC1:traceoff:unlimited and $FUNC2:traceoff:unlimited"
|
||||
fi
|
||||
|
||||
echo "$FUNC1" > set_ftrace_filter
|
||||
if check_set_ftrace_filter "$FUNC1" "$FUNC1:traceoff:unlimited" "$FUNC2:traceoff:unlimited"; then
|
||||
fail "Expected $FUNC1 $FUNC1:traceoff:unlimited and $FUNC2:traceoff:unlimited"
|
||||
fi
|
||||
|
||||
echo > set_ftrace_filter
|
||||
if check_set_ftrace_filter "$ALL_FUNCS" "$FUNC1:traceoff:unlimited" "$FUNC2:traceoff:unlimited"; then
|
||||
fail "Expected $ALL_FUNCS $FUNC1:traceoff:unlimited and $FUNC2:traceoff:unlimited"
|
||||
fi
|
||||
|
||||
reset_ftrace_filter
|
||||
|
||||
if check_set_ftrace_filter "$ALL_FUNCS"; then
|
||||
fail "Expected $ALL_FUNCS"
|
||||
fi
|
||||
|
||||
echo "$FUNC1" > set_ftrace_filter
|
||||
if check_set_ftrace_filter "$FUNC1" ; then
|
||||
fail "Expected $FUNC1"
|
||||
fi
|
||||
|
||||
echo "$FUNC2" >> set_ftrace_filter
|
||||
if check_set_ftrace_filter "$FUNC1" "$FUNC2" ; then
|
||||
fail "Expected $FUNC1 and $FUNC2"
|
||||
fi
|
||||
|
||||
do_reset
|
||||
|
||||
exit 0
|
@@ -0,0 +1,172 @@
|
||||
#!/bin/sh
|
||||
# description: ftrace - test for function traceon/off triggers
|
||||
# flags: instance
|
||||
#
|
||||
# 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 enabling and disabling tracing triggers
|
||||
#
|
||||
|
||||
# The triggers are set within the set_ftrace_filter file
|
||||
if [ ! -f set_ftrace_filter ]; then
|
||||
echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
do_reset() {
|
||||
reset_ftrace_filter
|
||||
reset_tracer
|
||||
disable_events
|
||||
clear_trace
|
||||
enable_tracing
|
||||
}
|
||||
|
||||
fail() { # mesg
|
||||
do_reset
|
||||
echo $1
|
||||
exit $FAIL
|
||||
}
|
||||
|
||||
SLEEP_TIME=".1"
|
||||
|
||||
do_reset
|
||||
|
||||
echo "Testing function probes with enabling disabling tracing:"
|
||||
|
||||
cnt_trace() {
|
||||
grep -v '^#' trace | wc -l
|
||||
}
|
||||
|
||||
echo '** DISABLE TRACING'
|
||||
disable_tracing
|
||||
clear_trace
|
||||
|
||||
cnt=`cnt_trace`
|
||||
if [ $cnt -ne 0 ]; then
|
||||
fail "Found junk in trace"
|
||||
fi
|
||||
|
||||
|
||||
echo '** ENABLE EVENTS'
|
||||
|
||||
echo 1 > events/enable
|
||||
|
||||
echo '** ENABLE TRACING'
|
||||
enable_tracing
|
||||
|
||||
cnt=`cnt_trace`
|
||||
if [ $cnt -eq 0 ]; then
|
||||
fail "Nothing found in trace"
|
||||
fi
|
||||
|
||||
# powerpc uses .schedule
|
||||
func="schedule"
|
||||
x=`grep '^\.schedule$' available_filter_functions | wc -l`
|
||||
if [ "$x" -eq 1 ]; then
|
||||
func=".schedule"
|
||||
fi
|
||||
|
||||
echo '** SET TRACEOFF'
|
||||
|
||||
echo "$func:traceoff" > set_ftrace_filter
|
||||
|
||||
cnt=`grep schedule set_ftrace_filter | wc -l`
|
||||
if [ $cnt -ne 1 ]; then
|
||||
fail "Did not find traceoff trigger"
|
||||
fi
|
||||
|
||||
cnt=`cnt_trace`
|
||||
sleep $SLEEP_TIME
|
||||
cnt2=`cnt_trace`
|
||||
|
||||
if [ $cnt -ne $cnt2 ]; then
|
||||
fail "Tracing is not stopped"
|
||||
fi
|
||||
|
||||
on=`cat tracing_on`
|
||||
if [ $on != "0" ]; then
|
||||
fail "Tracing is not off"
|
||||
fi
|
||||
|
||||
line1=`cat trace | tail -1`
|
||||
sleep $SLEEP_TIME
|
||||
line2=`cat trace | tail -1`
|
||||
|
||||
if [ "$line1" != "$line2" ]; then
|
||||
fail "Tracing file is still changing"
|
||||
fi
|
||||
|
||||
clear_trace
|
||||
|
||||
cnt=`cnt_trace`
|
||||
if [ $cnt -ne 0 ]; then
|
||||
fail "Tracing is still happeing"
|
||||
fi
|
||||
|
||||
echo "!$func:traceoff" >> set_ftrace_filter
|
||||
|
||||
cnt=`grep schedule set_ftrace_filter | wc -l`
|
||||
if [ $cnt -ne 0 ]; then
|
||||
fail "traceoff trigger still exists"
|
||||
fi
|
||||
|
||||
on=`cat tracing_on`
|
||||
if [ $on != "0" ]; then
|
||||
fail "Tracing is started again"
|
||||
fi
|
||||
|
||||
echo "$func:traceon" > set_ftrace_filter
|
||||
|
||||
cnt=`grep schedule set_ftrace_filter | wc -l`
|
||||
if [ $cnt -ne 1 ]; then
|
||||
fail "traceon trigger not found"
|
||||
fi
|
||||
|
||||
cnt=`cnt_trace`
|
||||
if [ $cnt -eq 0 ]; then
|
||||
fail "Tracing did not start"
|
||||
fi
|
||||
|
||||
on=`cat tracing_on`
|
||||
if [ $on != "1" ]; then
|
||||
fail "Tracing was not enabled"
|
||||
fi
|
||||
|
||||
|
||||
echo "!$func:traceon" >> set_ftrace_filter
|
||||
|
||||
cnt=`grep schedule set_ftrace_filter | wc -l`
|
||||
if [ $cnt -ne 0 ]; then
|
||||
fail "traceon trigger still exists"
|
||||
fi
|
||||
|
||||
check_sleep() {
|
||||
val=$1
|
||||
sleep $SLEEP_TIME
|
||||
cat set_ftrace_filter
|
||||
on=`cat tracing_on`
|
||||
if [ $on != "$val" ]; then
|
||||
fail "Expected tracing_on to be $val, but it was $on"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
echo "$func:traceoff:3" > set_ftrace_filter
|
||||
check_sleep "0"
|
||||
echo 1 > tracing_on
|
||||
check_sleep "0"
|
||||
echo 1 > tracing_on
|
||||
check_sleep "0"
|
||||
echo 1 > tracing_on
|
||||
check_sleep "1"
|
||||
echo "!$func:traceoff:0" > set_ftrace_filter
|
||||
|
||||
if grep -e traceon -e traceoff set_ftrace_filter; then
|
||||
fail "Tracing on and off triggers still exist"
|
||||
fi
|
||||
|
||||
disable_events
|
||||
|
||||
exit 0
|
@@ -30,6 +30,27 @@ reset_events_filter() { # reset all current setting filters
|
||||
done
|
||||
}
|
||||
|
||||
reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
|
||||
echo > set_ftrace_filter
|
||||
grep -v '^#' set_ftrace_filter | while read t; do
|
||||
tr=`echo $t | cut -d: -f2`
|
||||
if [ "$tr" == "" ]; then
|
||||
continue
|
||||
fi
|
||||
if [ $tr == "enable_event" -o $tr == "disable_event" ]; then
|
||||
tr=`echo $t | cut -d: -f1-4`
|
||||
limit=`echo $t | cut -d: -f5`
|
||||
else
|
||||
tr=`echo $t | cut -d: -f1-2`
|
||||
limit=`echo $t | cut -d: -f3`
|
||||
fi
|
||||
if [ "$limit" != "unlimited" ]; then
|
||||
tr="$tr:$limit"
|
||||
fi
|
||||
echo "!$tr" > set_ftrace_filter
|
||||
done
|
||||
}
|
||||
|
||||
disable_events() {
|
||||
echo 0 > events/enable
|
||||
}
|
||||
|
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
# description: Kretprobe dynamic event with maxactive
|
||||
|
||||
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
||||
|
||||
echo > kprobe_events
|
||||
|
||||
# Test if we successfully reject unknown messages
|
||||
if echo 'a:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
|
||||
|
||||
# Test if we successfully reject too big maxactive
|
||||
if echo 'r1000000:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
|
||||
|
||||
# Test if we successfully reject unparsable numbers for maxactive
|
||||
if echo 'r10fuzz:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
|
||||
|
||||
# Test for kretprobe with event name without maxactive
|
||||
echo 'r:myprobeaccept inet_csk_accept' > kprobe_events
|
||||
grep myprobeaccept kprobe_events
|
||||
test -d events/kprobes/myprobeaccept
|
||||
echo '-:myprobeaccept' >> kprobe_events
|
||||
|
||||
# Test for kretprobe with event name with a small maxactive
|
||||
echo 'r10:myprobeaccept inet_csk_accept' > kprobe_events
|
||||
grep myprobeaccept kprobe_events
|
||||
test -d events/kprobes/myprobeaccept
|
||||
echo '-:myprobeaccept' >> kprobe_events
|
||||
|
||||
# Test for kretprobe without event name without maxactive
|
||||
echo 'r inet_csk_accept' > kprobe_events
|
||||
grep inet_csk_accept kprobe_events
|
||||
echo > kprobe_events
|
||||
|
||||
# Test for kretprobe without event name with a small maxactive
|
||||
echo 'r10 inet_csk_accept' > kprobe_events
|
||||
grep inet_csk_accept kprobe_events
|
||||
echo > kprobe_events
|
||||
|
||||
clear_trace
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event trigger - test event enable/disable trigger
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event trigger - test trigger filter
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event trigger - test histogram modifiers
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event trigger - test histogram trigger
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
# description: event trigger - test multiple histogram triggers
|
||||
# flags: instance
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
|
Reference in New Issue
Block a user