Messages in this thread | | | Date | Fri, 7 Sep 2018 15:45:32 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] printk/tracing: Do not trace printk_nmi_enter() |
| |
On Fri, Sep 07, 2018 at 09:41:48AM -0400, Steven Rostedt wrote: > On Fri, 7 Sep 2018 09:34:48 +0200 > Peter Zijlstra <peterz@infradead.org> wrote: > > > On Wed, Sep 05, 2018 at 09:33:34PM -0400, Steven Rostedt wrote: > > > do_idle { > > > > > > [interrupts enabled] > > > > > > <interrupt> [interrupts disabled] > > > TRACE_IRQS_OFF [lockdep says irqs off] > > > [...] > > > TRACE_IRQS_IRET > > > test if pt_regs say return to interrupts enabled [yes] > > > TRACE_IRQS_ON [lockdep says irqs are on] > > > > > > <nmi> > > > nmi_enter() { > > > printk_nmi_enter() [traced by ftrace] > > > [ hit ftrace breakpoint ] > > > <breakpoint exception> > > > TRACE_IRQS_OFF [lockdep says irqs off] > > > [...] > > > TRACE_IRQS_IRET [return from breakpoint] > > > test if pt_regs say interrupts enabled [no] > > > [iret back to interrupt] > > > [iret back to code] > > > > > > tick_nohz_idle_enter() { > > > > > > lockdep_assert_irqs_enabled() [lockdep say no!] > > > > Isn't the problem that we muck with the IRQ state from NMI context? We > > shouldn't be doing that. > > Not really.
Yes really, we should not muck with the IRQ state from NMI context.
| |