linux/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc
Tiezhu Yang b868a02e37 selftests: ftrace: Use "grep -E" instead of "egrep"
The latest version of grep claims the egrep is now obsolete so the build
now contains warnings that look like:
	egrep: warning: egrep is obsolescent; using grep -E
fix this up by moving the related file to use "grep -E" instead.

  sed -i "s/egrep/grep -E/g" `grep egrep -rwl tools/testing/selftests/ftrace`

Here are the steps to install the latest grep:

  wget http://ftp.gnu.org/gnu/grep/grep-3.8.tar.gz
  tar xf grep-3.8.tar.gz
  cd grep-3.8 && ./configure && make
  sudo make install
  export PATH=/usr/local/bin:$PATH

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2022-11-25 10:57:32 -07:00

78 lines
1.6 KiB
Bash

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: test for the preemptirqsoff tracer
# requires: preemptoff:tracer irqsoff:tracer
MOD=preemptirq_delay_test
fail() {
reset_tracer
rmmod $MOD || true
exit_fail
}
unsup() { #msg
reset_tracer
rmmod $MOD || true
echo $1
exit_unsupported
}
unres() { #msg
reset_tracer
rmmod $MOD || true
echo $1
exit_unresolved
}
modprobe $MOD || unres "$MOD module not available"
rmmod $MOD
reset_tracer
# Simulate preemptoff section for half a second couple of times
echo preemptoff > current_tracer
sleep 1
modprobe $MOD test_mode=preempt delay=500000 || fail
rmmod $MOD || fail
modprobe $MOD test_mode=preempt delay=500000 || fail
rmmod $MOD || fail
modprobe $MOD test_mode=preempt delay=500000 || fail
rmmod $MOD || fail
cat trace
# Confirm which tracer
grep -q "tracer: preemptoff" trace || fail
# Check the end of the section
grep -E -q "5.....us : <stack trace>" trace || fail
# Check for 500ms of latency
grep -E -q "latency: 5..... us" trace || fail
reset_tracer
# Simulate irqsoff section for half a second couple of times
echo irqsoff > current_tracer
sleep 1
modprobe $MOD test_mode=irq delay=500000 || fail
rmmod $MOD || fail
modprobe $MOD test_mode=irq delay=500000 || fail
rmmod $MOD || fail
modprobe $MOD test_mode=irq delay=500000 || fail
rmmod $MOD || fail
cat trace
# Confirm which tracer
grep -q "tracer: irqsoff" trace || fail
# Check the end of the section
grep -E -q "5.....us : <stack trace>" trace || fail
# Check for 500ms of latency
grep -E -q "latency: 5..... us" trace || fail
reset_tracer
exit 0