On Mon, Apr 24, 2017 at 04:01:31PM +0200, Daniel Lezcano wrote: > In the next changes, we track when the interrupts occur in order to > statistically compute when is supposed to happen the next interrupt. > > In all the interruptions, it does not make sense to store the timer interrupt > occurences and try to predict the next interrupt as when know the expiration > time. > > The request_irq() has a irq flags parameter and the timer drivers use it to > pass the IRQF_TIMER flag, letting us know the interrupt is coming from a timer. > Based on this flag, we can discard these interrupts when tracking them. > > But, the API request_percpu_irq does not allow to pass a flag, hence specifying > if the interrupt type is a timer. > > Add a function request_percpu_irq_flags() where we can specify the flags. The > request_percpu_irq() function is changed to be a wrapper to > request_percpu_irq_flags() passing a zero flag parameter. > > Change the timers using request_percpu_irq() to use request_percpu_irq_flags() > instead with the IRQF_TIMER flag set. > > For now, in order to prevent a misusage of this parameter, only the IRQF_TIMER > flag (or zero) is a valid parameter to be passed to the > request_percpu_irq_flags() function. > > Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org> > Cc: Mark Rutland <mark.rutland at arm.com> > Cc: Vineet Gupta <vgupta at synopsys.com> > Cc: Marc Zyngier <marc.zyngier at arm.com> > Cc: Patrice Chotard <patrice.chotard at st.com> > Cc: Kukjin Kim <kgene at kernel.org> > Cc: Krzysztof Kozlowski <krzk at kernel.org> > Cc: Javier Martinez Canillas <javier at osg.samsung.com> > Cc: Christoffer Dall <christoffer.dall at linaro.org> > Cc: Paolo Bonzini <pbonzini at redhat.com> > Cc: Radim Kr?m?? <rkrcmar at redhat.com> > > --- > Changelog: > > V9: > - Clarified the patch description > - Fixed EXPORT_SYMBOL_GPL(request_percpu_irq_flags) > --- > arch/arm/kernel/smp_twd.c | 3 ++- > drivers/clocksource/arc_timer.c | 4 ++-- > drivers/clocksource/arm_arch_timer.c | 20 ++++++++++++-------- > drivers/clocksource/arm_global_timer.c | 4 ++-- > drivers/clocksource/exynos_mct.c | 7 ++++--- > drivers/clocksource/qcom-timer.c | 4 ++-- > drivers/clocksource/time-armada-370-xp.c | 9 +++++---- > drivers/clocksource/timer-nps.c | 6 +++--- > include/linux/interrupt.h | 11 ++++++++++- > kernel/irq/manage.c | 15 ++++++++++----- > virt/kvm/arm/arch_timer.c | 5 +++-- > 11 files changed, 55 insertions(+), 33 deletions(-) > For exynos-mct: Acked-by: Krzysztof Kozlowski <krzk at kernel.org> Best regards, Krzysztof