lkml.org 
[lkml]   [2021]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC v2] /dev/iommu uAPI proposal
    On Wed, Jul 21, 2021 at 02:13:23AM +0000, Tian, Kevin wrote:
    > > From: Shenming Lu
    > > Sent: Friday, July 16, 2021 8:20 PM
    > >
    > > On 2021/7/16 9:20, Tian, Kevin wrote:
    > > > To summarize, for vIOMMU we can work with the spec owner to
    > > > define a proper interface to feedback such restriction into the guest
    > > > if necessary. For the kernel part, it's clear that IOMMU fd should
    > > > disallow two devices attached to a single [RID] or [RID, PASID] slot
    > > > in the first place.
    > > >
    > > > Then the next question is how to communicate such restriction
    > > > to the userspace. It sounds like a group, but different in concept.
    > > > An iommu group describes the minimal isolation boundary thus all
    > > > devices in the group can be only assigned to a single user. But this
    > > > case is opposite - the two mdevs (both support ENQCMD submission)
    > > > with the same parent have problem when assigned to a single VM
    > > > (in this case vPASID is vm-wide translated thus a same pPASID will be
    > > > used cross both mdevs) while they instead work pretty well when
    > > > assigned to different VMs (completely different vPASID spaces thus
    > > > different pPASIDs).
    > > >
    > > > One thought is to have vfio device driver deal with it. In this proposal
    > > > it is the vfio device driver to define the PASID virtualization policy and
    > > > report it to userspace via VFIO_DEVICE_GET_INFO. The driver understands
    > > > the restriction thus could just hide the vPASID capability when the user
    > > > calls GET_INFO on the 2nd mdev in above scenario. In this way the
    > > > user even doesn't need to know such restriction at all and both mdevs
    > > > can be assigned to a single VM w/o any problem.
    > > >
    > >
    > > The restriction only probably happens when two mdevs are assigned to one
    > > VM,
    > > how could the vfio device driver get to know this info to accurately hide
    > > the vPASID capability for the 2nd mdev when VFIO_DEVICE_GET_INFO?
    > > There is no
    > > need to do this in other cases.
    > >
    >
    > I suppose the driver can detect it via whether two mdevs are opened by a
    > single process.

    Just have the kernel some ID for the PASID numberspace - devices with
    the same ID have to be represented as a single RID.

    Jason

    \
     
     \ /
      Last update: 2021-07-22 19:36    [W:4.141 / U:0.556 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site