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:29:17 EST


On Wed, Apr 02, 2025 at 06:10:53PM +0100, David Woodhouse wrote:
> > I know a bit more about PCI, and for PCI I prefer just not saying
> > anything. The platform already defines whether it is behind an iommu
> > or not, and duplication is not good.
>
> Not a hill for me to die on I suppose, but I would personally prefer to
> spell it out in words of one syllable or fewer, to make *sure* that
> device and driver authors get it right even though it's "obvious".
>
> After all, if we could trust them to do their thinking, we would never
> have had the awful situation that led to VIRTIO_F_ACCESS_PLATFORM
> existing in the first place; the legacy behaviour we get when that bit
> *isn't* set would never have happened.

You'll need to define the semanics for VIRTIO_F_ACCESS_PLATFORM only
then. An the only sane answer there is: don't allow non-translated
regions at all an in a broader sense stop people to use
VIRTIO_F_ACCESS_PLATFORM at all or at least for anything that requires
a new feature bit.

> > For mmio it is my understanding that the "restricted" does the same
> > already? or is it required in the spec for some reason?
>
> No, it's exactly the same. But I still don't trust driver authors to
> realise the obvious, or VMM implementations either for that matter.
>
> I'm not sure I see the *harm* in spelling out explicitly for the hard-
> of-thinking.

Write a whitepaper than and explain how it maps to the existing perfectly
working features. Note that VIRTIO_F_ACCESS_PLATFORM just like
everything in virtio would actually benefit from being turned into
proper spec language, but anecdotes about random use cases are not
helpful.