On Mon, 20 Nov 2023, Mihai Carabas wrote:
cpu_relax on ARM64 does a simple "yield". Thus we replace it with smp_cond_load_relaxed which basically does a "wfe".
Well it clears events first (which requires the first WFE) and then does a WFE waiting for any events if no events were pending.
WFE does not cause a VMEXIT? Or does the inner loop of smp_cond_load_relaxed now do 2x VMEXITS?
KVM ARM64 code seems to indicate that WFE causes a VMEXIT. See kvm_handle_wfx().