62 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03# description: event tracing - restricts events based on pid4# requires: set_event set_event_pid events/sched5# flags: instance6 7do_reset() {8 echo > set_event9 echo > set_event_pid10 echo 0 > options/event-fork11 clear_trace12}13 14fail() { #msg15 do_reset16 echo $117 exit_fail18}19 20echo 0 > options/event-fork21 22echo 1 > events/sched/sched_switch/enable23 24yield25 26count=`cat trace | grep sched_switch | wc -l`27if [ $count -eq 0 ]; then28 fail "sched_switch events are not recorded"29fi30 31do_reset32 33read mypid rest < /proc/self/stat34 35echo $mypid > set_event_pid36grep -q $mypid set_event_pid37echo 'sched:sched_switch' > set_event38 39yield40 41count=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`42if [ $count -ne 0 ]; then43 fail "sched_switch events from other task are recorded"44fi45 46do_reset47 48echo $mypid > set_event_pid49echo 1 > options/event-fork50echo 1 > events/sched/sched_switch/enable51 52yield53 54count=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`55if [ $count -eq 0 ]; then56 fail "sched_switch events from other task are not recorded"57fi58 59do_reset60 61exit 062