Messages in this thread | | | Date | Sat, 19 May 2018 00:32:41 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH 2/2] kselftests: ftrace: Add tests for the preemptoff and irqsoff tracers |
| |
Hi Joel,
55ty jmnOn Thu, 17 May 2018 18:54:21 -0700 "Joel Fernandes (Google)" <joel@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 <rostedt@goodmis.org> > Cc: Peter Zilstra <peterz@infradead.org> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> > Cc: Tom Zanussi <tom.zanussi@linux.intel.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Thomas Glexiner <tglx@linutronix.de> > Cc: Boqun Feng <boqun.feng@gmail.com> > Cc: Paul McKenney <paulmck@linux.vnet.ibm.com> > Cc: Masami Hiramatsu <mhiramat@kernel.org> > Cc: Todd Kjos <tkjos@google.com> > Cc: Erick Reyes <erickreyes@google.com> > Cc: Julia Cartwright <julia@ni.com> > Cc: kernel-team@android.com > Signed-off-by: Joel Fernandes (Google) <joel@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 <mhiramat@kernel.org>
| |