Re: [RFC PATCH 1/3] content: Add VIRTIO_F_SWIOTLB to negotiate use of SWIOTLB bounce buffers
From: Christoph Hellwig
Date: Thu Apr 03 2025 - 03:39:49 EST
On Thu, Apr 03, 2025 at 08:37:20AM +0100, David Woodhouse wrote:
> Hm. I was just trying to point out what seemed obvious, that when a PCI
> device does 'DMA' to an address region which is actually within one of
> its *own* BARs,
PCIe devices can't do DMA to their own BARs by definition, see the route
to self rule.
Pretending that they do it by parsing the addresses is bound to fail
because the addresses seen by the driver and the device can be
different.
NVMe got this wrong not just once but twice and is still suffering from
this misunderstanding. If you want to enhance a protocol to support
addressing a local indirection buffer do not treat it as fake DMA
but rather use explicit addressing for it, or you will be in a world of
trouble.