tools/testing/selftests/ftrace/test.d/ftrace/fgraph-multi-filter.tc

Source file repositories/reference/linux-study-clean/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-multi-filter.tc

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/ftrace/test.d/ftrace/fgraph-multi-filter.tc
Extension
.tc
Size
3760 bytes
Lines
178
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function graph filters
# requires: set_ftrace_filter function_graph:tracer

# Make sure that function graph filtering works

INSTANCE1="instances/test1_$$"
INSTANCE2="instances/test2_$$"

WD=`pwd`

do_reset() {
    cd $WD
    if [ -d $INSTANCE1 ]; then
	echo nop > $INSTANCE1/current_tracer
	rmdir $INSTANCE1
    fi
    if [ -d $INSTANCE2 ]; then
	echo nop > $INSTANCE2/current_tracer
	rmdir $INSTANCE2
    fi
}

mkdir $INSTANCE1
if ! grep -q function_graph $INSTANCE1/available_tracers; then
    echo "function_graph not allowed with instances"
    rmdir $INSTANCE1
    exit_unsupported
fi

mkdir $INSTANCE2

fail() { # msg
    do_reset
    echo $1
    exit_fail
}

disable_tracing
clear_trace

function_count() {
    search=$1
    vsearch=$2

    if [ -z "$search" ]; then
	cat enabled_functions | wc -l
    elif [ -z "$vsearch" ]; then
	grep $search enabled_functions | wc -l
    else
	grep $search enabled_functions | grep $vsearch| wc -l
    fi
}

set_fgraph() {
    instance=$1
    filter="$2"
    notrace="$3"

    echo "$filter" > $instance/set_ftrace_filter
    echo "$notrace" > $instance/set_ftrace_notrace
    echo function_graph > $instance/current_tracer
}

check_functions() {
    orig_cnt=$1
    test=$2

    cnt=`function_count $test`

Annotation

Implementation Notes