[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH-for-4.13] x86/mm: don't needlessly veto migration



 -----Original Message-----
> From: George Dunlap <george.dunlap@xxxxxxxxxx>
> Sent: 01 October 2019 11:34
> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>; 'Jan Beulich' <jbeulich@xxxxxxxx>
> Cc: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Roger Pau Monne 
> <roger.pau@xxxxxxxxxx>; xen-
> devel@xxxxxxxxxxxxxxxxxxxx; Juergen Gross <jgross@xxxxxxxx>; Wei Liu 
> <wl@xxxxxxx>
> Subject: Re: [Xen-devel] [PATCH-for-4.13] x86/mm: don't needlessly veto 
> migration
> 
> On 10/1/19 11:24 AM, Paul Durrant wrote:
> >> -----Original Message-----
> >> From: Jan Beulich <jbeulich@xxxxxxxx>
> >> Sent: 01 October 2019 11:15
> >> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> >> Cc: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; George Dunlap 
> >> <George.Dunlap@xxxxxxxxxx>; Roger Pau
> >> Monne <roger.pau@xxxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx; Juergen 
> >> Gross <jgross@xxxxxxxx>; Wei
> Liu
> >> <wl@xxxxxxx>
> >> Subject: Re: [Xen-devel] [PATCH-for-4.13] x86/mm: don't needlessly veto 
> >> migration
> >>
> >> On 01.10.2019 11:36, Paul Durrant wrote:
> >>>> -----Original Message-----
> >>>> From: Jan Beulich <jbeulich@xxxxxxxx>
> >>>> Sent: 01 October 2019 10:19
> >>>> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> >>>> Cc: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; George Dunlap 
> >>>> <George.Dunlap@xxxxxxxxxx>; Roger
> Pau
> >>>> Monne <roger.pau@xxxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx; Juergen 
> >>>> Gross <jgross@xxxxxxxx>;
> Wei
> >> Liu
> >>>> <wl@xxxxxxx>
> >>>> Subject: Re: [Xen-devel] [PATCH-for-4.13] x86/mm: don't needlessly veto 
> >>>> migration
> >>>>
> >>>> On 01.10.2019 10:52, Paul Durrant wrote:
> >>>>>> -----Original Message-----
> >>>>>> From: Jan Beulich <jbeulich@xxxxxxxx>
> >>>>>> Sent: 01 October 2019 09:46
> >>>>>> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> >>>>>> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Andrew Cooper 
> >>>>>> <Andrew.Cooper3@xxxxxxxxxx>; Roger Pau Monne
> >>>>>> <roger.pau@xxxxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxx>; 
> >>>>>> Juergen Gross
> >> <jgross@xxxxxxxx>;
> >>>> Wei
> >>>>>> Liu <wl@xxxxxxx>
> >>>>>> Subject: Re: [Xen-devel] [PATCH-for-4.13] x86/mm: don't needlessly 
> >>>>>> veto migration
> >>>>>>
> >>>>>> On 01.10.2019 10:28, Paul Durrant wrote:
> >>>>>>> Now that xl.cfg has an option to explicitly enable IOMMU mappings for 
> >>>>>>> a
> >>>>>>> domain, migration may be needlessly vetoed due to the check of
> >>>>>>> is_iommu_enabled() in paging_log_dirty_enable().
> >>>>>>> There is actually no need to prevent logdirty from being enabled 
> >>>>>>> unless
> >>>>>>> devices are assigned to a domain and that domain is sharing HAP 
> >>>>>>> mappings
> >>>>>>> with the IOMMU (in which case disabling write permissions in the P2M 
> >>>>>>> may
> >>>>>>> cause DMA faults).
> >>>>>>
> >>>>>> But that's taking into account only half of the reason of the
> >>>>>> exclusion. The other half is that assigned devices may cause pages
> >>>>>> to be dirtied behind the back of the log-dirty logic.
> >>>>>
> >>>>> But that's no reason to veto logdirty. Some devices have drivers (in 
> >>>>> dom0)
> >>>>> which can extract DMA dirtying information and set dirty tracking
> >>>>> information appropriately.
> >>>>
> >>>> It still needs a positive identification then: Such drivers should tell
> >>>> Xen for which specific devices such information is going to be provided.
> >>>
> >>> Why does the hypervisor need have the right of veto though? Surely it is
> >>> the toolstack that should decide whether a VM is migratable in the
> >>> presence of assigned h/w. Xen need only be concerned with the integrity
> >>> of the host, which is why the check for ETP sharing remains.
> >>
> >> While the tool stack is to decide, the hypervisor is expected to guarantee
> >> correct data coming back from XEN_DOMCTL_SHADOW_OP_{PEEK,CLEAN}.
> >
> > For some definition of 'correct', yes, and I don't think that this change 
> > violates any definition I
> can find in the domctl header.
> >
> > Note: there are already emulators that will be playing with the dirty map 
> > on an arbitrary and
> unsynchronized basis because they are emulating bus mastering h/w.
> 
> But the question is, do we want the toolstack to have to become an
> expert in what hardware might have external dirty tracking, and whether
> such tracking is active?  At the moment that would mean either 1)
> putting that information inside of libxc, or 2) duplicating it across
> xapi and libxl, for instance.

Why not? The toolstack is in charge of migration so why can't it decide whether 
it is 'safe' or not?

> 
> One thing we could imagine is that when specific devices have an active
> emulator (or whatever) propagating the dirty information, for that code
> to tell Xen, "I am implementing dirty tracking for this device".  Then
> when the toolstack enables logdirty, the check can be, "Are there any
> devices *that don't have external dirty tracking enabled* assigned to
> the guest?"

And what about existing emulators setting pages dirty at the moment? I don't 
see why Xen's internal dirty page logging is considered definitive because 
AFAICT that is really not the case even now.

  Paul
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.