On Fri, 25 Feb 2022 at 23:04, Li RongQing <lirongqing@xxxxxxxxx> wrote: > > When sending a call-function IPI-many to vCPUs, yield to the > IPI target vCPU which is marked as preempted. > > but when emulating HLT, an idling vCPU will be voluntarily > scheduled out and mark as preempted from the guest kernel > perspective. yielding to idle vCPU is pointless and increase > unnecessary vmexit, maybe miss the true preempted vCPU > > so yield to IPI target vCPU only if vCPU is busy and preempted This is not correct, there is an intention to boost the reactivation of idle vCPU, PV sched yield is used in over-subscribe scenario and the pCPU which idle vCPU is resident maybe busy, and the vCPU will wait in the host scheduler run queue. There is a research paper [1] focusing on this boost and showing better performance numbers, though their boost is more unfair. [1]. https://ieeexplore.ieee.org/document/8526900 "Accelerating Idle vCPU Reactivation" Wanpeng