79 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03# description: test for the preemptirqsoff tracer4# requires: preemptoff:tracer irqsoff:tracer5 6MOD=preemptirq_delay_test7 8fail() {9 reset_tracer10 rmmod $MOD || true11 exit_fail12}13 14unsup() { #msg15 reset_tracer16 rmmod $MOD || true17 echo $118 exit_unsupported19}20 21unres() { #msg22 reset_tracer23 rmmod $MOD || true24 echo $125 exit_unresolved26}27 28modprobe $MOD || unres "$MOD module not available"29rmmod $MOD30 31reset_tracer32 33# Simulate preemptoff section for half a second couple of times34echo preemptoff > current_tracer35sleep 136modprobe $MOD test_mode=preempt delay=500000 || fail37rmmod $MOD || fail38modprobe $MOD test_mode=preempt delay=500000 || fail39rmmod $MOD || fail40modprobe $MOD test_mode=preempt delay=500000 || fail41rmmod $MOD || fail42 43cat trace44 45# Confirm which tracer46grep -q "tracer: preemptoff" trace || fail47 48# Check the end of the section49grep -E -q "5.....us : <stack trace>" trace || fail50 51# Check for 500ms of latency52grep -E -q "latency: 5..... us" trace || fail53 54reset_tracer55 56# Simulate irqsoff section for half a second couple of times57echo irqsoff > current_tracer58sleep 159modprobe $MOD test_mode=irq delay=500000 || fail60rmmod $MOD || fail61modprobe $MOD test_mode=irq delay=500000 || fail62rmmod $MOD || fail63modprobe $MOD test_mode=irq delay=500000 || fail64rmmod $MOD || fail65 66cat trace67 68# Confirm which tracer69grep -q "tracer: irqsoff" trace || fail70 71# Check the end of the section72grep -E -q "5.....us : <stack trace>" trace || fail73 74# Check for 500ms of latency75grep -E -q "latency: 5..... us" trace || fail76 77reset_tracer78exit 079