kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: Yi Liu <yi.l.liu@intel.com>,
	joro@8bytes.org, kevin.tian@intel.com, robin.murphy@arm.com,
	cohuck@redhat.com, eric.auger@redhat.com, nicolinc@nvidia.com,
	kvm@vger.kernel.org, mjrosato@linux.ibm.com,
	chao.p.peng@linux.intel.com, yi.y.sun@linux.intel.com,
	peterx@redhat.com, jasowang@redhat.com,
	shameerali.kolothum.thodi@huawei.com, lulu@redhat.com,
	suravee.suthikulpanit@amd.com,
	intel-gvt-dev@lists.freedesktop.org,
	intel-gfx@lists.freedesktop.org, linux-s390@vger.kernel.org
Subject: Re: [PATCH v3 05/15] kvm/vfio: Accept vfio device file from userspace
Date: Tue, 14 Feb 2023 19:25:19 -0400	[thread overview]
Message-ID: <Y+wYX34sPvPQmGSr@nvidia.com> (raw)
In-Reply-To: <20230214152627.3a399523.alex.williamson@redhat.com>

On Tue, Feb 14, 2023 at 03:26:27PM -0700, Alex Williamson wrote:
> > index 857d6ba349e1..d869913baafd 100644
> > --- a/virt/kvm/vfio.c
> > +++ b/virt/kvm/vfio.c
> > @@ -286,18 +286,18 @@ static int kvm_vfio_set_file(struct kvm_device *dev, long attr,
> >  	int32_t fd;
> >  
> >  	switch (attr) {
> > -	case KVM_DEV_VFIO_GROUP_ADD:
> > +	case KVM_DEV_VFIO_FILE_ADD:
> >  		if (get_user(fd, argp))
> >  			return -EFAULT;
> >  		return kvm_vfio_file_add(dev, fd);
> >  
> > -	case KVM_DEV_VFIO_GROUP_DEL:
> > +	case KVM_DEV_VFIO_FILE_DEL:
> >  		if (get_user(fd, argp))
> >  			return -EFAULT;
> >  		return kvm_vfio_file_del(dev, fd);
> >  
> >  #ifdef CONFIG_SPAPR_TCE_IOMMU
> > -	case KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE:
> > +	case KVM_DEV_VFIO_FILE_SET_SPAPR_TCE:
> >  		return kvm_vfio_file_set_spapr_tce(dev, arg);
> 
> I don't see that the SPAPR code is so easily fungible to a device
> file descriptor.  The kvm_vfio_spapr_tce data structure includes a
> groupfd, which is required to match a groupfd on the file_list.  So
> a SPAPR user cannot pass a cdev via FILE_ADD if they intend to use
> this TCE code.

SPAPR cannot use cdev at all, cdev mode only works with iommufd.

So with my other remark about blocking unbound cdevs, in SPAPR mode
you can never open a cdev and make it bound thus
kvm_vfio_file_iommu_group() and others will return NULL always for
cdev.

Thus AFAICT this is all fine.

Yi, you should also add some kconfig stuff to ensure that SPAPR always
has the group interface compiled in.

> That also makes me wonder what we're really gaining in forcing this
> generalization from group to file.  

I think it is just less code overall. Otherwise we need to needlessly
double quite a lot of stuff, rather pointlessly, IMHO.

I'm still thinking about proposing to just delete all this SPAPR
stuff. Power still hasn't had the patches applied to make it work
again so it seems to all be dead.

Jason

  reply	other threads:[~2023-02-14 23:25 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13 15:13 [PATCH v3 00/15] Add vfio_device cdev for iommufd support Yi Liu
2023-02-13 15:13 ` [PATCH v3 01/15] vfio: Allocate per device file structure Yi Liu
2023-02-13 15:13 ` [PATCH v3 02/15] vfio: Refine vfio file kAPIs Yi Liu
2023-02-13 15:13 ` [PATCH v3 03/15] vfio: Accept vfio device file in the driver facing kAPI Yi Liu
2023-02-13 23:21   ` Alex Williamson
2023-02-14  2:19     ` Liu, Yi L
2023-02-13 23:43   ` Jason Gunthorpe
2023-02-14  2:02     ` Liu, Yi L
2023-02-14  7:19       ` Liu, Yi L
2023-02-17 10:55         ` Liu, Yi L
2023-02-17 15:59           ` Jason Gunthorpe
2023-02-18  2:54             ` Liu, Yi L
2023-02-15 12:38       ` Jason Gunthorpe
2023-02-15 14:43         ` Liu, Yi L
2023-02-15 14:46           ` Jason Gunthorpe
2023-02-15 15:32             ` Alex Williamson
2023-02-15 17:04               ` Jason Gunthorpe
2023-02-15 17:19                 ` Alex Williamson
2023-02-15 17:33                   ` Jason Gunthorpe
2023-02-13 15:13 ` [PATCH v3 04/15] kvm/vfio: Rename kvm_vfio_group to prepare for accepting vfio device fd Yi Liu
2023-02-13 15:13 ` [PATCH v3 05/15] kvm/vfio: Accept vfio device file from userspace Yi Liu
2023-02-14 22:26   ` Alex Williamson
2023-02-14 23:25     ` Jason Gunthorpe [this message]
2023-02-14 23:42       ` Alex Williamson
2023-02-15  0:17         ` Jason Gunthorpe
2023-02-15  0:27           ` Timothy Pearson
2023-02-17  5:34           ` Liu, Yi L
2023-02-17  5:48             ` Liu, Yi L
2023-02-17 16:00               ` Jason Gunthorpe
2023-02-15  7:37       ` Liu, Yi L
2023-02-13 15:13 ` [PATCH v3 06/15] vfio: Pass struct vfio_device_file * to vfio_device_open/close() Yi Liu
2023-02-13 15:13 ` [PATCH v3 07/15] vfio: Block device access via device fd until device is opened Yi Liu
2023-02-14 22:46   ` Alex Williamson
2023-02-15  6:12     ` Liu, Yi L
2023-02-13 15:13 ` [PATCH v3 08/15] vfio: Add infrastructure for bind_iommufd from userspace Yi Liu
2023-02-13 15:13 ` [PATCH v3 09/15] vfio-iommufd: Add detach_ioas support for physical VFIO devices Yi Liu
2023-02-14  8:05   ` Tian, Kevin
2023-02-13 15:13 ` [PATCH v3 10/15] vfio-iommufd: Add detach_ioas for emulated " Yi Liu
2023-02-14  8:06   ` Tian, Kevin
2023-02-13 15:13 ` [PATCH v3 11/15] vfio: Add cdev_device_open_cnt to vfio_group Yi Liu
2023-02-14  8:18   ` Tian, Kevin
2023-02-13 15:13 ` [PATCH v3 12/15] vfio: Make vfio_device_open() single open for device cdev path Yi Liu
2023-02-14  8:25   ` Tian, Kevin
2023-02-13 15:13 ` [PATCH v3 13/15] vfio: Add cdev for vfio_device Yi Liu
2023-02-14  8:32   ` Tian, Kevin
2023-02-14  8:35     ` Liu, Yi L
2023-02-13 15:13 ` [PATCH v3 14/15] vfio: Add ioctls for device cdev using iommufd Yi Liu
2023-02-14  8:53   ` Tian, Kevin
2023-02-14 23:39   ` Yan Zhao
2023-02-15  2:04     ` Tian, Kevin
2023-02-15  7:37       ` Liu, Yi L
2023-02-16  8:24   ` Yan Zhao
2023-02-16  9:10     ` Liu, Yi L
2023-02-16  9:23       ` Yan Zhao
2023-02-16 10:28         ` Liu, Yi L
2023-02-16 14:24           ` Jason Gunthorpe
2023-02-13 15:13 ` [PATCH v3 15/15] vfio: Compile group optionally Yi Liu
2023-02-13 19:47 ` [PATCH v3 00/15] Add vfio_device cdev for iommufd support Alex Williamson
2023-02-13 23:21   ` Jason Gunthorpe
2023-02-14 15:15     ` Liu, Yi L
2023-02-14 15:54       ` Alex Williamson
2023-02-14 16:48         ` Jason Gunthorpe
2023-02-14  1:55   ` Liu, Yi L
2023-02-14 15:47     ` Alex Williamson
2023-02-15  7:54       ` Liu, Yi L
2023-02-15 20:09         ` Alex Williamson
2023-02-16  2:53           ` Liu, Yi L

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=Y+wYX34sPvPQmGSr@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=alex.williamson@redhat.com \
    --cc=chao.p.peng@linux.intel.com \
    --cc=cohuck@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=jasowang@redhat.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=lulu@redhat.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=nicolinc@nvidia.com \
    --cc=peterx@redhat.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=yi.l.liu@intel.com \
    --cc=yi.y.sun@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).