• Daniel Lezcano's avatar
    genirq: Allow to pass the IRQF_TIMER flag with percpu irq request · c80081b9
    Daniel Lezcano authored
    The irq timings infrastructure tracks when interrupts occur in order to
    statistically predict te next interrupt event.
    
    There is no point to track timer interrupts and try to predict them because
    the next expiration time is already known. This can be avoided via the
    IRQF_TIMER flag which is passed by timer drivers in request_irq(). It marks
    the interrupt as timer based which alloes to ignore these interrupts in the
    timings code.
    
    Per CPU interrupts which are requested via request_percpu_+irq() have no
    flag argument, so marking per cpu timer interrupts is not possible and they
    get tracked pointlessly.
    
    Add __request_percpu_irq() as a variant of request_percpu_irq() with a
    flags argument and make request_percpu_irq() an inline wrapper passing
    flags = 0.
    
    The flag parameter is restricted to IRQF_TIMER as all other IRQF_ flags
    make no sense for per cpu interrupts.
    
    The next step is to convert all existing users of request_percpu_irq() and
    then remove the wrapper and the underscores.
    
    [ tglx: Massaged changelog ]
    Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: peterz@infradead.org
    Cc: nicolas.pitre@linaro.org
    Cc: vincent.guittot@linaro.org
    Cc: rafael@kernel.org
    Link: http://lkml.kernel.org/r/1499344144-3964-1-git-send-email-daniel.lezcano@linaro.org
    c80081b9
manage.c 54.3 KB