[PATCH 0/9] genirq/timings: Fixes and selftests

From: Daniel Lezcano
Date: Mon May 13 2019 - 06:31:38 EST

This series provides a couple of fixes, an optimization and the code
to do the selftests.

While writing the selftests, a couple of issues were spotted with
the circular buffer handling and the routine searching for the pattern
multiple times.

In addition, a small optimization has been found while investigating the
bugs above.

In order to write the selftest, the routine needed by the core code and
the tests are wrapped into function which are always inline so the current
code is not impacted by a new function call. There is no functional
changes in this part.

Finally, the selftest uses samples to insert values in the arrays and
use them to predict the next event. These tests cover the most difficult
part of the code.

Daniel Lezcano (9):
genirq/timings: Fix next event index function
genirq/timings: Fix timings buffer inspection
genirq/timings: Optimize the period detection speed
genirq/timings: Use the min kernel macro
genirq/timings: Encapsulate timings push
genirq/timings: Encapsulate storing function
genirq/timings: Add selftest for circular array
genirq/timings: Add selftest for irqs circular buffer
genirq/timings: Add selftest for next event computation

kernel/irq/Makefile | 3 +
kernel/irq/internals.h | 21 +-
kernel/irq/timings.c | 458 +++++++++++++++++++++++++++++++++++++----
lib/Kconfig.debug | 9 +
4 files changed, 446 insertions(+), 45 deletions(-)