#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # description: ftrace - function trace with cpumask if ! which nproc ; then nproc() { ls -d /sys/devices/system/cpu/cpu[0-9]* | wc -l } fi NP=`nproc` if [ $NP -eq 1 ] ;then echo "We can not test cpumask on UP environment" exit_unresolved fi if ! grep -q "function" available_tracers ; then echo "Function trace is not enabled" exit_unsupported fi ORIG_CPUMASK=`cat tracing_cpumask` do_reset() { echo $ORIG_CPUMASK > tracing_cpumask } echo 0 > tracing_on echo > trace : "Bitmask only record on CPU1" echo 2 > tracing_cpumask MASK=0x`cat tracing_cpumask` test `printf "%d" $MASK` -eq 2 || do_reset echo function > current_tracer echo 1 > tracing_on (echo "forked") echo 0 > tracing_on : "Check CPU1 events are recorded" grep -q -e "\[001\]" trace || do_reset : "There should be No other cpu events" ! grep -qv -e "\[001\]" -e "^#" trace || do_reset do_reset