Re: [PATCH v4 22/46] KVM: PPC: Book3S HV P9: Stop handling hcalls in real-mode in the P9 path
From: Nicholas Piggin <npiggin@gmail.com>
Date: 2021-03-24 01:22:58
Excerpts from Fabiano Rosas's message of March 24, 2021 4:03 am:
Nicholas Piggin [off-list ref] writes:quoted
In the interest of minimising the amount of code that is run in "real-mode", don't handle hcalls in real mode in the P9 path. POWER8 and earlier are much more expensive to exit from HV real mode and switch to host mode, because on those processors HV interrupts get to the hypervisor with the MMU off, and the other threads in the core need to be pulled out of the guest, and SLBs all need to be saved, ERATs invalidated, and host SLB reloaded before the MMU is re-enabled in host mode. Hash guests also require a lot of hcalls to run. The XICS interrupt controller requires hcalls to run. By contrast, POWER9 has independent thread switching, and in radix mode the hypervisor is already in a host virtual memory mode when the HV interrupt is taken. Radix + xive guests don't need hcalls to handle interrupts or manage translations. So it's much less important to handle hcalls in real mode in P9. Signed-off-by: Nicholas Piggin <npiggin@gmail.com>I tried this again in the L2 with xive=off and it works as expected now. Tested-by: Fabiano Rosas <redacted>
Oh good, thanks for spotting the problem and re testing. Thanks, Nick