cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

event-pid.tc (1146B)


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