On Tue, 1 Feb 2022 at 20:11, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 1/25/22 13:08, Wanpeng Li wrote: > > As commit 0c5f81dad46 (KVM: LAPIC: Inject timer interrupt via posted interrupt) > > mentioned that the host admin should well tune the guest setup, so that vCPUs > > are placed on isolated pCPUs, and with several pCPUs surplus for*busy* housekeeping. > > It is better to disable mwait/hlt/pause vmexits to keep the vCPUs in non-root > > mode. However, we may isolate pCPUs for other purpose like DPDK or we can make > > some guests isolated and others not, we may lose vmx preemption timer/timer fastpath > > due to not well tuned setup, and the checking in kvm_can_post_timer_interrupt() > > is not enough. Let's guarantee mwait/hlt is advertised before enabling posted-interrupt > > interrupt. vmx preemption timer/timer fastpath can continue to work if both of them > > are not advertised. > > Is this the same thing that you meant? > > -------- > As commit 0c5f81dad46 ("KVM: LAPIC: Inject timer interrupt via posted interrupt") > mentioned that the host admin should well tune the guest setup, so that vCPUs > are placed on isolated pCPUs, and with several pCPUs surplus for *busy* housekeeping. > In this setup, it is preferrable to disable mwait/hlt/pause vmexits to > keep the vCPUs in non-root mode. > > However, if only some guests isolated and others not, they would not have > any benefit from posted timer interrupts, and at the same time lose > VMX preemption timer fast paths because kvm_can_post_timer_interrupt() > returns true and therefore forces kvm_can_use_hv_timer() to false. > > By guaranteeing that posted-interrupt timer is only used if MWAIT or HLT > are done without vmexit, KVM can make a better choice and use the > VMX preemption timer and the corresponding fast paths. > -------- Looks better, thanks Paolo! :) Wanpeng