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

Re: [Xen-devel] per-domain passthrough/iommu options


  • To: 'Jan Beulich' <JBeulich@xxxxxxxx>
  • From: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
  • Date: Fri, 26 Jul 2019 14:26:53 +0000
  • Accept-language: en-GB, en-US
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=Paul.Durrant@xxxxxxxxxx; spf=Pass smtp.mailfrom=Paul.Durrant@xxxxxxxxxx; spf=None smtp.helo=postmaster@xxxxxxxxxxxxxxx
  • Cc: "xen-devel \(xen-devel@xxxxxxxxxxxxxxxxxxxx\)" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 26 Jul 2019 14:27:02 +0000
  • Ironport-sdr: fv4H0/qBV7MzjKUxfNAtpp1bA87gcI/hUJcGN9nsrj0nGnWp8a+VE4mwUQLsn27Zp2LQ7ACeJ1 Ch9sZs3nxV/gxn9ulD5UIqJYQP8ARAOjuryymxKMONboFDBZQ9V5AueH7x6yad75IDPgxXTwON isGFKT06w29IscS0UNtNM/D3eLfaKrgsloopIzIfVE7L4L4WPpd2RrirNx92rvDW3YRVQ9JJ4e VocIq6hO+pTwt/QhEa1iNBq/b8jKLinQtDvEfDhdbV5e9ykZM/UhFHBOM5rjV5NLN8slJXoyzM lTc=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AdVDqy2gdS3slVvQRuCN/iB10JmJ2gABnjsAAAD6vMAAAUXLgAAASpcA
  • Thread-topic: [Xen-devel] per-domain passthrough/iommu options

> -----Original Message-----
> From: Jan Beulich <JBeulich@xxxxxxxx>
> Sent: 26 July 2019 15:02
> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> Cc: xen-devel (xen-devel@xxxxxxxxxxxxxxxxxxxx) 
> <xen-devel@xxxxxxxxxxxxxxxxxxxx>
> Subject: Re: [Xen-devel] per-domain passthrough/iommu options
> 
> On 26.07.2019 15:39, Paul Durrant wrote:
> > Not sure how 'on' would co-exist with 'viommu'... the crucial difference is 
> > whether the p2m is
> shared or not and the currently the only option in the non-shared case, 
> because we lack a viommu, is
> to keep the IOMMU mappings in sync with the P2M whenever the latter is 
> updated. So, how about:
> >
> > passthrough = off|sync-pt|share-pt|viommu
> >
> > ? I don't think 'private-pt' or 'separate-pt' really capture the fact that 
> > the page tables match the
> P2M. They could just as easily be taken to mean that they are populated using 
> some other policy.
> 
> But haven't we recently seen that this fully lock-step population
> of page tables isn't always correct (or at least desirable)? I
> vaguely recall other comments to that effect too, from long ago.
> I'd specifically want to avoid encoding into the interface here
> that the two are exact mirrors of one another, now and forever.

How do you think we should express it. I agree that it's a bit awkward because 
of the difference between HVM and PV domains, but all we can do there really is 
document it I think, so perhaps the manpage could have something like:

'off'

IOMMU mappings are disabled for the domain and so hardware may not be passed 
through.

'sync-pt'

For a PV domain, all writable pages assigned to the domain are identity mapped 
by MFN in the IOMMU page tables. Thus a device driver running in the domain may 
program passthrough hardware for DMA using MFN values (i.e. host/machine frame 
numbers) looked up in its P2M.
For an HVM domain, all non-foreign RAM pages present in the P2M will be 
identity mapped by GFN in the IOMMU page tables. Thus a device driver running 
in the domain may program passthrough hardware using GFN values (i.e. guest 
physical frame numbers) without any further translation.

'share-pt'

This is unavailable for a PV domain. For an HVM domain, this option means that 
the IOMMU will be programmed to directly reference the P2M as its page tables. 
This availability of this option is hardware specific and thus, if it is 
specified for a domain running on hardware that does not allow it, 'sync-pt' 
will be used instead.

?

  Paul

> 
> Jan
_______________________________________________
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®.