[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 5/8] x86/vm-event/monitor: don't compromise monitor_write_data on domain cleanup
On 7/4/2016 4:50 PM, Razvan Cojocaru wrote: On 07/04/16 16:11, Jan Beulich wrote:On 04.07.16 at 15:03, <czuzu@xxxxxxxxxxxxxxx> wrote:On 7/4/2016 3:47 PM, Jan Beulich wrote:On 30.06.16 at 20:45, <czuzu@xxxxxxxxxxxxxxx> wrote:The arch_vm_event structure is dynamically allocated and freed @ vm_event_cleanup_domain. This cleanup is triggered e.g. when the toolstack user disables domain monitoring (xc_monitor_disable), which in turn effectively discards any information that was in arch_vm_event.write_data.Isn't that rather a toolstack user bug, not warranting a relatively extensive (even if mostly mechanical) hypervisor change like this one? Sane monitor behavior, after all, is required anyway for the monitored guest to survive.Sorry but could you please rephrase this, I don't quite understand what you're saying. The write_data field in arch_vm_event should _not ever_ be invalidated as a direct result of a toolstack user's action.The monitoring app can cause all kinds of problems to the guest it monitors. Why would this specific one need taking care of in the hypervisor, instead of demanding that the app not disable monitoring at the wrong time?I'm not sure there's a right time here. The problem is that, if I understand this correctly, a race is possible between the moment the userspace application responds to the vm_event _and_ call xc_monitor_disable() and the time hvm_do_resume() gets called. If xc_monitor_disable() happened before hvm_do_resume() springs into action, we lose a register write. There's no guaranteed way for this not to happen as far as I can see, although it's true that the race should pretty much never happen in practice - at least we've never come across such a case so far. Thanks, Razvan Perfectly pointed, thanks. Note that xc_monitor_disable() may happen before hvm_do_resume() because the latter only happens _when the scheduler reschedules the target vCPU_, which _may not happen between_ the moment the toolstack user _handles the vm-event_ and the moment when he _calls xc_monitor_disable()_, but rather after xc_monitor_disable() is called. Corneliu. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |