Messages in this thread | | | Date | Wed, 11 Jan 2012 02:15:11 -0800 | From | Andres Salomon <> | Subject | Re: [PATCH] cs5535-clockevt: allow the MFGPT IRQ to be shared |
| |
Seems fine to me
Acked-by: Andres Salomon <dilinger@queued.net>
On Thu, 22 Dec 2011 17:35:50 +0100 Jens Rottmann <JRottmann@LiPPERTEmbedded.de> wrote:
> cs5535-clockevt: allow the MFGPT IRQ to be shared > > Shared timer IRQs are not a good solution, however the Geode platform > has no APIC, IRQs are a scarce resource and there is no technical > reason to forbid it rightaway. Increased latencies and overhead due > to sharing are still better than a driver refusing to load. > > Signed-off-by: Jens Rottmann <JRottmann@LiPPERTEmbedded.de> > --- > > Hi, > > I tested this a bit longer, this time with MFGPT IRQ actually being > triggered, with cs5535-clockevt driver loaded first or second when > sharing the IRQ, with some CPU load or without. > > I didn't encounter any negative effects of this change. I did have > suspend problems with cs5535-clockevt, but that was in no way > different from before I applied this patch, it's an unrelated BIOS > issue. > > Thomas Gleixner wrote: > > No, you can share a timer irq. The other drivers don't have the > > SHARED flag set because they are on exclusive irq lines, ... > > Is this an ACK? > > > shared irqs suck and you figure that out once you try to > > use that shared timer irq on a preempt-rt enabled kernel. > > Or a NACK? :-| (I did address this in the commit log.) > > The kernel I tested with was 3.2-rc6, CONFIG_SMP=y and > CONFIG_PREEMPT=y. As I said, I didn't notice anything bad happening. > > Thanks and have a nice christmas holiday, > Jens > > --- linux-3.2-rc6/drivers/clocksource/cs5535-clockevt.c > +++ allow_shared_mfgpt_irq/drivers/clocksource/cs5535-clockevt.c > @@ -133,7 +133,7 @@ static irqreturn_t mfgpt_tick(int irq, v > > static struct irqaction mfgptirq = { > .handler = mfgpt_tick, > - .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER, > + .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER | > IRQF_SHARED, .name = DRV_NAME, > }; > > _ >
| |