On Tue, 2011-12-20 at 09:31 +1100, David Gibson wrote: > When we're running paravirtualized under pHyp, it's impossible to > merge multiple PEs into one domain per se. We could fake it rather > nastily by replicating all map/unmaps across mutiple PEs. When > running bare metal, we could do so a bit more nicely by assigning > multiple PEs the same TCE pointer, but we have no mechanism to do so > at present.
VT-d does share the page tables, as you could on bare metal. But it's an implementation detail — there's nothing *fundamentally* wrong with having to do the map/unmap for each PE, is there? It's only at VM setup time, so it doesn't really matter if it's slow. Surely that's the only way you're going to present the guest with the illusion of having no IOMMU; so that DMA to any given guest physical address "just works". On the other hand, perhaps you don't want to do that at all. Perhaps you're better off presenting a virtualised IOMMU to the guest and *insisting* that it fully uses it in order to do any DMA at all? -- dwmw2
smime.p7s
Description: S/MIME cryptographic signature