On 01.07.2022 15:16, Roger Pau Monne wrote: > --- a/xen/arch/x86/hvm/vmx/vmx.c > +++ b/xen/arch/x86/hvm/vmx/vmx.c > @@ -4065,6 +4065,11 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs) > > if ( unlikely(exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY) ) > return vmx_failed_vmentry(exit_reason, regs); > + if ( unlikely(exit_reason & VMX_EXIT_REASONS_BUS_LOCK) ) > + { > + perfc_incr(buslock); > + exit_reason &= ~VMX_EXIT_REASONS_BUS_LOCK; > + }
To cover for the flag bit, don't you also need to mask it off in nvmx_idtv_handling()? Or (didn't go into detail with checking whether there aren't any counter indications) pass the exit reason there from vmx_vmexit_handler(), instead of re-reading it from the VMCS? Jan