Damien Zammit, le dim. 01 oct. 2023 23:26:02 +0000, a ecrit:
> I think the logic for this should be:
> 
> When we get irq N, first we mask irq N, then EOI irq N.
> Then call the handler. If there is a user handler for irq N, let the irq_ack
> unmask irq N, otherwise we need to unmask irq N now.
> But don't EOI in the user handlers anymore.
> 
> What do you think?

That can be a plan, yes, but what about the legacy irqs, and their
in-kernel handlers?  We need to fix them too. One keypoint there is that
we want to unmask with IF cleared, so that we don't get interrupted
again on unmask, but on iret (so we don't nest).

Also, if there is no user handler, I guess we rather want to keep the
irq masked? Otherwise we risk just getting interrupted again -> hang or
cpu waste.

Also, "don't EOI in the user handlers anymore.", isn't that already the
case?

Samuel

Reply via email to