forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
#!/bin/sh |
|
# SPDX-License-Identifier: GPL-2.0 |
|
# description: Test ftrace direct functions against tracers |
|
|
|
rmmod ftrace-direct ||: |
|
if ! modprobe ftrace-direct ; then |
|
echo "No ftrace-direct sample module - please make CONFIG_SAMPLE_FTRACE_DIRECT=m" |
|
exit_unresolved; |
|
fi |
|
|
|
echo "Let the module run a little" |
|
sleep 1 |
|
|
|
grep -q "my_direct_func: waking up" trace |
|
|
|
rmmod ftrace-direct |
|
|
|
test_tracer() { |
|
tracer=$1 |
|
|
|
# tracer -> direct -> no direct > no tracer |
|
echo $tracer > current_tracer |
|
modprobe ftrace-direct |
|
rmmod ftrace-direct |
|
echo nop > current_tracer |
|
|
|
# tracer -> direct -> no tracer > no direct |
|
echo $tracer > current_tracer |
|
modprobe ftrace-direct |
|
echo nop > current_tracer |
|
rmmod ftrace-direct |
|
|
|
# direct -> tracer -> no tracer > no direct |
|
modprobe ftrace-direct |
|
echo $tracer > current_tracer |
|
echo nop > current_tracer |
|
rmmod ftrace-direct |
|
|
|
# direct -> tracer -> no direct > no notracer |
|
modprobe ftrace-direct |
|
echo $tracer > current_tracer |
|
rmmod ftrace-direct |
|
echo nop > current_tracer |
|
} |
|
|
|
for t in `cat available_tracers`; do |
|
if [ "$t" != "nop" ]; then |
|
test_tracer $t |
|
fi |
|
done |
|
|
|
echo nop > current_tracer |
|
rmmod ftrace-direct ||: |
|
|
|
# Now do the same thing with another direct function registered |
|
echo "Running with another ftrace direct function" |
|
|
|
rmmod ftrace-direct-too ||: |
|
modprobe ftrace-direct-too |
|
|
|
for t in `cat available_tracers`; do |
|
if [ "$t" != "nop" ]; then |
|
test_tracer $t |
|
fi |
|
done |
|
|
|
echo nop > current_tracer |
|
rmmod ftrace-direct ||: |
|
rmmod ftrace-direct-too ||:
|
|
|