lkml.org 
[lkml]   [2012]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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,
    > };
    >
    > _
    >



    \
     
     \ /
      Last update: 2012-01-11 12:15    [W:0.022 / U:0.228 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site