Messages in this thread | | | Date | Wed, 9 Mar 2022 19:47:12 +0100 | Subject | Re: [PATCH v3 4/7] KVM: x86: nSVM: support PAUSE filter threshold and count when cpu_pm=on | From | Paolo Bonzini <> |
| |
On 3/9/22 19:35, Jim Mattson wrote: > I didn't think pause filtering was virtualizable, since the value of > the internal counter isn't exposed on VM-exit. > > On bare metal, for instance, assuming the hypervisor doesn't intercept > CPUID, the following code would quickly trigger a PAUSE #VMEXIT with > the filter count set to 2. > > 1: > pause > cpuid > jmp 1 > > Since L0 intercepts CPUID, however, L2 will exit to L0 on each loop > iteration, and when L0 resumes L2, the internal counter will be set to > 2 again. L1 will never see a PAUSE #VMEXIT. > > How do you handle this? >
I would expect that the same would happen on an SMI or a host interrupt.
1: pause outl al, 0xb2 jmp 1
In general a PAUSE vmexit will mostly benefit the VM that is pausing, so having a partial implementation would be better than disabling it altogether.
Paolo
| |