Home | History | Annotate | Download | only in trigger
      1 #!/bin/sh
      2 # SPDX-License-Identifier: GPL-2.0
      3 # description: event trigger - test histogram modifiers
      4 # flags: instance
      5 
      6 do_reset() {
      7     reset_trigger
      8     echo > set_event
      9     clear_trace
     10 }
     11 
     12 fail() { #msg
     13     do_reset
     14     echo $1
     15     exit_fail
     16 }
     17 
     18 if [ ! -f set_event -o ! -d events/sched ]; then
     19     echo "event tracing is not supported"
     20     exit_unsupported
     21 fi
     22 
     23 if [ ! -f events/sched/sched_process_fork/trigger ]; then
     24     echo "event trigger is not supported"
     25     exit_unsupported
     26 fi
     27 
     28 if [ ! -f events/sched/sched_process_fork/hist ]; then
     29     echo "hist trigger is not supported"
     30     exit_unsupported
     31 fi
     32 
     33 reset_tracer
     34 do_reset
     35 
     36 echo "Test histogram with execname modifier"
     37 
     38 echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
     39 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
     40 COMM=`cat /proc/$$/comm`
     41 grep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
     42     fail "execname modifier on sched_process_fork did not work"
     43 
     44 reset_trigger
     45 
     46 echo "Test histogram with hex modifier"
     47 
     48 echo 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger
     49 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
     50 # Note that $$ is the parent pid. $PID is current PID.
     51 HEX=`printf %x $PID`
     52 grep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \
     53     fail "hex modifier on sched_process_fork did not work"
     54 
     55 reset_trigger
     56 
     57 echo "Test histogram with syscall modifier"
     58 
     59 echo 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger
     60 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
     61 grep "id: \(unknown_\|sys_\)" events/raw_syscalls/sys_exit/hist > /dev/null || \
     62     fail "syscall modifier on raw_syscalls/sys_exit did not work"
     63 
     64 
     65 reset_trigger
     66 
     67 echo "Test histgram with log2 modifier"
     68 
     69 echo 'hist:keys=bytes_req.log2' > events/kmem/kmalloc/trigger
     70 for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
     71 grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \
     72     fail "log2 modifier on kmem/kmalloc did not work"
     73 
     74 do_reset
     75 
     76 exit 0
     77