[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/9] x86/HVM: move NOFLUSH handling out of hvm_set_cr3()
On 17.09.2019 21:31, Andrew Cooper wrote: > On 17/09/2019 07:15, Jan Beulich wrote: >> --- a/xen/arch/x86/hvm/hvm.c >> +++ b/xen/arch/x86/hvm/hvm.c >> @@ -2282,12 +2287,11 @@ int hvm_set_cr0(unsigned long value, boo >> return X86EMUL_OKAY; >> } >> >> -int hvm_set_cr3(unsigned long value, bool may_defer) >> +int hvm_set_cr3(unsigned long value, bool noflush, bool may_defer) >> { >> struct vcpu *v = current; >> struct page_info *page; >> unsigned long old = v->arch.hvm.guest_cr[3]; >> - bool noflush = false; >> >> if ( may_defer && >> unlikely(v->domain->arch.monitor.write_ctrlreg_enabled & >> monitor_ctrlreg_bitmask(VM_EVENT_X86_CR3)) ) >> @@ -2299,17 +2303,12 @@ int hvm_set_cr3(unsigned long value, boo >> /* The actual write will occur in hvm_do_resume(), if >> permitted. */ >> v->arch.vm_event->write_data.do_write.cr3 = 1; >> v->arch.vm_event->write_data.cr3 = value; >> + v->arch.vm_event->write_data.cr3_noflush = noflush; > > ... this, which I'm pretty sure breaks the reporting of noflush mov to > cr3's. The semantics of the VMI hook is "the guest tried to write this > value to cr3", which should include the noflush bit in its architectural > position. I suspect it also breaks a reply with the noflush bit set, > because I don't see any way that is fed back from the introspecting agent. hvm_monitor_cr() zaps the bit off the reported value. I wonder whether the patch here should include removing this zapping, as being redundant now. I don't think though that the patch alters behavior in this regard. > CC'ing the Introspection maintainers for their view. I'll wait for their feedback anyway, before making any possible change to the patch. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |