Hi Joel, 55ty jmnOn Thu, 17 May 2018 18:54:21 -0700 "Joel Fernandes (Google)" <j...@joelfernandes.org> wrote:
> Here we add unit tests for the preemptoff and irqsoff tracer by using a > kernel module introduced previously to trigger atomic sections in the > kernel. > > Cc: Steven Rostedt <rost...@goodmis.org> > Cc: Peter Zilstra <pet...@infradead.org> > Cc: Ingo Molnar <mi...@redhat.com> > Cc: Mathieu Desnoyers <mathieu.desnoy...@efficios.com> > Cc: Tom Zanussi <tom.zanu...@linux.intel.com> > Cc: Namhyung Kim <namhy...@kernel.org> > Cc: Thomas Glexiner <t...@linutronix.de> > Cc: Boqun Feng <boqun.f...@gmail.com> > Cc: Paul McKenney <paul...@linux.vnet.ibm.com> > Cc: Masami Hiramatsu <mhira...@kernel.org> > Cc: Todd Kjos <tk...@google.com> > Cc: Erick Reyes <erickre...@google.com> > Cc: Julia Cartwright <ju...@ni.com> > Cc: kernel-t...@android.com > Signed-off-by: Joel Fernandes (Google) <j...@joelfernandes.org> > --- > tools/testing/selftests/ftrace/config | 3 + > .../test.d/preemptirq/irqsoff_tracer.tc | 74 +++++++++++++++++++ > 2 files changed, 77 insertions(+) > create mode 100644 > tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc > > diff --git a/tools/testing/selftests/ftrace/config > b/tools/testing/selftests/ftrace/config > index b01924c71c09..29588b328345 100644 > --- a/tools/testing/selftests/ftrace/config > +++ b/tools/testing/selftests/ftrace/config > @@ -4,3 +4,6 @@ CONFIG_FUNCTION_PROFILER=y > CONFIG_TRACER_SNAPSHOT=y > CONFIG_STACK_TRACER=y > CONFIG_HIST_TRIGGERS=y > +CONFIG_PREEMPT_TRACER=y > +CONFIG_IRQSOFF_TRACER=y > +CONFIG_TEST_ATOMIC_SECTIONS=m > diff --git > a/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc > b/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc > new file mode 100644 > index 000000000000..b76d781c5645 > --- /dev/null > +++ 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 "preemptoff" available_tracers || unsup "preemptoff tracer not enabled" > +grep "irqsoff" available_tracers || unsup "irqsoff tracer not enabled" Could you pass "-q" for all grep command in this script if it just for checking the pattern exists? Thank you, > + > +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 > + > +cat trace > + > +# Confirm which tracer > +grep "tracer: preemptoff" trace || fail > + > +# Check the end of the section > +egrep "5.....us : <stack trace>" trace || fail > + > +# Check for 500ms of latency > +egrep "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 > + > +cat trace > + > +# Confirm which tracer > +grep "tracer: irqsoff" trace || fail > + > +# Check the end of the section > +egrep "5.....us : <stack trace>" trace || fail > + > +# Check for 500ms of latency > +egrep "latency: 5..... us" trace || fail > + > +reset_tracer > +exit 0 > + > -- > 2.17.0.441.gb46fe60e1d-goog > -- Masami Hiramatsu <mhira...@kernel.org>