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 7 fail() { #msg 8 echo $1 9 exit_fail 10 } 11 12 echo "Test histogram basic trigger" 13 14 echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger 15 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 16 grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ 17 fail "hist trigger on sched_process_fork did not work" 18 grep child events/sched/sched_process_fork/hist > /dev/null || \ 19 fail "hist trigger on sched_process_fork did not work" 20 21 reset_trigger 22 23 echo "Test histogram with compound keys" 24 25 echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger 26 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 27 grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \ 28 fail "compound keys on sched_process_fork did not work" 29 30 reset_trigger 31 32 echo "Test histogram with string key" 33 34 echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger 35 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 36 COMM=`cat /proc/$$/comm` 37 grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 38 fail "string key on sched_process_fork did not work" 39 40 reset_trigger 41 42 echo "Test histogram with sym modifier" 43 44 echo 'hist:keys=call_site.sym' > events/kmem/kmalloc/trigger 45 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 46 grep '{ call_site: \[[0-9a-f][0-9a-f]*\] [_a-zA-Z][_a-zA-Z]* *}' events/kmem/kmalloc/hist > /dev/null || \ 47 fail "sym modifier on kmalloc call_site did not work" 48 49 reset_trigger 50 51 echo "Test histogram with sym-offset modifier" 52 53 echo 'hist:keys=call_site.sym-offset' > events/kmem/kmalloc/trigger 54 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 55 grep '{ call_site: \[[0-9a-f][0-9a-f]*\] [_a-zA-Z][_a-zA-Z]*+0x[0-9a-f][0-9a-f]*' events/kmem/kmalloc/hist > /dev/null || \ 56 fail "sym-offset modifier on kmalloc call_site did not work" 57 58 reset_trigger 59 60 echo "Test histogram with sort key" 61 62 echo 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/trigger 63 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 64 65 check_inc() { 66 while [ $# -gt 1 ]; do 67 [ $1 -gt $2 ] && return 1 68 shift 1 69 done 70 return 0 71 } 72 check_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \ 73 events/sched/sched_process_fork/hist | cut -d: -f2 ` || 74 fail "sort param on sched_process_fork did not work" 75 76 exit 0
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.