Home | History | Annotate | Download | only in event
      1 #!/bin/sh
      2 # SPDX-License-Identifier: GPL-2.0
      3 # description: event tracing - enable/disable with subsystem level files
      4 # flags: instance
      5 
      6 do_reset() {
      7     echo > set_event
      8     clear_trace
      9 }
     10 
     11 fail() { #msg
     12     do_reset
     13     echo $1
     14     exit_fail
     15 }
     16 
     17 yield() {
     18     ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
     19 }
     20 
     21 if [ ! -f set_event -o ! -d events/sched ]; then
     22     echo "event tracing is not supported"
     23     exit_unsupported
     24 fi
     25 
     26 reset_tracer
     27 do_reset
     28 
     29 echo 'sched:*' > set_event
     30 
     31 yield
     32 
     33 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
     34 if [ $count -lt 3 ]; then
     35     fail "at least fork, exec and exit events should be recorded"
     36 fi
     37 
     38 do_reset
     39 
     40 echo 1 > events/sched/enable
     41 
     42 yield
     43 
     44 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
     45 if [ $count -lt 3 ]; then
     46     fail "at least fork, exec and exit events should be recorded"
     47 fi
     48 
     49 do_reset
     50 
     51 echo 0 > events/sched/enable
     52 
     53 yield
     54 
     55 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
     56 if [ $count -ne 0 ]; then
     57     fail "any of scheduler events should not be recorded"
     58 fi
     59 
     60 do_reset
     61 
     62 exit 0
     63