Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-06 Thread Joel Fernandes
Hi Steve, On Fri, Oct 6, 2017 at 6:38 AM, Steven Rostedt wrote: > On Fri, 6 Oct 2017 00:28:21 -0700 > Joel Fernandes wrote: > > >> Oh ok. So I traced this down to the original patch that added >> time_hardirqs_off to lockdep. I *think* it was added just to keep the >> irqsoff tracer working whil

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-06 Thread Steven Rostedt
On Fri, 6 Oct 2017 00:28:21 -0700 Joel Fernandes wrote: > Oh ok. So I traced this down to the original patch that added > time_hardirqs_off to lockdep. I *think* it was added just to keep the > irqsoff tracer working while lockdep is enabled, so that both lockdep > and the tracer would work at

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-06 Thread Joel Fernandes
Hi Peter, On 10/04/2017 09:43 AM, Joel Fernandes wrote: [..] >>> + */ >>> +static DEFINE_PER_CPU(int, tracing_irq_cpu); >>> + >>> #if defined(CONFIG_TRACE_IRQFLAGS) && !defined(CONFIG_PROVE_LOCKING) >>> void trace_hardirqs_on(void) >>> { >>> + if (!this_cpu_read(tracing_irq_cpu)) >>> +

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-06 Thread Joel Fernandes
Hi Peter, On Fri, Oct 6, 2017 at 12:07 AM, Peter Zijlstra wrote: > On Thu, Oct 05, 2017 at 04:28:10PM -0700, Joel Fernandes wrote: >> > lockdep implements the trace_hardirq_*() in terms of *_caller(). Would >> > that make sense here? >> >> In lockdep code, when trace_hardirqs_off is called, >> tr

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-06 Thread Peter Zijlstra
On Thu, Oct 05, 2017 at 04:28:10PM -0700, Joel Fernandes wrote: > > lockdep implements the trace_hardirq_*() in terms of *_caller(). Would > > that make sense here? > > In lockdep code, when trace_hardirqs_off is called, > trace_hardirqs_off_caller would pass CALLER_ADDR0 as > trace_hardirqs_off.

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-05 Thread Joel Fernandes
On Thu, Oct 5, 2017 at 4:28 PM, Joel Fernandes wrote: > Hi Peter, > > On Wed, Oct 4, 2017 at 9:01 AM, Peter Zijlstra wrote: >> On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: [...] >>> EXPORT_SYMBOL(trace_hardirqs_off); >>> >>> __visible void trace_hardirqs_on_caller(unsigned lo

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-05 Thread Joel Fernandes
Hi Peter, On Wed, Oct 4, 2017 at 9:01 AM, Peter Zijlstra wrote: > On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: [...] >> + */ >> +static DEFINE_PER_CPU(int, tracing_irq_cpu); >> + >> #if defined(CONFIG_TRACE_IRQFLAGS) && !defined(CONFIG_PROVE_LOCKING) >> void trace_hardirqs_on

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Joel Fernandes
On Wed, Oct 4, 2017 at 10:03 AM, Steven Rostedt wrote: > On Wed, 4 Oct 2017 09:56:33 -0700 > Joel Fernandes wrote: > >> > I don't see the protection in the patches. I will definitely test that >> > before pushing it anywhere. >> >> The protection added by CONFIG_PROVE_LOCKING was already there be

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Steven Rostedt
On Wed, 4 Oct 2017 09:56:33 -0700 Joel Fernandes wrote: > > I don't see the protection in the patches. I will definitely test that > > before pushing it anywhere. > > The protection added by CONFIG_PROVE_LOCKING was already there before > my patches. I just moved the code around in patch 1/2,

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Joel Fernandes
Hi Steven, On Wed, Oct 4, 2017 at 9:44 AM, Steven Rostedt wrote: > On Wed, 4 Oct 2017 18:04:34 +0200 > Peter Zijlstra wrote: > >> On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: >> > +++ b/kernel/trace/trace_irqsoff.c >> >> > EXPORT_SYMBOL(trace_hardirqs_on); >> > EXPORT_SYMBOL

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Steven Rostedt
On Wed, 4 Oct 2017 18:04:34 +0200 Peter Zijlstra wrote: > On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: > > +++ b/kernel/trace/trace_irqsoff.c > > > EXPORT_SYMBOL(trace_hardirqs_on); > > EXPORT_SYMBOL(trace_hardirqs_off); > > EXPORT_SYMBOL(trace_hardirqs_on_caller); > > E

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Joel Fernandes
Hi Peter, On Wed, Oct 4, 2017 at 9:01 AM, Peter Zijlstra wrote: > On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: >> diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c >> index 0e3033c00474..515ac851841a 100644 >> --- a/kernel/trace/trace_irqsoff.c >> +++ b/k

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Joel Fernandes
Hi Peter, On Wed, Oct 4, 2017 at 9:04 AM, Peter Zijlstra wrote: > On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: >> +++ b/kernel/trace/trace_irqsoff.c > >> EXPORT_SYMBOL(trace_hardirqs_on); >> EXPORT_SYMBOL(trace_hardirqs_off); >> EXPORT_SYMBOL(trace_hardirqs_on_caller); >> E

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Peter Zijlstra
On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: > +++ b/kernel/trace/trace_irqsoff.c > EXPORT_SYMBOL(trace_hardirqs_on); > EXPORT_SYMBOL(trace_hardirqs_off); > EXPORT_SYMBOL(trace_hardirqs_on_caller); > EXPORT_SYMBOL(trace_hardirqs_off_caller); Steve, how does this compiler wi

Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-10-04 Thread Peter Zijlstra
On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote: > diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c > index 0e3033c00474..515ac851841a 100644 > --- a/kernel/trace/trace_irqsoff.c > +++ b/kernel/trace/trace_irqsoff.c > @@ -16,6 +16,9 @@ > > #include "trace.h

[PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

2017-09-29 Thread Joel Fernandes
Preempt and irq trace events can be used for tracing the start and end of an atomic section which can be used by a trace viewer like systrace to graphically view the start and end of an atomic section and correlate them with latencies and scheduling issues. This also serves as a prelude to using s