[GIT PULL V11] irq: next irq tracking

From: Daniel Lezcano
Date: Tue Jun 20 2017 - 17:27:09 EST


Hi Thomas,

this pull request contains the next irq prediction as posted for V11
[1] which takes into account all the commments. It is based on top of
irq/core.

As previously discussed the code is not enabled by default, hence compiled out.

The first patch adds the IRQF_TIMER flag to the timers which are percpu in
order to discard any timing measurement when the interrupt is coming from a
timer. All the timers changes have been discarded from V10.

The second patch adds a circular buffer and the small routine to store the
local time when an interrupt occurs. The t-uple <irq,timestamp> are encoded
together into a single 64bits as suggested by Nicolas Pitre.

The third patch provides the mathematic to compute the regular intervals. The
rational is in changelog and the math is commented in details in the code.

Thanks.

-- Daniel


The following changes since commit b50fb7c99217922ea36d6e38bae34d84c0587cad:

Merge branch 'linus' into irq/core (2017-06-20 22:08:32 +0200)

are available in the git repository at:

http://git.linaro.org/people/daniel.lezcano/linux.git next-irq/4.13-v11

for you to fetch changes up to eacb5f29a1ec71ee3e43e2729b8a1b5ec51320d5:

irq: Compute the periodic interval for interrupts (2017-06-20 23:14:18 +0200)

----------------------------------------------------------------
Daniel Lezcano (3):
irq: Allow to pass the IRQF_TIMER flag with percpu irq request
irq: Track the interrupt timings
irq: Compute the periodic interval for interrupts

include/linux/interrupt.h | 17 +++++++-
kernel/irq/Kconfig | 3 ++
kernel/irq/Makefile | 1 +
kernel/irq/handle.c | 2 +
kernel/irq/internals.h | 103 +++++++++++++++++++++++++++++++++++++++++++++
kernel/irq/manage.c | 18 +++++---
kernel/irq/timings.c | 366 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 504 insertions(+), 6 deletions(-)
create mode 100644 kernel/irq/timings.c


--

<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog