162306a36Sopenharmony_ci#!/bin/sh 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci# description: event tracing - restricts events based on pid 462306a36Sopenharmony_ci# requires: set_event set_event_pid events/sched 562306a36Sopenharmony_ci# flags: instance 662306a36Sopenharmony_ci 762306a36Sopenharmony_cido_reset() { 862306a36Sopenharmony_ci echo > set_event 962306a36Sopenharmony_ci echo > set_event_pid 1062306a36Sopenharmony_ci echo 0 > options/event-fork 1162306a36Sopenharmony_ci clear_trace 1262306a36Sopenharmony_ci} 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cifail() { #msg 1562306a36Sopenharmony_ci do_reset 1662306a36Sopenharmony_ci echo $1 1762306a36Sopenharmony_ci exit_fail 1862306a36Sopenharmony_ci} 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciecho 0 > options/event-fork 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciecho 1 > events/sched/sched_switch/enable 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciyield 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cicount=`cat trace | grep sched_switch | wc -l` 2762306a36Sopenharmony_ciif [ $count -eq 0 ]; then 2862306a36Sopenharmony_ci fail "sched_switch events are not recorded" 2962306a36Sopenharmony_cifi 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cido_reset 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciread mypid rest < /proc/self/stat 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciecho $mypid > set_event_pid 3662306a36Sopenharmony_cigrep -q $mypid set_event_pid 3762306a36Sopenharmony_ciecho 'sched:sched_switch' > set_event 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciyield 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cicount=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l` 4262306a36Sopenharmony_ciif [ $count -ne 0 ]; then 4362306a36Sopenharmony_ci fail "sched_switch events from other task are recorded" 4462306a36Sopenharmony_cifi 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_cido_reset 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciecho $mypid > set_event_pid 4962306a36Sopenharmony_ciecho 1 > options/event-fork 5062306a36Sopenharmony_ciecho 1 > events/sched/sched_switch/enable 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciyield 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_cicount=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l` 5562306a36Sopenharmony_ciif [ $count -eq 0 ]; then 5662306a36Sopenharmony_ci fail "sched_switch events from other task are not recorded" 5762306a36Sopenharmony_cifi 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_cido_reset 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciexit 0 62