Prev: [PATCH] added S6E63M0 AMOLED LCD Panel driver.
Next: cputimers/proc: do_task_stat()->task_times() can race with getrusage()
From: David Miller on 25 Mar 2010 23:40 From: Thomas Gleixner <tglx(a)linutronix.de> Date: Fri, 26 Mar 2010 00:06:44 -0000 > The following patch series removes the IRQF_DISABLED functionality > from the core interrupt code and runs all interrupt handlers with > interrupts disabled. > > IRQF_DISABLED is kept as a define and scheduled for feature removal. > > I booted and stressed that patches w/o any obvious fallout on more > than 20 different systems in my arsenal of test machines which > includes various embedded non x86 systems. > > To debug eventual latency issues we (admittedly I talked acme into > looking at that) want to extend perf with a top like tool to monitor > the maximum runtime of interrupt handlers with the already existing > tracepoints. Acked-by: David S. Miller <davem(a)davemloft.net> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Ingo Molnar on 26 Mar 2010 05:30 * Russell King <rmk(a)arm.linux.org.uk> wrote: > On Fri, Mar 26, 2010 at 12:06:44AM -0000, Thomas Gleixner wrote: > > The following patch series removes the IRQF_DISABLED functionality > > from the core interrupt code and runs all interrupt handlers with > > interrupts disabled. > > As was covered in previous discussions, what about drivers such as SMC91x > which take a long time to retrieve packets from the hardware? Always running > handlers with IRQs disabled will kill things such as serial on these > platforms. As long as it's rare (which it is) i dont see a problem: you can enable interrupts in the handler by using local_irq_enable(), like the IDE PIO drivers do. That way it's documented a bit better as well, because it shows the precise source of the latency, with a big comment explaining it, etc. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Peter Zijlstra on 26 Mar 2010 05:30 On Fri, 2010-03-26 at 10:20 +0100, Ingo Molnar wrote: > * Russell King <rmk(a)arm.linux.org.uk> wrote: > > > On Fri, Mar 26, 2010 at 12:06:44AM -0000, Thomas Gleixner wrote: > > > The following patch series removes the IRQF_DISABLED functionality > > > from the core interrupt code and runs all interrupt handlers with > > > interrupts disabled. > > > > As was covered in previous discussions, what about drivers such as SMC91x > > which take a long time to retrieve packets from the hardware? Always running > > handlers with IRQs disabled will kill things such as serial on these > > platforms. > > As long as it's rare (which it is) i dont see a problem: you can enable > interrupts in the handler by using local_irq_enable(), like the IDE PIO > drivers do. That way it's documented a bit better as well, because it shows > the precise source of the latency, with a big comment explaining it, etc. Or alternatively, use threaded interrupts for such slow hardware. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Alan Cox on 26 Mar 2010 06:00 > As long as it's rare (which it is) i dont see a problem: you can enable > interrupts in the handler by using local_irq_enable(), like the IDE PIO > drivers do. That way it's documented a bit better as well, because it shows > the precise source of the latency, with a big comment explaining it, etc. I don't think it's as rare as you think particularly in embedded, and the moment you start explicitly using local_irq_enable() you've simply moved the underlying problem back and made it far harder to grep for. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Peter Zijlstra on 26 Mar 2010 06:10
On Fri, 2010-03-26 at 09:59 +0000, Alan Cox wrote: > > As long as it's rare (which it is) i dont see a problem: you can enable > > interrupts in the handler by using local_irq_enable(), like the IDE PIO > > drivers do. That way it's documented a bit better as well, because it shows > > the precise source of the latency, with a big comment explaining it, etc. > > I don't think it's as rare as you think particularly in embedded, and the > moment you start explicitly using local_irq_enable() you've simply moved > the underlying problem back and made it far harder to grep for. We've got local_irq_enable_in_hardirq() which should be used and can easily be grep'ed for. But yes, I would much prefer to simply convert these known slow handlers to threaded interrupts. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |