Re: [PATCH v2 0/2] INVD intercept change to skip instruction
On 24/09/20 23:20, Jim Mattson wrote: > On Thu, Sep 24, 2020 at 11:42 AM Tom Lendacky wrote: >> >> From: Tom Lendacky >> >> This series updates the INVD intercept support for both SVM and VMX to >> skip the instruction rather than emulating it, since emulation of this >> instruction is just a NOP. > > Isn't INVD a serializing instruction, whereas NOP isn't? IIRC, Intel > doesn't architect VM-entry or VM-exit as serializing, though they > probably are in practice. I'm not sure what AMD's stance on this is. Of course that isn't changed by this patch, though. Queuing both, but a clarification would be useful. The same applies even to CPUID. Paolo
Re: [PATCH v2 0/2] INVD intercept change to skip instruction
On Thu, Sep 24, 2020 at 11:42 AM Tom Lendacky wrote: > > From: Tom Lendacky > > This series updates the INVD intercept support for both SVM and VMX to > skip the instruction rather than emulating it, since emulation of this > instruction is just a NOP. Isn't INVD a serializing instruction, whereas NOP isn't? IIRC, Intel doesn't architect VM-entry or VM-exit as serializing, though they probably are in practice. I'm not sure what AMD's stance on this is.
[PATCH v2 0/2] INVD intercept change to skip instruction
From: Tom Lendacky This series updates the INVD intercept support for both SVM and VMX to skip the instruction rather than emulating it, since emulation of this instruction is just a NOP. For SVM, it requires creating a dedicated INVD intercept routine that invokes kvm_skip_emulated_instruction(). The current support uses the common emulate_on_interception() routine, which does not work for SEV guests, and so a Fixes: tag is added. For VMX, which already has a dedicated INVD intercept routine, it changes kvm_emulate_instruction() into a call to kvm_skip_emulated_instruction(). Tom Lendacky (2): KVM: SVM: Add a dedicated INVD intercept routine KVM: VMX: Do not perform emulation for INVD intercept arch/x86/kvm/svm/svm.c | 8 +++- arch/x86/kvm/vmx/vmx.c | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) -- 2.28.0