1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun# description: event tracing - restricts events based on pid 4*4882a593Smuzhiyun# requires: set_event set_event_pid events/sched 5*4882a593Smuzhiyun# flags: instance 6*4882a593Smuzhiyun 7*4882a593Smuzhiyundo_reset() { 8*4882a593Smuzhiyun echo > set_event 9*4882a593Smuzhiyun echo > set_event_pid 10*4882a593Smuzhiyun echo 0 > options/event-fork 11*4882a593Smuzhiyun clear_trace 12*4882a593Smuzhiyun} 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunfail() { #msg 15*4882a593Smuzhiyun do_reset 16*4882a593Smuzhiyun echo $1 17*4882a593Smuzhiyun exit_fail 18*4882a593Smuzhiyun} 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunecho 0 > options/event-fork 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunecho 1 > events/sched/sched_switch/enable 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunyield 25*4882a593Smuzhiyun 26*4882a593Smuzhiyuncount=`cat trace | grep sched_switch | wc -l` 27*4882a593Smuzhiyunif [ $count -eq 0 ]; then 28*4882a593Smuzhiyun fail "sched_switch events are not recorded" 29*4882a593Smuzhiyunfi 30*4882a593Smuzhiyun 31*4882a593Smuzhiyundo_reset 32*4882a593Smuzhiyun 33*4882a593Smuzhiyunread mypid rest < /proc/self/stat 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunecho $mypid > set_event_pid 36*4882a593Smuzhiyungrep -q $mypid set_event_pid 37*4882a593Smuzhiyunecho 'sched:sched_switch' > set_event 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunyield 40*4882a593Smuzhiyun 41*4882a593Smuzhiyuncount=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l` 42*4882a593Smuzhiyunif [ $count -ne 0 ]; then 43*4882a593Smuzhiyun fail "sched_switch events from other task are recorded" 44*4882a593Smuzhiyunfi 45*4882a593Smuzhiyun 46*4882a593Smuzhiyundo_reset 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunecho $mypid > set_event_pid 49*4882a593Smuzhiyunecho 1 > options/event-fork 50*4882a593Smuzhiyunecho 1 > events/sched/sched_switch/enable 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunyield 53*4882a593Smuzhiyun 54*4882a593Smuzhiyuncount=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l` 55*4882a593Smuzhiyunif [ $count -eq 0 ]; then 56*4882a593Smuzhiyun fail "sched_switch events from other task are not recorded" 57*4882a593Smuzhiyunfi 58*4882a593Smuzhiyun 59*4882a593Smuzhiyundo_reset 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunexit 0 62