[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z-47O3vkyIf0mzdw@infradead.org>
Date: Thu, 3 Apr 2025 00:39:39 -0700
From: Christoph Hellwig <hch@...radead.org>
To: David Woodhouse <dwmw2@...radead.org>
Cc: Christoph Hellwig <hch@...radead.org>,
"Michael S. Tsirkin" <mst@...hat.com>,
virtio-comment@...ts.linux.dev, Claire Chang <tientzu@...omium.org>,
linux-devicetree <devicetree@...r.kernel.org>,
Rob Herring <robh+dt@...nel.org>,
Jörg Roedel <joro@...tes.org>,
iommu@...ts.linux-foundation.org, linux-kernel@...r.kernel.org,
graf@...zon.de
Subject: Re: [RFC PATCH 1/3] content: Add VIRTIO_F_SWIOTLB to negotiate use
of SWIOTLB bounce buffers
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.
Powered by blists - more mailing lists