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

Re: [Xen-devel] [RFC PATCH 0/3] AMD IOMMU: Share p2m table with iommu

> Hi,
> At 13:08 +0100 on 23 May (1306156129), Wei Wang2 wrote:
> > > Unfortunately this change seems to be necessary for AMD IOMMU to share
> > > pagetables with the p2m.  I'd rather we didn't have it, because it
> > > means empty ptes look like RAM mappings of frame 0. :(
> > >
> > > Wei, is there any way we can reorganise the AMD IOMMU pagetables so we
> > > can store the p2m type somewhere that's not required to be zero?  If
> > > not, I'm inclined to revert the p2m-sharing for AMD IOMMUs, since at
> > > the very least we'd like to be able to handle types other than ram_rw
> > > (e.g. ram_ro).
> >
> > Theoretically, we just need to keep bit 52 - bit 58 all zero for valid
> > dma translation entry. Probably we could  define ram_rw as 11000000000b,
> > which is the valid r/w permission for iommu and leaves bit 52 - 58 zero?
> Ugh; no, that will break EPT as well, and restricts us to only one
> accessible type.  It looks like there are no bits that are available in
> both normal pagetable and IOMMU pagetables.  How inconvenient.
OK, understand. Indeed there are no bits available to use. I am not strictly 
against reversing this patch,  if this causes too much changes for vtd. 
> So our only options are to harden the rest of the p2m code against
> blank entries looking like RAM, or to avoid sharing pagetables between
> p2m and AMD IOMMU. :(  I guess that depends on how much of a PITA it'll
> be to track down the rest of the places where EPT code trips over
> itself.  Maybe we should replace the clear_page() in allocating p2m
> pages with a loop that explicitly makes everything p2m_invalid.  It's
> not a terribly hot path, after all.

> But even if we do that, don't you want read-only and grant-mapped memory
> to work with the IOMMU? 

Ture, we lose grant mapping and RO here. But what is the use case of iommu 
using RO and grant-mapping in hvm? For hvm, since we could not know which 
parts of memory are actually used by dma transaction, should it be more safe 
that only r/w pages are accessed by iommu through p2m? 
> Tim.

Xen-devel mailing list



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