Re: [RFC V2 1/2] irq: Add a framework to measure interrupt timings

From: Daniel Lezcano
Date: Thu Jan 21 2016 - 04:26:54 EST


On 01/20/2016 08:07 PM, Peter Zijlstra wrote:
On Wed, Jan 20, 2016 at 05:00:32PM +0100, Daniel Lezcano wrote:
+++ b/kernel/irq/handle.c
@@ -165,6 +165,7 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
/* Fall through to add to randomness */
case IRQ_HANDLED:
flags |= action->flags;
+ handle_irqtiming(irq, action->dev_id);
break;

default:

+++ b/kernel/irq/internals.h

+static inline void handle_irqtiming(unsigned int irq, void *dev_id)
+{
+ if (__irqtimings->handler)
+ __irqtimings->handler(irq, ktime_get(), dev_id);
+}

Here too, ktime_get() is daft.

Also, you really want to take the timestamp _before_ we call the
handlers, not after, otherwise you mix in whatever variance exist in the
handler duration.

Indeed.



--
<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