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/