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 modifiers 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 with execname modifier" 12 echo "Test histogram with execname modifier" 13 13 14 echo 'hist:keys=common_pid.execname' > events/ 14 echo 'hist:keys=common_pid.execname' > 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 COMM=`cat /proc/$$/comm` 16 COMM=`cat /proc/$$/comm` 17 grep "common_pid: $COMM" events/sched/sched_pr 17 grep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 18 fail "execname modifier on sched_process_f 18 fail "execname modifier on sched_process_fork did not work" 19 19 20 reset_trigger 20 reset_trigger 21 21 22 echo "Test histogram with hex modifier" 22 echo "Test histogram with hex modifier" 23 23 24 echo 'hist:keys=parent_pid.hex' > events/sched 24 echo 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger 25 for i in `seq 1 10` ; do ( echo "forked" > /de 25 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 26 # Note that $$ is the parent pid. $PID is curr 26 # Note that $$ is the parent pid. $PID is current PID. 27 HEX=`printf %x $PID` 27 HEX=`printf %x $PID` 28 grep "parent_pid: $HEX" events/sched/sched_pro 28 grep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \ 29 fail "hex modifier on sched_process_fork d 29 fail "hex modifier on sched_process_fork did not work" 30 30 31 reset_trigger 31 reset_trigger 32 32 33 echo "Test histogram with syscall modifier" 33 echo "Test histogram with syscall modifier" 34 34 35 echo 'hist:keys=id.syscall' > events/raw_sysca 35 echo 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger 36 for i in `seq 1 10` ; do ( echo "forked" > /de 36 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 37 grep "id: \(unknown_\|sys_\)" events/raw_sysca 37 grep "id: \(unknown_\|sys_\)" events/raw_syscalls/sys_exit/hist > /dev/null || \ 38 fail "syscall modifier on raw_syscalls/sys 38 fail "syscall modifier on raw_syscalls/sys_exit did not work" 39 39 40 40 41 reset_trigger 41 reset_trigger 42 42 43 echo "Test histogram with log2 modifier" 43 echo "Test histogram with log2 modifier" 44 44 45 echo 'hist:keys=bytes_req.log2' > events/kmem/ 45 echo 'hist:keys=bytes_req.log2' > events/kmem/kmalloc/trigger 46 for i in `seq 1 10` ; do ( echo "forked" > /de 46 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 47 grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmall 47 grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \ 48 fail "log2 modifier on kmem/kmalloc did no 48 fail "log2 modifier on kmem/kmalloc did not work" 49 49 50 exit 0 50 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.