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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to