On 06/14/2016 08:11 PM, Thomas Gleixner wrote:
On Tue, 14 Jun 2016, Nicolas Pitre wrote:
What about simply this:
void __handle_timings(struct irq_desc *desc)
{
struct irq_timings *timings = this_cpu_ptr(desc->timings);
timings->w_index = (timings->w_index + 1) & IRQ_TIMINGS_MASK;
timings->values[timings->w_index] = local_clock();
}
?
Then you could s/__handle_timings/__record_irq_time/ to better represent
what it does. And both the difference and the summing of squares could
be done upon entering idle instead.
And make it part of the handle_timings() inline to avoid the function call.
Ah yes, nice !
--
<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