On 04/25/2018 09:49 AM, Jan Beulich wrote: >>>> On 24.04.18 at 20:51, <andrew.coop...@citrix.com> wrote: >> --- a/xen/arch/x86/hvm/svm/svm.c >> +++ b/xen/arch/x86/hvm/svm/svm.c >> @@ -1883,6 +1883,22 @@ static int svm_msr_read_intercept(unsigned int msr, >> uint64_t *msr_content) >> switch ( msr ) >> { >> case MSR_IA32_SYSENTER_CS: >> + case MSR_IA32_SYSENTER_ESP: >> + case MSR_IA32_SYSENTER_EIP: > > These three do not require sync-ing, as their values aren't read from the > VMCB. > (They do require sync-ing on the write path). > > I also don't think this is going to fully resolve Razvan's issue (not the > least > because the code paths you adjust aren't involved in his scenario): As > pointed out in a private mail, I think vmcb_in_sync needs to start out as > true for a vCPU, and may need setting to true upon context set and/or > reset/init emulation.
Doing arch_svm->vmcb_in_sync = 1; in construct_vmcb() does solve the issue. I can't unfortunately test if it also needs setting in other places as our internal patches still need some work so introspection is not yet fully functional on SVM (mem_access events specifically are a bit of a problem). Thanks, Razvan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel