Hi Joel,
On Thu, 21 Jun 2018 15:32:36 -0700 Joel Fernandes joel@joelfernandes.org wrote: [...]
+++ b/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc @@ -0,0 +1,74 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# description: test for the preemptirqsoff tracer
+MOD=test_atomic_sections
+fail() {
- reset_tracer
- rmmod $MOD || true
- exit_fail
+}
+unsup() { #msg
- reset_tracer
- rmmod $MOD || true
- echo $1
- exit_unsupported
+}
+modprobe $MOD || unsup "$MOD module not available" +rmmod $MOD
+grep -q "preemptoff" available_tracers || unsup "preemptoff tracer not enabled" +grep -q "irqsoff" available_tracers || unsup "irqsoff tracer not enabled"
+reset_tracer
+# Simulate preemptoff section for half a second couple of times +echo preemptoff > current_tracer +sleep 1 +modprobe test_atomic_sections atomic_mode=preempt atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=preempt atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=preempt atomic_time=500000 || fail +rmmod test_atomic_sections || fail
Why don't you use $MOD for these operations?
+cat trace
+# Confirm which tracer +grep -q "tracer: preemptoff" trace || fail
+# Check the end of the section +egrep -q "5.....us : <stack trace>" trace || fail
+# Check for 500ms of latency +egrep -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 test_atomic_sections atomic_mode=irq atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=irq atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=irq atomic_time=500000 || fail +rmmod test_atomic_sections || fail
Ditto.
Other parts looks good to me.
Thanks,
+cat trace
+# Confirm which tracer +grep -q "tracer: irqsoff" trace || fail
+# Check the end of the section +egrep -q "5.....us : <stack trace>" trace || fail
+# Check for 500ms of latency +egrep -q "latency: 5..... us" trace || fail
+reset_tracer +exit 0
-- 2.18.0.rc2.346.g013aa6912e-goog