On Mon, Feb 10, 2014 at 08:45:16AM -0800, Dave Hansen wrote: > On 02/10/2014 05:29 AM, tip-bot for Peter Zijlstra wrote: > > x86/nmi: Push duration printk() to irq context > > > > Calling printk() from NMI context is bad (TM), so move it to IRQ > > context. > > Bad since the I/O device that we're doing it to may be slow and make the > NMI painfully long? > > I can see why it might be a bad idea, but I'm unsold that it is > *universally* a bad idea. printk() takes locks, NMI interrupts printk lock and tries to printk. you get to keep pieces. > > In doing so we slightly change (probably wreck) the debugfs > > nmi_longest_ns thingy, in that it doesn't update to reflect the > > longest, nor does writing to it reset the count. > > The reason I coded this up was that NMIs were firing off so fast that > nothing else was getting a chance to run. With this patch, at least the > printk() would come out and I'd have some idea what was going on. Ah indeed, in which case you don't get to run the irq_work. But you really shouldn't do printk() from NMI and esp. not in a case that regularly and reliably triggers for everyone and is not a hardware error. -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |