Re: [v4.1.10-rt10][PATCH 1/2] genirq: introduce new generic_handle_irq_rt_wa() api

From: Grygorii Strashko
Date: Thu Nov 05 2015 - 11:45:17 EST


Hi Thomas, Sebastian,

On 11/03/2015 10:18 PM, Sebastian Andrzej Siewior wrote:
On 11/03/2015 08:51 PM, Thomas Gleixner wrote:
where MAX_MSI_IRQS = 32 now, but potentially can be increased up to 256.

And you really oversimplified the code above. The reality is:

for (i = 0; i < MAX_MSI_CTRLS: i++) {
u32 status = read_msi_ctrl(i);

for_each_bit(status)
handle_irq();
}

So sure, the worst case here is MAX_MSI_CTRLS * 32, but if all
possible 256 MSI interrupts are pending at the same time, you have
other problems than that.

With threaded interrupts we would have 256 invocations of
wake_up_process() so nothing should take ages.


Thanks a lot for your time and comments - I'll follow your
recommendations and use IRQF_NO_THREAD.

--
regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/