Re: [PATCH] tracing: Use trace_clock_local() for looping in preemptirq_delay_test.c

From: Joel Fernandes
Date: Tue Oct 16 2018 - 16:03:14 EST


On Tue, Oct 16, 2018 at 09:42:04AM -0400, Steven Rostedt wrote:
>
> Joel,
>
> Can you Ack this patch. I want to push it upstream as without it, your
> preemptirq latency test fails on one of my boxes. Causing my automated
> tests to fail (I get by with removing the test from the automation).
>
> -- Steve
>
>
> On Tue, 16 Oct 2018 09:40:05 -0400
> Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> > From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
> >
> > The preemptirq_delay_test module is used for the ftrace selftest code that
> > tests the latency tracers. The problem is that it uses ktime for the delay
> > loop, and then checks the tracer to see if the delay loop is caught, but the
> > tracer uses trace_clock_local() which uses various different other clocks to
> > measure the latency. As ktime uses the clock cycles, and the code then
> > converts that to nanoseconds, it causes rounding errors, and the preemptirq
> > latency tests are failing due to being off by 1 (it expects to see a delay
> > of 500000 us, but the delay is only 499999 us). This is happening due to a
> > rounding error in the ktime (which is totally legit). The purpose of the
> > test is to see if it can catch the delay, not to test the accuracy between
> > trace_clock_local() and ktime_get(). Best to use apples to apples, and have
> > the delay loop use the same clock as the latency tracer does.
> >
> > Cc: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
> > Cc: stable@xxxxxxxxxxxxxxx
> > Fixes: f96e8577da102 ("lib: Add module for testing preemptoff/irqsoff latency tracers")
> > Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>

Looks good to me!

Acked-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>

thanks,

- Joel