From: Alex Williamson <alex@shazbot.org>
To: Matt Evans <matt@ozlabs.org>
Cc: "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>,
"Kevin Tian" <kevin.tian@intel.com>,
"Pranjal Shrivastava" <praan@google.com>,
"Longfang Liu" <liulongfang@huawei.com>,
"Mahmoud Adam" <mngyadam@amazon.de>,
"David Matlack" <dmatlack@google.com>,
"Björn Töpel" <bjorn@kernel.org>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"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, alex@shazbot.org
Subject: Re: [PATCH v5 6/9] vfio/pci: Provide a user-facing name for BAR mappings
Date: Wed, 29 Jul 2026 11:52:02 -0600 [thread overview]
Message-ID: <20260729115202.15ac87c5@shazbot.org> (raw)
In-Reply-To: <20260715174737.15287-7-matt@ozlabs.org>
On Wed, 15 Jul 2026 18:47:29 +0100
Matt Evans <matt@ozlabs.org> wrote:
> Since converting BAR mmap()s to using DMABUFs, we lose the original
> device path in /proc/<pid>/maps, lsof, etc. Generate a debug-oriented
> synthetic 'filename' based on the cdev, plus BDF, plus resource index.
>
> This applies only to BAR mappings via the VFIO device fd, as
> explicitly-exported DMABUFs are named by userspace via the
> DMA_BUF_SET_NAME ioctl.
>
> Signed-off-by: Matt Evans <matt@ozlabs.org>
> Reviewed-by: Pranjal Shrivastava <praan@google.com>
> ---
> drivers/vfio/pci/vfio_pci_dmabuf.c | 22 ++++++++++++++++++++--
> 1 file changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/vfio/pci/vfio_pci_dmabuf.c b/drivers/vfio/pci/vfio_pci_dmabuf.c
> index 46b3cf5dc94b..51606ff3cdc6 100644
> --- a/drivers/vfio/pci/vfio_pci_dmabuf.c
> +++ b/drivers/vfio/pci/vfio_pci_dmabuf.c
> @@ -4,6 +4,7 @@
> #include <linux/dma-buf-mapping.h>
> #include <linux/pci-p2pdma.h>
> #include <linux/dma-resv.h>
> +#include <uapi/linux/dma-buf.h>
Is this required? It seems unused.
>
> #include "vfio_pci_priv.h"
>
> @@ -486,6 +487,7 @@ int vfio_pci_core_mmap_prep_dmabuf(struct vfio_pci_core_device *vdev,
> {
> struct vfio_pci_dma_buf *priv;
> unsigned long vma_pgoff = vma->vm_pgoff & (VFIO_PCI_OFFSET_MASK >> PAGE_SHIFT);
> + char *bufname;
> int ret;
>
> priv = kzalloc_obj(*priv);
> @@ -498,6 +500,15 @@ int vfio_pci_core_mmap_prep_dmabuf(struct vfio_pci_core_device *vdev,
> goto err_free_priv;
> }
>
> + bufname = kasprintf(GFP_KERNEL, "%s:%s/%x",
> + dev_name(&vdev->vdev.device), pci_name(vdev->pdev),
> + res_index);
> +
> + if (!bufname) {
> + ret = -ENOMEM;
> + goto err_free_phys;
> + }
> +
> /*
> * The DMABUF begins from the mmap()'s BAR offset, i.e. the
> * start of the VMA corresponds to byte 0 of the DMABUF and
> @@ -516,7 +527,7 @@ int vfio_pci_core_mmap_prep_dmabuf(struct vfio_pci_core_device *vdev,
> priv->provider = pcim_p2pdma_provider(vdev->pdev, res_index);
> if (!priv->provider) {
> ret = -EINVAL;
> - goto err_free_phys;
> + goto err_free_name;
> }
>
> priv->phys_vec[0].paddr = phys_start + ((u64)vma_pgoff << PAGE_SHIFT);
> @@ -524,7 +535,7 @@ int vfio_pci_core_mmap_prep_dmabuf(struct vfio_pci_core_device *vdev,
>
> ret = vfio_pci_dmabuf_export(vdev, priv, O_CLOEXEC | O_RDWR);
> if (ret)
> - goto err_free_phys;
> + goto err_free_name;
>
> /*
> * Ownership of the DMABUF file transfers to the VMA so that
> @@ -539,8 +550,15 @@ int vfio_pci_core_mmap_prep_dmabuf(struct vfio_pci_core_device *vdev,
> vma->vm_file = priv->dmabuf->file;
> vma->vm_private_data = priv;
>
> + spin_lock(&priv->dmabuf->name_lock);
> + kfree(priv->dmabuf->name);
> + priv->dmabuf->name = bufname;
> + spin_unlock(&priv->dmabuf->name_lock);
This is simple, but shouldn't it really have a sanctioned, exported
dmabuf helper rather than open coding this handling? Thanks,
Alex
> +
> return 0;
>
> +err_free_name:
> + kfree(bufname);
> err_free_phys:
> kfree(priv->phys_vec);
> err_free_priv:
next prev parent reply other threads:[~2026-07-29 17:52 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-15 17:47 [PATCH v5 0/9] vfio/pci: Add mmap() for DMABUFs Matt Evans
2026-07-15 17:47 ` [PATCH v5 1/9] PCI/P2PDMA: Split pool-related cleanup out of pci_p2pdma_release() Matt Evans
2026-07-15 18:05 ` sashiko-bot
2026-07-17 8:02 ` Tian, Kevin
2026-07-28 22:33 ` Alex Williamson
2026-07-29 10:08 ` Leon Romanovsky
2026-07-15 17:47 ` [PATCH v5 2/9] PCI/P2PDMA: Add CONFIG_PCI_P2PDMA_CORE Matt Evans
2026-07-15 18:03 ` sashiko-bot
2026-07-17 8:02 ` Tian, Kevin
2026-07-15 17:47 ` [PATCH v5 3/9] vfio/pci: Add a helper to look up PFNs for DMABUFs Matt Evans
2026-07-15 18:08 ` sashiko-bot
2026-07-17 8:02 ` Tian, Kevin
2026-07-29 17:52 ` Alex Williamson
2026-07-15 17:47 ` [PATCH v5 4/9] vfio/pci: Add a helper to create a DMABUF for a BAR-map VMA Matt Evans
2026-07-15 18:12 ` sashiko-bot
2026-07-27 13:45 ` Matt Evans
2026-07-15 17:47 ` [PATCH v5 5/9] vfio/pci: Convert BAR mmap() to use a DMABUF Matt Evans
2026-07-15 18:13 ` sashiko-bot
2026-07-27 13:45 ` Matt Evans
2026-07-15 17:47 ` [PATCH v5 6/9] vfio/pci: Provide a user-facing name for BAR mappings Matt Evans
2026-07-15 18:01 ` sashiko-bot
2026-07-17 8:03 ` Tian, Kevin
2026-07-29 17:52 ` Alex Williamson [this message]
2026-07-15 17:47 ` [PATCH v5 7/9] vfio/pci: Clean up BAR zap and revocation Matt Evans
2026-07-15 18:00 ` sashiko-bot
2026-07-17 8:03 ` Tian, Kevin
2026-07-29 17:52 ` Alex Williamson
2026-07-15 17:47 ` [PATCH v5 8/9] vfio/pci: Support mmap() of a VFIO DMABUF Matt Evans
2026-07-15 18:17 ` sashiko-bot
2026-07-17 8:03 ` Tian, Kevin
2026-07-15 17:47 ` [PATCH v5 9/9] vfio/pci: Permanently revoke a DMABUF on request Matt Evans
2026-07-15 18:11 ` sashiko-bot
2026-07-27 13:45 ` Matt Evans
2026-07-17 8:03 ` Tian, Kevin
2026-07-15 18:12 ` [PATCH v5 0/9] vfio/pci: Add mmap() for DMABUFs David Matlack
2026-07-16 14:51 ` Matt Evans
2026-07-16 21:23 ` David Matlack
2026-07-17 8:42 ` David Laight
2026-07-17 16:30 ` David Matlack
2026-07-17 17:12 ` Matt Evans
2026-07-20 21:50 ` David Matlack
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=20260729115202.15ac87c5@shazbot.org \
--to=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=liulongfang@huawei.com \
--cc=logang@deltatee.com \
--cc=matt@ozlabs.org \
--cc=mngyadam@amazon.de \
--cc=praan@google.com \
--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.