1130803Smarcel#!/bin/sh
2130803Smarcel# SPDX-License-Identifier: GPL-2.0
3130803Smarcel# description: event tracing - restricts events based on pid
4130803Smarcel# requires: set_event set_event_pid events/sched
5130803Smarcel# flags: instance
6130803Smarcel
7130803Smarceldo_reset() {
8130803Smarcel    echo > set_event
9130803Smarcel    echo > set_event_pid
10130803Smarcel    echo 0 > options/event-fork
11130803Smarcel    clear_trace
12130803Smarcel}
13130803Smarcel
14130803Smarcelfail() { #msg
15130803Smarcel    do_reset
16130803Smarcel    echo $1
17130803Smarcel    exit_fail
18130803Smarcel}
19130803Smarcel
20130803Smarcelecho 0 > options/event-fork
21130803Smarcel
22130803Smarcelecho 1 > events/sched/sched_switch/enable
23130803Smarcel
24130803Smarcelyield
25130803Smarcel
26130803Smarcelcount=`cat trace | grep sched_switch | wc -l`
27130803Smarcelif [ $count -eq 0 ]; then
28130803Smarcel    fail "sched_switch events are not recorded"
29130803Smarcelfi
30130803Smarcel
31130803Smarceldo_reset
32130803Smarcel
33130803Smarcelread mypid rest < /proc/self/stat
34130803Smarcel
35130803Smarcelecho $mypid > set_event_pid
36130803Smarcelgrep -q $mypid set_event_pid
37130803Smarcelecho 'sched:sched_switch' > set_event
38130803Smarcel
39130803Smarcelyield
40130803Smarcel
41130803Smarcelcount=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`
42130803Smarcelif [ $count -ne 0 ]; then
43130803Smarcel    fail "sched_switch events from other task are recorded"
44130803Smarcelfi
45130803Smarcel
46130803Smarceldo_reset
47130803Smarcel
48130803Smarcelecho $mypid > set_event_pid
49130803Smarcelecho 1 > options/event-fork
50130803Smarcelecho 1 > events/sched/sched_switch/enable
51130803Smarcel
52130803Smarcelyield
53130803Smarcel
54130803Smarcelcount=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`
55130803Smarcelif [ $count -eq 0 ]; then
56130803Smarcel    fail "sched_switch events from other task are not recorded"
57130803Smarcelfi
58130803Smarcel
59130803Smarceldo_reset
60130803Smarcel
61130803Smarcelexit 0
62130803Smarcel