Re: [RFC] /dev/ioasid uAPI proposal

From: Jason Wang
Date: Sun Jun 06 2021 - 23:20:36 EST



在 2021/6/4 下午7:58, Jason Gunthorpe 写道:
On Fri, Jun 04, 2021 at 09:11:03AM +0800, Jason Wang wrote:
nor do any virtio drivers implement the required platform specific
cache flushing to make no-snoop TLPs work.
I don't get why virtio drivers needs to do that. I think DMA API should hide
those arch/platform specific stuffs from us.
It is not arch/platform stuff. If the device uses no-snoop then a
very platform specific recovery is required in the device driver.

It is not part of the normal DMA API, it is side APIs like
flush_agp_cache() or wbinvd() that are used by GPU drivers only.


Yes and virtio doesn't support AGP.



If drivers/virtio doesn't explicitly call these things it doesn't
support no-snoop - hence no VDPA device can ever use no-snoop.


Note that no drivers call these things doesn't meant it was not supported by the spec.

Actually, spec doesn't forbid the non coherent DMA, anyway we can raise a new thread in the virtio mailing list to discuss about that.

But consider virtio has already supported GPU, crypto and sound device, and the devices like codec and video are being proposed. It doesn't help if we mandate coherent DMA now.

Thanks



Since VIRTIO_F_ACCESS_PLATFORM doesn't trigger wbinvd on x86 it has
nothing to do with no-snoop.

Jason