1 #!/bin/sh 1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 2 # SPDX-License-Identifier: GPL-2.0 3 # description: event trigger - test histogram 3 # description: event trigger - test histogram trigger 4 # requires: set_event events/sched/sched_proce 4 # requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist 5 # flags: instance 5 # flags: instance 6 6 7 fail() { #msg 7 fail() { #msg 8 echo $1 8 echo $1 9 exit_fail 9 exit_fail 10 } 10 } 11 11 12 echo "Test histogram basic trigger" 12 echo "Test histogram basic trigger" 13 13 14 echo 'hist:keys=parent_pid:vals=child_pid' > e 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" > /de 15 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 16 grep parent_pid events/sched/sched_process_for 16 grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ 17 fail "hist trigger on sched_process_fork d 17 fail "hist trigger on sched_process_fork did not work" 18 grep child events/sched/sched_process_fork/his 18 grep child events/sched/sched_process_fork/hist > /dev/null || \ 19 fail "hist trigger on sched_process_fork d 19 fail "hist trigger on sched_process_fork did not work" 20 20 21 reset_trigger 21 reset_trigger 22 22 23 echo "Test histogram with compound keys" 23 echo "Test histogram with compound keys" 24 24 25 echo 'hist:keys=parent_pid,child_pid' > events 25 echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger 26 for i in `seq 1 10` ; do ( echo "forked" > /de 26 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 27 grep '^{ parent_pid:.*, child_pid:.*}' events/ 27 grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \ 28 fail "compound keys on sched_process_fork 28 fail "compound keys on sched_process_fork did not work" 29 29 30 reset_trigger 30 reset_trigger 31 31 32 echo "Test histogram with string key" 32 echo "Test histogram with string key" 33 33 34 echo 'hist:keys=parent_comm' > events/sched/sc 34 echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger 35 for i in `seq 1 10` ; do ( echo "forked" > /de 35 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 36 COMM=`cat /proc/$$/comm` 36 COMM=`cat /proc/$$/comm` 37 grep "parent_comm: $COMM" events/sched/sched_p 37 grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 38 fail "string key on sched_process_fork did 38 fail "string key on sched_process_fork did not work" 39 39 40 reset_trigger 40 reset_trigger 41 41 42 echo "Test histogram with sym modifier" 42 echo "Test histogram with sym modifier" 43 43 44 echo 'hist:keys=call_site.sym' > events/kmem/k 44 echo 'hist:keys=call_site.sym' > events/kmem/kmalloc/trigger 45 for i in `seq 1 10` ; do ( echo "forked" > /de 45 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 46 grep '{ call_site: \[[0-9a-f][0-9a-f]*\] [_a-z 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 di 47 fail "sym modifier on kmalloc call_site did not work" 48 48 49 reset_trigger 49 reset_trigger 50 50 51 echo "Test histogram with sym-offset modifier" 51 echo "Test histogram with sym-offset modifier" 52 52 53 echo 'hist:keys=call_site.sym-offset' > events 53 echo 'hist:keys=call_site.sym-offset' > events/kmem/kmalloc/trigger 54 for i in `seq 1 10` ; do ( echo "forked" > /de 54 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 55 grep '{ call_site: \[[0-9a-f][0-9a-f]*\] [_a-z 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_ 56 fail "sym-offset modifier on kmalloc call_site did not work" 57 57 58 reset_trigger 58 reset_trigger 59 59 60 echo "Test histogram with sort key" 60 echo "Test histogram with sort key" 61 61 62 echo 'hist:keys=parent_pid,child_pid:sort=chil 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" > /de 63 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 64 64 65 check_inc() { 65 check_inc() { 66 while [ $# -gt 1 ]; do 66 while [ $# -gt 1 ]; do 67 [ $1 -gt $2 ] && return 1 67 [ $1 -gt $2 ] && return 1 68 shift 1 68 shift 1 69 done 69 done 70 return 0 70 return 0 71 } 71 } 72 check_inc `grep -o "child_pid:[[:space:]]*[[:d 72 check_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \ 73 events/sched/sched_process_fork/hist | cut 73 events/sched/sched_process_fork/hist | cut -d: -f2 ` || 74 fail "sort param on sched_process_fork did 74 fail "sort param on sched_process_fork did not work" 75 75 76 exit 0 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.