On Wed, Jul 12, 2023 at 02:49:15PM +0100, Marc Zyngier wrote: > > Given that making VPE resident on the vcpu block path (i.e., in > > kvm_vcpu_halt()) makes little sense (right?) and leads to this sort of > > problem, a crude idea is that we can probably keep track of the > > "nested" vgic_v4_{put,load} calls (instead of a single vpe->resident > > flag) and keep VPE *not resident* on the whole block path (like what we > > had before commit 8e01d9a396e6). And we then rely on > > kvm_vcpu_wfi/vgic_v4_load to actually schedule the VPE on... > > I'm not sure about the nested tracking part, but it's easy enough to > have a vcpu flag indicating that we're in WFI. So an *alternative* to > the current fix would be something like this: Yeah, I like your approach better. I've gone ahead and backed out my change and can take this instead once someone tests it out :) -- Thanks, Oliver