sefltests/tracing: Add a test for tracepoint events on modules
Add a test case for tracepoint events on modules. This checks if it can add and remove the events correctly. Link: https://lore.kernel.org/all/172397781494.286558.7581515061075998225.stgit@devnote2/ Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
This commit is contained in:
@@ -20,6 +20,7 @@ CONFIG_PREEMPT_TRACER=y
|
||||
CONFIG_PROBE_EVENTS_BTF_ARGS=y
|
||||
CONFIG_SAMPLES=y
|
||||
CONFIG_SAMPLE_FTRACE_DIRECT=m
|
||||
CONFIG_SAMPLE_TRACE_EVENTS=m
|
||||
CONFIG_SAMPLE_TRACE_PRINTK=m
|
||||
CONFIG_SCHED_TRACER=y
|
||||
CONFIG_STACK_TRACER=y
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - add/remove tracepoint probe events on module
|
||||
# requires: dynamic_events "t[:[<group>/][<event>]] <tracepoint> [<args>]":README
|
||||
|
||||
rmmod trace-events-sample ||:
|
||||
if ! modprobe trace-events-sample ; then
|
||||
echo "No trace-events sample module - please make CONFIG_SAMPLE_TRACE_EVENTS=m"
|
||||
exit_unresolved;
|
||||
fi
|
||||
trap "rmmod trace-events-sample" EXIT
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
||||
TRACEPOINT1=foo_bar
|
||||
TRACEPOINT2=foo_bar_with_cond
|
||||
|
||||
echo "t:myevent1 $TRACEPOINT1" >> dynamic_events
|
||||
echo "t:myevent2 $TRACEPOINT2" >> dynamic_events
|
||||
|
||||
grep -q myevent1 dynamic_events
|
||||
grep -q myevent2 dynamic_events
|
||||
test -d events/tracepoints/myevent1
|
||||
test -d events/tracepoints/myevent2
|
||||
|
||||
echo "-:myevent2" >> dynamic_events
|
||||
|
||||
grep -q myevent1 dynamic_events
|
||||
! grep -q myevent2 dynamic_events
|
||||
|
||||
echo > dynamic_events
|
||||
|
||||
clear_trace
|
||||
|
||||
:;: "Try to put a probe on a tracepoint in non-loaded module" ;:
|
||||
rmmod trace-events-sample
|
||||
|
||||
echo "t:myevent1 $TRACEPOINT1" >> dynamic_events
|
||||
echo "t:myevent2 $TRACEPOINT2" >> dynamic_events
|
||||
|
||||
grep -q myevent1 dynamic_events
|
||||
grep -q myevent2 dynamic_events
|
||||
test -d events/tracepoints/myevent1
|
||||
test -d events/tracepoints/myevent2
|
||||
|
||||
echo 1 > events/tracepoints/enable
|
||||
|
||||
modprobe trace-events-sample
|
||||
|
||||
sleep 2
|
||||
|
||||
grep -q "myevent1" trace
|
||||
grep -q "myevent2" trace
|
||||
|
||||
rmmod trace-events-sample
|
||||
trap "" EXIT
|
||||
|
||||
echo 0 > events/tracepoints/enable
|
||||
echo > dynamic_events
|
||||
clear_trace
|
||||
Reference in New Issue
Block a user