On 2019-11-22 18:51, Andre Przywara wrote:
Hi Marc, this is still a bit rough, and only briefly tested, but I wanted to hear your opinion on the general approach (using a second list in addition to the ap_list). Some ugly bits come from the fact that the two lists are not that different, so we have to consider both of them at times. This is what I wanted to avoid with just one list that gets filtered on the fly. Or I am just stupid and don't see how it can be done properly ;-)
I don't know about that, but I think there is a better way. You have essentially two sets of pending interrupts: 1) those that are enabled and group-enabled, that end up in the AP list 2) those that are either disabled and/or group-disabled Today, (2) are not on any list. What I'm suggesting is that we create a list for these interrupts that cannot be forwarded. Then enabling an interrupt or a group is a matter of moving pending interrupts from one list to another. And I think most of the logic can be hidden in vgic_queue_irq_unlock(). M. -- Jazz is not dead. It just smells funny...