All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jacob Pan (Jun)" <jacob.jun.pan@intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: yi.y.sun@intel.com,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	kevin.tian@intel.com, "Raj, Ashok" <ashok.raj@intel.com>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	stefanha@gmail.com, Jason Wang <jasowang@redhat.com>,
	jun.j.tian@intel.com,
	Alex Williamson <alex.williamson@redhat.com>,
	iommu@lists.linux-foundation.org, jacob.jun.pan@intel.com,
	hao.wu@intel.com
Subject: Re: [PATCH v7 00/16] vfio: expose virtual Shared Virtual Addressing to VMs
Date: Tue, 15 Sep 2020 17:22:26 -0700	[thread overview]
Message-ID: <20200915171319.00003f59@linux.intel.com> (raw)
In-Reply-To: <20200915235126.GK1573713@nvidia.com>

Hi Jason,
On Tue, 15 Sep 2020 20:51:26 -0300, Jason Gunthorpe <jgg@nvidia.com>
wrote:

> On Tue, Sep 15, 2020 at 03:08:51PM -0700, Jacob Pan wrote:
> > > A PASID vIOMMU solution sharable with VDPA and VFIO, based on a
> > > PASID control char dev (eg /dev/sva, or maybe /dev/iommu) seems
> > > like a reasonable starting point for discussion.  
> > 
> > I am not sure what can really be consolidated in /dev/sva.   
> 
> More or less, everything in this patch. All the manipulations of PASID
> that are required for vIOMMU use case/etc. Basically all PASID control
> that is not just a 1:1 mapping of the mm_struct.
> 
> > will have their own kerne-user interfaces anyway for their usage
> > models. They are just providing the specific transport while
> > sharing generic IOMMU UAPIs and IOASID management.  
> 
> > As I mentioned PASID management is already consolidated in the
> > IOASID layer, so for VDPA or other users, it just matter of create
> > its own ioasid_set, doing allocation.  
> 
> Creating the PASID is not the problem, managing what the PASID maps to
> is the issue. That is all uAPI that we don't really have today.
> 
> > IOASID is also available to the in-kernel users which does not
> > need /dev/sva AFAICT. For bare metal SVA, I don't see a need to
> > create this 'floating' state of the PASID when created by /dev/sva.
> > PASID allocation could happen behind the scene when users need to
> > bind page tables to a device DMA stream.  
> 
> My point is I would like to see one set of uAPI ioctls to bind page
> tables. I don't want to have VFIO, VDPA, etc, etc uAPIs to do the
> exact same things only slightly differently.
> 
Got your point. I am not familiar with VDPA but for VFIO UAPI, it is
very thin, mostly passthrough IOMMU UAPI struct as opaque data.

> If user space wants to bind page tables, create the PASID with
> /dev/sva, use ioctls there to setup the page table the way it wants,
> then pass the now configured PASID to a driver that can use it. 
> 
Are we talking about bare metal SVA? If so, I don't see the need for
userspace to know there is a PASID. All user space need is that my
current mm is bound to a device by the driver. So it can be a one-step
process for user instead of two.

> Driver does not do page table binding. Do not duplicate all the
> control plane uAPI in every driver.
> 
> PASID managment and binding is seperated from the driver(s) that are
> using the PASID.
> 
Why separate? Drivers need to be involved in PASID life cycle
management. For example, when tearing down a PASID, the driver needs to
stop DMA, IOMMU driver needs to unbind, etc. If driver is the control
point, then things are just in order. I am referring to bare metal SVA.

For guest SVA, I agree that binding is separate from PASID allocation.
Could you review this doc. in terms of life cycle?
https://lkml.org/lkml/2020/8/22/13

My point is that /dev/sda has no value for bare metal SVA, we are just
talking about if guest SVA UAPIs can be consolidated. Or am I missing
something?

> Jason


Thanks,

Jacob
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  reply	other threads:[~2020-09-16  0:22 UTC|newest]

Thread overview: 165+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-10 10:45 [PATCH v7 00/16] vfio: expose virtual Shared Virtual Addressing to VMs Liu Yi L
2020-09-10 10:45 ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 01/16] iommu: Report domain nesting info Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-11 19:38   ` Alex Williamson
2020-09-11 19:38     ` Alex Williamson
2020-09-10 10:45 ` [PATCH v7 02/16] iommu/smmu: Report empty " Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2021-01-12  6:50   ` Vivek Gautam
2021-01-12  6:50     ` Vivek Gautam
2021-01-12  9:21     ` Liu, Yi L
2021-01-12  9:21       ` Liu, Yi L
2021-01-12 11:05       ` Vivek Gautam
2021-01-12 11:05         ` Vivek Gautam
2021-01-13  5:56         ` Liu, Yi L
2021-01-13  5:56           ` Liu, Yi L
2021-01-19 10:03           ` Auger Eric
2021-01-19 10:03             ` Auger Eric
2021-01-23  8:59             ` Liu, Yi L
2021-01-23  8:59               ` Liu, Yi L
2021-02-12  7:14               ` Vivek Gautam
2021-02-12  7:14                 ` Vivek Gautam
2021-02-12  9:57                 ` Auger Eric
2021-02-12  9:57                   ` Auger Eric
2021-02-12 10:18                   ` Vivek Kumar Gautam
2021-02-12 10:18                     ` Vivek Kumar Gautam
2021-02-12 11:01                     ` Vivek Kumar Gautam
2021-02-12 11:01                       ` Vivek Kumar Gautam
2021-03-03  9:44                   ` Liu, Yi L
2021-03-03  9:44                     ` Liu, Yi L
2020-09-10 10:45 ` [PATCH v7 03/16] vfio/type1: Report iommu nesting info to userspace Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-11 20:16   ` Alex Williamson
2020-09-11 20:16     ` Alex Williamson
2020-09-12  8:24     ` Liu, Yi L
2020-09-12  8:24       ` Liu, Yi L
2020-09-10 10:45 ` [PATCH v7 04/16] vfio: Add PASID allocation/free support Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-11 20:54   ` Alex Williamson
2020-09-11 20:54     ` Alex Williamson
2020-09-15  4:03     ` Liu, Yi L
2020-09-15  4:03       ` Liu, Yi L
2020-09-10 10:45 ` [PATCH v7 05/16] iommu/vt-d: Support setting ioasid set to domain Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 06/16] iommu/vt-d: Remove get_task_mm() in bind_gpasid() Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 07/16] vfio/type1: Add VFIO_IOMMU_PASID_REQUEST (alloc/free) Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-11 21:38   ` Alex Williamson
2020-09-11 21:38     ` Alex Williamson
2020-09-12  6:17     ` Liu, Yi L
2020-09-10 10:45 ` [PATCH v7 08/16] iommu: Pass domain to sva_unbind_gpasid() Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 09/16] iommu/vt-d: Check ownership for PASIDs from user-space Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 10/16] vfio/type1: Support binding guest page tables to PASID Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-11 22:03   ` Alex Williamson
2020-09-11 22:03     ` Alex Williamson
2020-09-12  6:02     ` Liu, Yi L
2020-09-12  6:02       ` Liu, Yi L
2020-09-10 10:45 ` [PATCH v7 11/16] vfio/type1: Allow invalidating first-level/stage IOMMU cache Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 12/16] vfio/type1: Add vSVA support for IOMMU-backed mdevs Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 13/16] vfio/pci: Expose PCIe PASID capability to guest Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-11 22:13   ` Alex Williamson
2020-09-11 22:13     ` Alex Williamson
2020-09-12  7:17     ` Liu, Yi L
2020-09-12  7:17       ` Liu, Yi L
2020-09-10 10:45 ` [PATCH v7 14/16] vfio: Document dual stage control Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 15/16] iommu/vt-d: Only support nesting when nesting caps are consistent across iommu units Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-10 10:45 ` [PATCH v7 16/16] iommu/vt-d: Support reporting nesting capability info Liu Yi L
2020-09-10 10:45   ` Liu Yi L
2020-09-14  4:20 ` [PATCH v7 00/16] vfio: expose virtual Shared Virtual Addressing to VMs Jason Wang
2020-09-14  4:20   ` Jason Wang
2020-09-14  8:01   ` Tian, Kevin
2020-09-14  8:01     ` Tian, Kevin
2020-09-14  8:57     ` Jason Wang
2020-09-14  8:57       ` Jason Wang
2020-09-14 10:38       ` Tian, Kevin
2020-09-14 10:38         ` Tian, Kevin
2020-09-14 11:38         ` Jason Gunthorpe
2020-09-14 11:38           ` Jason Gunthorpe
2020-09-14 13:31   ` Jean-Philippe Brucker
2020-09-14 13:31     ` Jean-Philippe Brucker
2020-09-14 13:47     ` Jason Gunthorpe
2020-09-14 13:47       ` Jason Gunthorpe
2020-09-14 16:22       ` Raj, Ashok
2020-09-14 16:22         ` Raj, Ashok
2020-09-14 16:33         ` Jason Gunthorpe
2020-09-14 16:33           ` Jason Gunthorpe
2020-09-14 16:58           ` Alex Williamson
2020-09-14 16:58             ` Alex Williamson
2020-09-14 17:41             ` Jason Gunthorpe
2020-09-14 17:41               ` Jason Gunthorpe
2020-09-14 18:23               ` Alex Williamson
2020-09-14 18:23                 ` Alex Williamson
2020-09-14 19:00                 ` Jason Gunthorpe
2020-09-14 19:00                   ` Jason Gunthorpe
2020-09-14 22:33                   ` Alex Williamson
2020-09-14 22:33                     ` Alex Williamson
2020-09-15 14:29                     ` Jason Gunthorpe
2020-09-15 14:29                       ` Jason Gunthorpe
2020-09-16  1:19                       ` Tian, Kevin
2020-09-16  1:19                         ` Tian, Kevin
2020-09-16  8:32                         ` Jean-Philippe Brucker
2020-09-16  8:32                           ` Jean-Philippe Brucker
2020-09-16 14:51                           ` Jason Gunthorpe
2020-09-16 14:51                             ` Jason Gunthorpe
2020-09-16 16:20                             ` Jean-Philippe Brucker
2020-09-16 16:20                               ` Jean-Philippe Brucker
2020-09-16 16:32                               ` Jason Gunthorpe
2020-09-16 16:32                                 ` Jason Gunthorpe
2020-09-16 16:50                                 ` Auger Eric
2020-09-16 16:50                                   ` Auger Eric
2020-09-16 14:44                         ` Jason Gunthorpe
2020-09-16 14:44                           ` Jason Gunthorpe
2020-09-17  6:01                           ` Tian, Kevin
2020-09-17  6:01                             ` Tian, Kevin
2020-09-14 22:44                   ` Raj, Ashok
2020-09-15 11:33                     ` Jason Gunthorpe
2020-09-15 11:33                       ` Jason Gunthorpe
2020-09-15 18:11                       ` Raj, Ashok
2020-09-15 18:11                         ` Raj, Ashok
2020-09-15 18:45                         ` Jason Gunthorpe
2020-09-15 18:45                           ` Jason Gunthorpe
2020-09-15 19:26                           ` Raj, Ashok
2020-09-15 19:26                             ` Raj, Ashok
2020-09-15 23:45                             ` Jason Gunthorpe
2020-09-15 23:45                               ` Jason Gunthorpe
2020-09-16  2:33                             ` Jason Wang
2020-09-16  2:33                               ` Jason Wang
2020-09-15 22:08                           ` Jacob Pan
2020-09-15 22:08                             ` Jacob Pan
2020-09-15 23:51                             ` Jason Gunthorpe
2020-09-15 23:51                               ` Jason Gunthorpe
2020-09-16  0:22                               ` Jacob Pan (Jun) [this message]
2020-09-16  1:46                                 ` Lu Baolu
2020-09-16  1:46                                   ` Lu Baolu
2020-09-16 15:07                                 ` Jason Gunthorpe
2020-09-16 15:07                                   ` Jason Gunthorpe
2020-09-16 16:33                                   ` Raj, Ashok
2020-09-16 16:33                                     ` Raj, Ashok
2020-09-16 17:01                                     ` Jason Gunthorpe
2020-09-16 17:01                                       ` Jason Gunthorpe
2020-09-16 18:21                                       ` Jacob Pan (Jun)
2020-09-16 18:21                                         ` Jacob Pan (Jun)
2020-09-16 18:38                                         ` Jason Gunthorpe
2020-09-16 18:38                                           ` Jason Gunthorpe
2020-09-16 23:09                                           ` Jacob Pan (Jun)
2020-09-16 23:09                                             ` Jacob Pan (Jun)
2020-09-17  3:53                                             ` Jason Wang
2020-09-17  3:53                                               ` Jason Wang
2020-09-17 17:31                                               ` Jason Gunthorpe
2020-09-17 17:31                                                 ` Jason Gunthorpe
2020-09-17 18:17                                               ` Jacob Pan (Jun)
2020-09-17 18:17                                                 ` Jacob Pan (Jun)
2020-09-18  3:58                                                 ` Jason Wang
2020-09-18  3:58                                                   ` Jason Wang
2020-09-16  2:29     ` Jason Wang
2020-09-16  2:29       ` Jason Wang

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=20200915171319.00003f59@linux.intel.com \
    --to=jacob.jun.pan@intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=ashok.raj@intel.com \
    --cc=hao.wu@intel.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jasowang@redhat.com \
    --cc=jean-philippe@linaro.org \
    --cc=jgg@nvidia.com \
    --cc=jun.j.tian@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=stefanha@gmail.com \
    --cc=yi.y.sun@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.