File Index
Files and directories
Sign in
FILE

kprobe-direct.tc

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/ftrace/test.d/direct/kprobe-direct.tc PLAIN TEXT
 1#!/bin/sh
 2# SPDX-License-Identifier: GPL-2.0
 3# description: Test ftrace direct functions against kprobes
 4# requires: kprobe_events
 5
 6rmmod ftrace-direct ||:
 7if ! modprobe ftrace-direct ; then
 8  echo "No ftrace-direct sample module - please build with CONFIG_SAMPLE_FTRACE_DIRECT=m"
 9  exit_unresolved;
10fi
11
12echo "Let the module run a little"
13sleep 1
14
15grep -q "my_direct_func: waking up" trace
16
17rmmod ftrace-direct
18
19echo 'p:kwake wake_up_process task=$arg1' > kprobe_events
20
21start_direct() {
22	echo > trace
23	modprobe ftrace-direct
24	sleep 1
25	grep -q "my_direct_func: waking up" trace
26}
27
28stop_direct() {
29	rmmod ftrace-direct
30}
31
32enable_probe() {
33	echo > trace
34	echo 1 > events/kprobes/kwake/enable
35	sleep 1
36	grep -q "kwake:" trace
37}
38
39disable_probe() {
40	echo 0 > events/kprobes/kwake/enable
41}
42
43test_kprobes() {
44	# probe -> direct -> no direct > no probe
45	enable_probe
46	start_direct
47	stop_direct
48	disable_probe
49
50	# probe -> direct -> no probe > no direct
51	enable_probe
52	start_direct
53	disable_probe
54	stop_direct
55
56	# direct -> probe -> no probe > no direct
57	start_direct
58	enable_probe
59	disable_probe
60	stop_direct
61
62	# direct -> probe -> no direct > no noprobe
63	start_direct
64	enable_probe
65	stop_direct
66	disable_probe
67}
68
69test_kprobes
70
71# Now do this with a second registered direct function
72echo "Running with another ftrace direct function"
73
74modprobe ftrace-direct-too
75
76test_kprobes
77
78rmmod ftrace-direct-too
79
80echo > kprobe_events
~/ Read-only file preview.