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