#!/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: wakeing 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 ||: