Messages in this thread | | | Date | Fri, 9 Aug 2019 11:37:30 -0700 | From | Sean Christopherson <> | Subject | Re: [PATCH v3 5/7] x86: KVM: svm: remove hardcoded instruction length from intercepts |
| |
On Thu, Aug 08, 2019 at 07:30:49PM +0200, Vitaly Kuznetsov wrote: > Various intercepts hard-code the respective instruction lengths to optimize > skip_emulated_instruction(): when next_rip is pre-set we skip > kvm_emulate_instruction(vcpu, EMULTYPE_SKIP). The optimization is, however, > incorrect: different (redundant) prefixes could be used to enlarge the > instruction. We can't really avoid decoding. > > svm->next_rip is not used when CPU supports 'nrips' (X86_FEATURE_NRIPS) > feature: next RIP is provided in VMCB. The feature is not really new > (Opteron G3s had it already) and the change should have zero affect. > > Remove manual svm->next_rip setting with hard-coded instruction lengths. > The only case where we now use svm->next_rip is EXIT_IOIO: the instruction > length is provided to us by hardware. > > Hardcoded RIP advancement remains in vmrun_interception(), this is going to > be taken care of separately. > > Reported-by: Jim Mattson <jmattson@google.com> > Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> > ---
Reviewed-by: Sean Christopherson <sean.j.christopherson@intel.com>
| |