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

irqsoff_tracer.tc (1617B)


      1#!/bin/sh
      2# SPDX-License-Identifier: GPL-2.0
      3# description: test for the preemptirqsoff tracer
      4# requires: preemptoff:tracer irqsoff:tracer
      5
      6MOD=preemptirq_delay_test
      7
      8fail() {
      9    reset_tracer
     10    rmmod $MOD || true
     11    exit_fail
     12}
     13
     14unsup() { #msg
     15    reset_tracer
     16    rmmod $MOD || true
     17    echo $1
     18    exit_unsupported
     19}
     20
     21unres() { #msg
     22    reset_tracer
     23    rmmod $MOD || true
     24    echo $1
     25    exit_unresolved
     26}
     27
     28modprobe $MOD || unres "$MOD module not available"
     29rmmod $MOD
     30
     31reset_tracer
     32
     33# Simulate preemptoff section for half a second couple of times
     34echo preemptoff > current_tracer
     35sleep 1
     36modprobe $MOD test_mode=preempt delay=500000 || fail
     37rmmod $MOD || fail
     38modprobe $MOD test_mode=preempt delay=500000 || fail
     39rmmod $MOD || fail
     40modprobe $MOD test_mode=preempt delay=500000 || fail
     41rmmod $MOD || fail
     42
     43cat trace
     44
     45# Confirm which tracer
     46grep -q "tracer: preemptoff" trace || fail
     47
     48# Check the end of the section
     49egrep -q "5.....us : <stack trace>" trace || fail
     50
     51# Check for 500ms of latency
     52egrep -q "latency: 5..... us" trace || fail
     53
     54reset_tracer
     55
     56# Simulate irqsoff section for half a second couple of times
     57echo irqsoff > current_tracer
     58sleep 1
     59modprobe $MOD test_mode=irq delay=500000 || fail
     60rmmod $MOD || fail
     61modprobe $MOD test_mode=irq delay=500000 || fail
     62rmmod $MOD || fail
     63modprobe $MOD test_mode=irq delay=500000 || fail
     64rmmod $MOD || fail
     65
     66cat trace
     67
     68# Confirm which tracer
     69grep -q "tracer: irqsoff" trace || fail
     70
     71# Check the end of the section
     72egrep -q "5.....us : <stack trace>" trace || fail
     73
     74# Check for 500ms of latency
     75egrep -q "latency: 5..... us" trace || fail
     76
     77reset_tracer
     78exit 0