1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: ftrace - Max stack tracer 4# Test the basic function of max-stack usage tracing 5 6if [ ! -f stack_trace ]; then 7 echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y" 8 exit_unsupported 9fi 10 11check_filter_file stack_trace_filter 12 13echo > stack_trace_filter 14echo 0 > stack_max_size 15echo 1 > /proc/sys/kernel/stack_tracer_enabled 16 17: "Fork and wait for the first entry become !lock" 18timeout=10 19while [ $timeout -ne 0 ]; do 20 ( echo "forked" ) 21 FL=`grep " 0)" stack_trace` 22 echo $FL | grep -q "lock" || break; 23 timeout=$((timeout - 1)) 24done 25echo 0 > /proc/sys/kernel/stack_tracer_enabled 26 27echo '*lock*' > stack_trace_filter 28test `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l` 29 30echo 0 > stack_max_size 31echo 1 > /proc/sys/kernel/stack_tracer_enabled 32 33: "Fork and always the first entry including lock" 34timeout=10 35while [ $timeout -ne 0 ]; do 36 ( echo "forked" ) 37 FL=`grep " 0)" stack_trace` 38 echo $FL | grep -q "lock" 39 timeout=$((timeout - 1)) 40done 41echo 0 > /proc/sys/kernel/stack_tracer_enabled 42