On Tue, 27 May 2014 22:11:25 +0200
Arnd Bergmann <a...@arndb.de> wrote:

> On Tuesday 27 May 2014 13:08:04 Stephen Boyd wrote:
> > @@ -380,7 +382,7 @@ start_critical_timing(unsigned long ip, unsigned long 
> > parent_ip)
> >  
> >         cpu = raw_smp_processor_id();
> >  
> > -       if (per_cpu(tracing_cpu, cpu))
> > +       if (per_cpu(timings_stopped, cpu) || per_cpu(tracing_cpu, cpu))
> >                 return;
> >  
> >         data = per_cpu_ptr(tr->trace_buffer.data, cpu);
> > 
> 
> Where exactly do you see other code calling here while
> per_cpu(timings_stopped) is set? Would it be possible to just
> change that call site?

Arnd brings up a good point. If we disable irqs off tracing completely,
we may be missing places in the idle path that disable interrupts for
long periods of time. We may want to move the stop down further.

The way it works (IIRC), and why tracing can start again is that it can
nest. Perhaps we need to stop it further down if we can't move it
completely.

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to