[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] gic: drop interrupts enabling on interrupts processing



Hello Julien,

On 31.05.19 20:11, Julien Grall wrote:

Here my take on the commit message:

gic_interrupt() was implemented using a loop to limit the cost of the trap if 
there are multiple interrupts pending.

At the moment, interrupts are unmasked by gic_interrupt() before calling do_{IRQ, 
LPI}(). In the case of handling an interrupt routed to guests, its priority will be 
dropped, via desc->handler->end() called from do_irq(), with interrupt unmasked.

In other words:
     - Until the priority is dropped, only higher priority interrupt can be 
received. Today, only Xen interrupts have higher priority.
     - As soon as priority is dropped, any interrupt can be received.

This means the purpose of the loop in gic_interrupt() is defeated as all 
interrupts may get trapped earlier. To reinstate the purpose of the loop (and 
prevent the trap), interrupts should be masked when dropping the priority.

For interrupts routed to Xen, priority will always be dropped with interrupts 
masked. So the issue is not present. However, it means that we are pointless 
try to mask the interrupts.

To avoid conflicting behavior between interrupt handling, gic_interrupt() is 
now keeping interrupts masked and defer the decision to do_{LPI, IRQ}.

It is OK with me.

Are you waiting from me more of

[ Details to be added once you give more ground ]

?

--
Sincerely,
Andrii Anisov.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.