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-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html