#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # description: ftrace - function graph filters # Make sure that function graph filtering works if ! grep -q function_graph available_tracers; then echo "no function graph tracer configured" exit_unsupported fi check_filter_file set_ftrace_filter fail() { # msg echo $1 exit_fail } disable_tracing clear_trace # filter something, schedule is always good if ! echo "schedule" > set_ftrace_filter; then # test for powerpc 64 if ! echo ".schedule" > set_ftrace_filter; then fail "can not enable schedule filter" fi fi echo function_graph > current_tracer enable_tracing sleep 1 # search for functions (has "()" on the line), and make sure # that only the schedule function was found count=`cat trace | grep '()' | grep -v schedule | wc -l` if [ $count -ne 0 ]; then fail "Graph filtering not working by itself?" fi # Make sure we did find something count=`cat trace | grep 'schedule()' | wc -l` if [ $count -eq 0 ]; then fail "No schedule traces found?" fi exit 0