[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] VM_EVENT_FLAG_SET_REGISTERS and sync_vcpu_execstate()
On 08/08/16 11:31, Razvan Cojocaru wrote: > Hello, > > We've been mostly setting registers by using xc_vcpu_setcontext(): > > https://github.com/razvan-cojocaru/libbdvmi/blob/master/src/bdvmixendriver.cpp#L504 > > but lately trying to push as much of that as possible to the > VM_EVENT_FLAG_SET_REGISTERS-related code (i.e. via the vm_event replies) > to save processing time. > > So with the xc_vcpu_setcontext() call removed, I've found that there are > cases where vm_event_set_registers() won't work properly unless I kept > the xc_vcpu_getcontext() call. This would appear to be not because of > anything that arch_get_info_guest() does (please see the implementation > for XEN_DOMCTL_getvcpucontext), but because of the vcpu_pause() call, or > more specifically, because of its calling sync_vcpu_execstate(). > > So it would appear that a sync_vcpu_execstate(v) call is necessary at > the start of vm_event_set_registers() for the vcpu struct instance to be > synchronized with the current VCPU state. > > Any objections to a patch with this simple modification? It would be helpful to identify exactly what is currently going wrong, and why sync_vcpu_execstate(v) helps. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |