From: Pranjal Shrivastava <praan@google.com>
To: Matt Evans <matt@ozlabs.org>
Cc: "Alex Williamson" <alex@shazbot.org>,
"Leon Romanovsky" <leon@kernel.org>,
"Jason Gunthorpe" <jgg@nvidia.com>,
"Alex Mastro" <amastro@fb.com>,
"Christian König" <christian.koenig@amd.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Logan Gunthorpe" <logang@deltatee.com>,
"Mahmoud Adam" <mngyadam@amazon.de>,
"David Matlack" <dmatlack@google.com>,
"Björn Töpel" <bjorn@kernel.org>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Kevin Tian" <kevin.tian@intel.com>,
"Ankit Agrawal" <ankita@nvidia.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Vivek Kasireddy" <vivek.kasireddy@intel.com>,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org,
kvm@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH v3 9/9] vfio/pci: Add mmap() attributes to DMABUF feature
Date: Tue, 16 Jun 2026 19:09:16 +0000 [thread overview]
Message-ID: <ajGfXNavEPOuU_4L@google.com> (raw)
In-Reply-To: <c4a6e367-2f22-4cbf-afcb-674f82fdacd2@ozlabs.org>
On Tue, Jun 16, 2026 at 12:37:29PM +0100, Matt Evans wrote:
> Hi Praan,
>
> On 16/06/2026 09:47, Pranjal Shrivastava wrote:
> > On Wed, Jun 10, 2026 at 04:43:23PM +0100, Matt Evans wrote:
> >> A new VFIO feature, VFIO_DEVICE_FEATURE_DMA_BUF_MEMATTR, is added to
> >> set CPU-facing memory type attributes for a DMABUF exported from
> >> vfio-pci. These are used for subsequent mmap()s of the buffer.
> >>
> >> There are two attributes supported:
> >> - The default, VFIO_DEVICE_FEATURE_DMA_BUF_MEMATTR_NC
> >> - VFIO_DEVICE_FEATURE_DMA_BUF_MEMATTR_WC, which results in WC
> >> PTEs for the DMABUF's BAR region.
> >>
> >> Signed-off-by: Matt Evans <matt@ozlabs.org>
> >> ---
> >> drivers/vfio/pci/vfio_pci_core.c | 2 ++
> >> drivers/vfio/pci/vfio_pci_dmabuf.c | 57 +++++++++++++++++++++++++++++-
> >> drivers/vfio/pci/vfio_pci_priv.h | 14 ++++++++
> >> include/uapi/linux/vfio.h | 27 ++++++++++++++
> >> 4 files changed, 99 insertions(+), 1 deletion(-)
> >>
> >
[...]
> >> +
> >> + /* Verify DMABUF: see comments in vfio_pci_dma_buf_revoke() */
> >> + priv = dmabuf->priv;
> >> + if (dmabuf->ops != &vfio_pci_dmabuf_ops ||
> >> + READ_ONCE(priv->vdev) != vdev) {
> >> + ret = -ENODEV;
> >> + goto out_put_buf;
> >> + }
> >> +
> >> + switch (db_attr.memattr) {
> >> + case VFIO_DEVICE_FEATURE_DMA_BUF_MEMATTR_NC:
> >> + case VFIO_DEVICE_FEATURE_DMA_BUF_MEMATTR_WC:
> >> + WRITE_ONCE(priv->memattr, db_attr.memattr);
> >> + ret = 0;
> >> + break;
> >> +
> >> + default:
> >> + ret = -ENOENT;
> >
> > Nit: Looks like the agreement [1] was on -EOPNOTSUPP / -EINVAL but we
> > took -ENOENT here and in the doc string? Was that intentional?
> >
> > I tend to agree with Alex's suggestion here, we'd prefer one of those
> > two (-EINVAL / -EOPNOTSUPP) since it clearly communicates to the user
> > that "You sent a wrong arg" or "We don't support this"
> >
>
> Yes, it was intentional. This was noted in the v3 changelog entry in
> the cover letter:
>
> - Removed GET on vfio_pci_core_feature_dma_buf_memattr(), removed
> unnecessary taking of memory_lock, fixed error return values. In
> particular, removes ENOTSUPP, and uses ENOENT to indicate an
> unknown attribute enum value was passed to SET. In the discussion
> here,
> https://lore.kernel.org/all/20260602131417.41366391@shazbot.org/
> we'd agreed on EOPNOTSUPP before I realised that's already used
> elsewhere. ENOENT uniquely indicates an unknown attribute.
>
Ahh okay. I missed the changelogs in the cover letter.
> EINVAL/EOPNOTSUPP would indeed be semantically perfect, but after
> posting my reply there I remembered they are already overloaded with a
> load of different meanings.
>
> I think uniqueness is important here so that memattr issues (for example
> any future arch-specific porting issues) show up as an
> immediately-understandable error value.
>
> > -ENOENT means no such file or directory [2] to the user. Users may not
> > be kernel engineers who'd wanna peek into the code and they may simply
> > look at the uAPI files which doesn't give them an answer as to what
> > went wrong.
>
> But surely when they look at the uAPI header they will then see
> "* ENOENT: The given memattr is not supported." and understand what
> went wrong.
Fair enough. Since its documented it clearly in the uAPI header.
Thanks,
Praan
next prev parent reply other threads:[~2026-06-16 19:09 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-10 15:43 [PATCH v3 0/9] vfio/pci: Add mmap() for DMABUFs Matt Evans
2026-06-10 15:43 ` [PATCH v3 1/9] PCI/P2PDMA: Add CONFIG_PCI_P2PDMA_CORE Matt Evans
2026-06-10 18:39 ` Leon Romanovsky
2026-06-11 16:07 ` Bjorn Helgaas
2026-06-11 17:44 ` Matt Evans
2026-06-11 18:37 ` Pranjal Shrivastava
2026-06-12 3:39 ` Tian, Kevin
2026-06-12 14:31 ` Matt Evans
2026-06-10 15:43 ` [PATCH v3 2/9] vfio/pci: Add a helper to look up PFNs for DMABUFs Matt Evans
2026-06-11 20:30 ` Pranjal Shrivastava
2026-06-12 17:37 ` Alex Williamson
2026-06-12 18:21 ` Pranjal Shrivastava
2026-06-15 14:27 ` Matt Evans
2026-06-15 15:07 ` Pranjal Shrivastava
2026-06-12 8:42 ` Tian, Kevin
2026-06-15 18:04 ` Matt Evans
2026-06-16 9:28 ` Tian, Kevin
2026-06-16 11:48 ` Matt Evans
2026-06-10 15:43 ` [PATCH v3 3/9] vfio/pci: Add a helper to create a DMABUF for a BAR-map VMA Matt Evans
2026-06-12 8:43 ` Tian, Kevin
2026-06-12 9:20 ` Pranjal Shrivastava
2026-06-10 15:43 ` [PATCH v3 4/9] vfio/pci: Convert BAR mmap() to use a DMABUF Matt Evans
2026-06-12 8:46 ` Tian, Kevin
2026-06-15 15:33 ` Matt Evans
2026-06-12 10:41 ` Pranjal Shrivastava
2026-06-12 15:22 ` Matt Evans
2026-06-12 19:43 ` Pranjal Shrivastava
2026-06-10 15:43 ` [PATCH v3 5/9] vfio/pci: Provide a user-facing name for BAR mappings Matt Evans
2026-06-12 8:46 ` Tian, Kevin
2026-06-12 14:06 ` Pranjal Shrivastava
2026-06-15 15:13 ` Matt Evans
2026-06-10 15:43 ` [PATCH v3 6/9] vfio/pci: Clean up BAR zap and revocation Matt Evans
2026-06-12 19:39 ` Pranjal Shrivastava
2026-06-16 9:48 ` Tian, Kevin
2026-06-16 18:51 ` Pranjal Shrivastava
2026-06-16 9:18 ` Tian, Kevin
2026-06-10 15:43 ` [PATCH v3 7/9] vfio/pci: Support mmap() of a VFIO DMABUF Matt Evans
2026-06-12 20:35 ` Pranjal Shrivastava
2026-06-16 15:45 ` Matt Evans
2026-06-16 9:20 ` Tian, Kevin
2026-06-10 15:43 ` [PATCH v3 8/9] vfio/pci: Permanently revoke a DMABUF on request Matt Evans
2026-06-16 8:05 ` Pranjal Shrivastava
2026-06-16 9:26 ` Tian, Kevin
2026-06-10 15:43 ` [PATCH v3 9/9] vfio/pci: Add mmap() attributes to DMABUF feature Matt Evans
2026-06-16 8:47 ` Pranjal Shrivastava
2026-06-16 11:37 ` Matt Evans
2026-06-16 19:09 ` Pranjal Shrivastava [this message]
2026-06-16 9:26 ` Tian, Kevin
2026-06-12 8:27 ` [PATCH v3 0/9] vfio/pci: Add mmap() for DMABUFs Tian, Kevin
2026-06-12 15:11 ` Matt Evans
2026-06-12 15:17 ` Pranjal Shrivastava
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ajGfXNavEPOuU_4L@google.com \
--to=praan@google.com \
--cc=alex@shazbot.org \
--cc=amastro@fb.com \
--cc=ankita@nvidia.com \
--cc=apopple@nvidia.com \
--cc=bhelgaas@google.com \
--cc=bjorn@kernel.org \
--cc=christian.koenig@amd.com \
--cc=dmatlack@google.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jgg@nvidia.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=leon@kernel.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=matt@ozlabs.org \
--cc=mngyadam@amazon.de \
--cc=sumit.semwal@linaro.org \
--cc=vivek.kasireddy@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.