0001
0002
0003
0004
0005
0006 MOD=preemptirq_delay_test
0007
0008 fail() {
0009 reset_tracer
0010 rmmod $MOD || true
0011 exit_fail
0012 }
0013
0014 unsup() {
0015 reset_tracer
0016 rmmod $MOD || true
0017 echo $1
0018 exit_unsupported
0019 }
0020
0021 unres() {
0022 reset_tracer
0023 rmmod $MOD || true
0024 echo $1
0025 exit_unresolved
0026 }
0027
0028 modprobe $MOD || unres "$MOD module not available"
0029 rmmod $MOD
0030
0031 reset_tracer
0032
0033
0034 echo preemptoff > current_tracer
0035 sleep 1
0036 modprobe $MOD test_mode=preempt delay=500000 || fail
0037 rmmod $MOD || fail
0038 modprobe $MOD test_mode=preempt delay=500000 || fail
0039 rmmod $MOD || fail
0040 modprobe $MOD test_mode=preempt delay=500000 || fail
0041 rmmod $MOD || fail
0042
0043 cat trace
0044
0045
0046 grep -q "tracer: preemptoff" trace || fail
0047
0048
0049 egrep -q "5.....us : <stack trace>" trace || fail
0050
0051
0052 egrep -q "latency: 5..... us" trace || fail
0053
0054 reset_tracer
0055
0056
0057 echo irqsoff > current_tracer
0058 sleep 1
0059 modprobe $MOD test_mode=irq delay=500000 || fail
0060 rmmod $MOD || fail
0061 modprobe $MOD test_mode=irq delay=500000 || fail
0062 rmmod $MOD || fail
0063 modprobe $MOD test_mode=irq delay=500000 || fail
0064 rmmod $MOD || fail
0065
0066 cat trace
0067
0068
0069 grep -q "tracer: irqsoff" trace || fail
0070
0071
0072 egrep -q "5.....us : <stack trace>" trace || fail
0073
0074
0075 egrep -q "latency: 5..... us" trace || fail
0076
0077 reset_tracer
0078 exit 0