Re: [RFC] /dev/ioasid uAPI proposal

Jason Wang
2021-06-08T01:00:38Z

在 2021/6/7 下午10:14, Jason Gunthorpe 写道:
> On Mon, Jun 07, 2021 at 11:18:33AM +0800, Jason Wang wrote:
>
>> Note that no drivers call these things doesn't meant it was not
>> supported by the spec.
> Of course it does. If the spec doesn't define exactly when the driver
> should call the cache flushes for no-snoop transactions then the
> protocol doesn't support no-soop.

Just to make sure we are in the same page. What I meant is, if the DMA
behavior like (no-snoop) is device specific. There's no need to mandate
a virtio general attributes. We can describe it per device. The devices
implemented in the current spec does not use non-coherent DMA doesn't
mean any future devices won't do that. The driver could choose to use
transport (e.g PCI), platform (ACPI) or device specific (general virtio
command) way to detect and flush cache when necessary.

>
> no-snoop is only used in very specific sequences of operations, like
> certain GPU usages, because regaining coherence on x86 is incredibly
> expensive.
>
> ie I wouldn't ever expect a NIC to use no-snoop because NIC's expect
> packets to be processed by the CPU.

For NIC yes. But virtio is more that just NIC. We've already supported
GPU and crypto devices. In this case, no-snoop will be useful since the
data is not necessarily expected to be processed by CPU.

And a lot of other type of devices are being proposed.

Thanks

>
> "non-coherent DMA" is some general euphemism that evokes images of
> embedded platforms that don't have coherent DMA at all and have low
> cost ways to regain coherence. This is not at all what we are talking
> about here at all.
>
> Jason