147c509d3SMasami Hiramatsu#!/bin/sh 247c509d3SMasami Hiramatsu# SPDX-License-Identifier: GPL-2.0 347c509d3SMasami Hiramatsu# description: ftrace - Max stack tracer 4*74e60728SMasami Hiramatsu# requires: stack_trace stack_trace_filter 547c509d3SMasami Hiramatsu# Test the basic function of max-stack usage tracing 647c509d3SMasami Hiramatsu 747c509d3SMasami Hiramatsuecho > stack_trace_filter 847c509d3SMasami Hiramatsuecho 0 > stack_max_size 947c509d3SMasami Hiramatsuecho 1 > /proc/sys/kernel/stack_tracer_enabled 1047c509d3SMasami Hiramatsu 1147c509d3SMasami Hiramatsu: "Fork and wait for the first entry become !lock" 1247c509d3SMasami Hiramatsutimeout=10 1347c509d3SMasami Hiramatsuwhile [ $timeout -ne 0 ]; do 1447c509d3SMasami Hiramatsu ( echo "forked" ) 1547c509d3SMasami Hiramatsu FL=`grep " 0)" stack_trace` 1647c509d3SMasami Hiramatsu echo $FL | grep -q "lock" || break; 1747c509d3SMasami Hiramatsu timeout=$((timeout - 1)) 1847c509d3SMasami Hiramatsudone 1947c509d3SMasami Hiramatsuecho 0 > /proc/sys/kernel/stack_tracer_enabled 2047c509d3SMasami Hiramatsu 2147c509d3SMasami Hiramatsuecho '*lock*' > stack_trace_filter 2247c509d3SMasami Hiramatsutest `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l` 2347c509d3SMasami Hiramatsu 2447c509d3SMasami Hiramatsuecho 0 > stack_max_size 2547c509d3SMasami Hiramatsuecho 1 > /proc/sys/kernel/stack_tracer_enabled 2647c509d3SMasami Hiramatsu 2747c509d3SMasami Hiramatsu: "Fork and always the first entry including lock" 2847c509d3SMasami Hiramatsutimeout=10 2947c509d3SMasami Hiramatsuwhile [ $timeout -ne 0 ]; do 3047c509d3SMasami Hiramatsu ( echo "forked" ) 3147c509d3SMasami Hiramatsu FL=`grep " 0)" stack_trace` 3247c509d3SMasami Hiramatsu echo $FL | grep -q "lock" 3347c509d3SMasami Hiramatsu timeout=$((timeout - 1)) 3447c509d3SMasami Hiramatsudone 3547c509d3SMasami Hiramatsuecho 0 > /proc/sys/kernel/stack_tracer_enabled 36