Message ID | 20191107160412.30301-1-maz@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | KVM: arm64: Reduce occurence of GICv4 doorbells on non-oversubscribed systems | expand |
On Thu, Nov 07, 2019 at 04:04:10PM +0000, Marc Zyngier wrote: > As I was cleaning up some of the GICv4 code to make way for GICv4.1 it > occured to me that we could drastically reduce the impact of the GICv4 > doorbells on systems that are not oversubscribed (each vcpu "owns" a > physical CPU). > > The technique borrows its logic from the way we disable WFE trapping > when a vcpu is the only process on the CPU run-queue. If this vcpu is > the target of VLPIs, it is then beneficial not to trap blocking WFIs > and to leave the vcpu waiting for interrupts in guest state. > > All we need to do here is to track whether VLPIs are associated to a > vcpu (which is easily done by using a counter that we update on MAPI, > DISCARD and MOVI). > > It has been *very lightly* tested on a D05, and behaved pretty well in > my limited test cases (I get almost no doorbell at all in the non > oversubscribed case, and the usual hailstorm as soon as there is > oversubscription). I'd welcome some testing on more current HW. > Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>