All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: cohuck@redhat.com, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org, jgg@nvidia.com, peterx@redhat.com
Subject: Re: [PATCH v1 07/14] vfio: Add a device notifier interface
Date: Fri, 19 Mar 2021 16:25:40 -0600	[thread overview]
Message-ID: <20210319162540.0c5fe9dd@omen.home.shazbot.org> (raw)
In-Reply-To: <20210310075639.GB662265@infradead.org>

On Wed, 10 Mar 2021 07:56:39 +0000
Christoph Hellwig <hch@infradead.org> wrote:

> On Mon, Mar 08, 2021 at 02:48:30PM -0700, Alex Williamson wrote:
> > Using a vfio device, a notifier block can be registered to receive
> > select device events.  Notifiers can only be registered for contained
> > devices, ie. they are available through a user context.  Registration
> > of a notifier increments the reference to that container context
> > therefore notifiers must minimally respond to the release event by
> > asynchronously removing notifiers.  
> 
> Notifiers generally are a horrible multiplexed API.  Can't we just
> add a proper method table for the intended communication channel?

I've been trying to figure out how, but I think not.  A user can have
multiple devices, each with entirely separate IOMMU contexts.  For each
device, the user can create an mmap of memory to that device and add it
to every other IOMMU context.  That enables peer to peer DMA between
all the devices, across all the IOMMU contexts.  But each individual
device has no direct reference to any IOMMU context other than its own.
A callback on the IOMMU can't reach those other contexts either, there's
no guarantee those other contexts are necessarily managed via the same
vfio IOMMU backend driver.  A notifier is the best I can come up with,
please suggest if you have other ideas.  Thanks,

Alex


  reply	other threads:[~2021-03-19 22:26 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-08 21:47 [PATCH v1 00/14] vfio: Device memory DMA mapping improvements Alex Williamson
2021-03-08 21:47 ` [PATCH v1 01/14] vfio: Create vfio_fs_type with inode per device Alex Williamson
2021-03-09  8:36   ` Christoph Hellwig
2021-04-09  4:54   ` 答复: " Zengtao (B)
2021-04-09 14:24     ` Alex Williamson
2021-04-09 17:32       ` Jason Gunthorpe
2021-04-12  4:03         ` 答复: " Zengtao (B)
2021-04-12  4:09       ` Zengtao (B)
2021-03-08 21:47 ` [PATCH v1 02/14] vfio: Update vfio_add_group_dev() API Alex Williamson
2021-03-10  7:48   ` Christoph Hellwig
2021-03-10 12:19     ` Jason Gunthorpe
2021-03-10 15:28       ` Alex Williamson
2021-03-11 11:23         ` Christoph Hellwig
2021-03-08 21:47 ` [PATCH v1 03/14] vfio: Export unmap_mapping_range() wrapper Alex Williamson
2021-03-08 21:48 ` [PATCH v1 04/14] vfio/pci: Use vfio_device_unmap_mapping_range() Alex Williamson
2021-03-08 21:48 ` [PATCH v1 05/14] vfio: Create a vfio_device from vma lookup Alex Williamson
2021-03-08 21:48 ` [PATCH v1 06/14] vfio: Add vma to pfn callback Alex Williamson
2021-03-09  0:33   ` Jason Gunthorpe
2021-03-08 21:48 ` [PATCH v1 07/14] vfio: Add a device notifier interface Alex Williamson
2021-03-09  0:46   ` Jason Gunthorpe
2021-03-09 15:45     ` Alex Williamson
2021-03-09 16:47       ` Jason Gunthorpe
2021-03-10  7:56   ` Christoph Hellwig
2021-03-19 22:25     ` Alex Williamson [this message]
2021-03-22 15:16       ` Christoph Hellwig
2021-03-08 21:48 ` [PATCH v1 08/14] vfio/pci: Notify on device release Alex Williamson
2021-03-08 21:48 ` [PATCH v1 09/14] vfio/type1: Refactor pfn_list clearing Alex Williamson
2021-03-10  8:01   ` Christoph Hellwig
2021-03-08 21:49 ` [PATCH v1 10/14] vfio/type1: Pass iommu and dma objects through to vaddr_get_pfn Alex Williamson
2021-03-08 21:49 ` [PATCH v1 11/14] vfio/type1: Register device notifier Alex Williamson
2021-03-10  8:03   ` Christoph Hellwig
2021-03-08 21:49 ` [PATCH v1 12/14] vfio/type1: Support batching of device mappings Alex Williamson
2021-03-09  1:04   ` Jason Gunthorpe
2021-03-08 21:49 ` [PATCH v1 13/14] vfio: Remove extern from declarations across vfio Alex Williamson
2021-03-09  0:21   ` Halil Pasic
2021-03-09  1:07   ` Jason Gunthorpe
2021-03-08 21:49 ` [PATCH v1 14/14] vfio: Cleanup use of bare unsigned Alex Williamson
2021-03-09  1:07   ` Jason Gunthorpe
2021-03-09  8:31     ` Christoph Hellwig
2021-03-09  1:06 ` [PATCH v1 00/14] vfio: Device memory DMA mapping improvements Jason Gunthorpe

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=20210319162540.0c5fe9dd@omen.home.shazbot.org \
    --to=alex.williamson@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=hch@infradead.org \
    --cc=jgg@nvidia.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterx@redhat.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.