#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # description: event trigger - test multiple histogram triggers # flags: instance do_reset() { reset_trigger echo > set_event clear_trace } fail() { #msg do_reset echo $1 exit $FAIL } if [ ! -f set_event -o ! -d events/sched ]; then echo "event tracing is not supported" exit_unsupported fi if [ ! -f events/sched/sched_process_fork/trigger ]; then echo "event trigger is not supported" exit_unsupported fi if [ ! -f events/sched/sched_process_fork/hist ]; then echo "hist trigger is not supported" exit_unsupported fi reset_tracer do_reset reset_trigger echo "Test histogram multiple tiggers" echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger echo 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ fail "hist trigger on sched_process_fork did not work" grep child events/sched/sched_process_fork/hist > /dev/null || \ fail "hist trigger on sched_process_fork did not work" COMM=`cat /proc/$$/comm` grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ fail "string key on sched_process_fork did not work" reset_trigger echo "Test histogram with its name" echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done grep test_hist events/sched/sched_process_fork/hist > /dev/null || \ fail "named event on sched_process_fork did not work" echo "Test same named histogram on different events" echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done grep test_hist events/sched/sched_process_exit/hist > /dev/null || \ fail "named event on sched_process_fork did not work" diffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l` test $diffs -eq 0 || fail "Same name histograms are not same" reset_trigger do_reset exit 0