Re: [PATCH v5 2/3] virtio_pci: Use the DMA API for virtqueues when possible

Benjamin Herrenschmidt
2014-09-29T20:49:37Z

On Mon, 2014-09-29 at 11:55 -0700, Andy Lutomirski wrote:

> Rusty and Michael, what's the status of this?

The status is that I still think we need *a* way to actually inform the
guest whether the virtio implementation will or will not bypass the
IOMMU. I don't know Xen enough to figure out how to do that and we could
maybe just make it something qemu puts in the device-tree on powerpc
only.

However I dislike making it global or per-bus, we could have a
combination of qemu and HW virtio on the same guest, so I really think
this needs to be a capability of the virtio device.

I don't completely understand what games Xen is playing here, but from
what I can tell, it's pretty clear that today's qemu implementation
always bypasses any iommu and so should always be exported as such on
all platforms, at least all kvm and pure qemu ones.

> I think that (aside from the trivial DMI/DMA typo) the only real issue
> here is that the situation on PPC is ugly. We're failing to enable
> physical virtio hardware on PPC with these patches, but that never
> worked anyway. I don't think that there are any regressions other
> than ugliness.
>
> My preference would be to apply the patches as is (or with "DMA"
> spelled correctly), and then to:
>
> - Make sure that all virtio-mmio systems have working DMA ops so that
> virtio-mmio can the DMA API
>
> - Fix the DMA API on s390 (probably easy) and on PPC (not necessarily so easy)
>
> - Remove the non-DMA-API code, which would be a very small change on
> top of these patches.
>
> --Andy