On 10/14/2011 04:14 AM, David Gibson wrote: > > Virtio is a very, very special case. virtio requires coherent RAM access. > > Right. Virtio's access to memory is *not* emulated PCI DMA, it's > god-like hypervisor access to guest system memory. It should > correctly bypass any IOMMU, and so should remain as > cpu_physical_memory_rw() or the atomic accessors, rather than being > converted to this new API.
virtio should definitely not bypass an iommu. A guest may assign a virtio device to nested guests, and would wish it confined by the emulated iommu. More generally, a guest sees a virtio device as just another pci device, and has no way to tell that it bypasses the iommu. -- error compiling committee.c: too many arguments to function