1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: event trigger - test histogram trigger 4# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist 5# flags: instance 6 7fail() { #msg 8 echo $1 9 exit_fail 10} 11 12echo "Test histogram basic trigger" 13 14echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger 15for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 16grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ 17 fail "hist trigger on sched_process_fork did not work" 18grep child events/sched/sched_process_fork/hist > /dev/null || \ 19 fail "hist trigger on sched_process_fork did not work" 20 21reset_trigger 22 23echo "Test histogram with compound keys" 24 25echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger 26for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 27grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \ 28 fail "compound keys on sched_process_fork did not work" 29 30reset_trigger 31 32echo "Test histogram with string key" 33 34echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger 35for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 36COMM=`cat /proc/$$/comm` 37grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 38 fail "string key on sched_process_fork did not work" 39 40reset_trigger 41 42echo "Test histogram with sort key" 43 44echo 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/trigger 45for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 46 47check_inc() { 48 while [ $# -gt 1 ]; do 49 [ $1 -gt $2 ] && return 1 50 shift 1 51 done 52 return 0 53} 54check_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \ 55 events/sched/sched_process_fork/hist | cut -d: -f2 ` || 56 fail "sort param on sched_process_fork did not work" 57 58exit 0 59