From: Alex Williamson <alex.williamson@redhat.com>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: "mjrosato@linux.ibm.com" <mjrosato@linux.ibm.com>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"Hao, Xudong" <xudong.hao@intel.com>,
"peterx@redhat.com" <peterx@redhat.com>,
"Xu, Terrence" <terrence.xu@intel.com>,
"chao.p.peng@linux.intel.com" <chao.p.peng@linux.intel.com>,
"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
"Liu, Yi L" <yi.l.liu@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"lulu@redhat.com" <lulu@redhat.com>,
"joro@8bytes.org" <joro@8bytes.org>,
"nicolinc@nvidia.com" <nicolinc@nvidia.com>,
"jgg@nvidia.com" <jgg@nvidia.com>,
"Zhao, Yan Y" <yan.y.zhao@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"eric.auger@redhat.com" <eric.auger@redhat.com>,
"intel-gvt-dev@lists.freedesktop.org"
<intel-gvt-dev@lists.freedesktop.org>,
"yi.y.sun@linux.intel.com" <yi.y.sun@linux.intel.com>,
"cohuck@redhat.com" <cohuck@redhat.com>,
"shameerali.kolothum.thodi@huawei.com"
<shameerali.kolothum.thodi@huawei.com>,
"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
"robin.murphy@arm.com" <robin.murphy@arm.com>
Subject: Re: [Intel-gfx] [PATCH v6 12/24] vfio/pci: Allow passing zero-length fd array in VFIO_DEVICE_PCI_HOT_RESET
Date: Fri, 17 Mar 2023 09:15:57 -0600 [thread overview]
Message-ID: <20230317091557.196638a6.alex.williamson@redhat.com> (raw)
In-Reply-To: <BN9PR11MB5276D5A71E43EA4CDD1C960A8CBD9@BN9PR11MB5276.namprd11.prod.outlook.com>
On Fri, 17 Mar 2023 00:57:23 +0000
"Tian, Kevin" <kevin.tian@intel.com> wrote:
> > From: Alex Williamson
> > Sent: Friday, March 17, 2023 8:23 AM
> >
> > On Thu, 16 Mar 2023 23:29:21 +0000
> > "Tian, Kevin" <kevin.tian@intel.com> wrote:
> >
> > > > From: Alex Williamson
> > > > Sent: Friday, March 17, 2023 2:46 AM
> > > >
> > > > On Wed, 15 Mar 2023 23:31:23 +0000
> > > > "Tian, Kevin" <kevin.tian@intel.com> wrote:
> > > >
> > > > > > From: Alex Williamson <alex.williamson@redhat.com>
> > > > > > Sent: Thursday, March 16, 2023 6:53 AM
> > > > > > I'm afraid this proposal reduces or eliminates the handshake we have
> > > > > > with userspace between VFIO_DEVICE_GET_PCI_HOT_RESET_INFO
> > and
> > > > > > VFIO_DEVICE_PCI_HOT_RESET, which could promote userspace to
> > ignore
> > > > the
> > > > > > _INFO ioctl altogether, resulting in drivers that don't understand the
> > > > > > scope of the reset. Is it worth it? What do we really gain?
> > > > >
> > > > > Jason raised the concern whether GET_PCI_HOT_RESET_INFO is actually
> > > > > useful today.
> > > > >
> > > > > It's an interface on opened device. So the tiny difference is whether the
> > > > > user knows the device is resettable when calling GET_INFO or later
> > when
> > > > > actually calling PCI_HOT_RESET.
> > > >
> > > > No, GET_PCI_HOT_RESET_INFO conveys not only whether a
> > PCI_HOT_RESET
> > > > can
> > > > be performed, but equally important the scope of the reset, ie. which
> > > > devices are affected by the reset. If we de-emphasize the INFO
> > > > portion, then this easily gets confused as just a variant of
> > > > VFIO_DEVICE_RESET, which is explicitly a device-level cscope reset. In
> > > > fact, I'd say the interface is not only trying to validate that the
> > > > user has sufficient privileges for the reset, but that they explicitly
> > > > acknowledge the scope of the reset.
> > > >
> > >
> > > IMHO the usefulness of scope is if it's discoverable by the management
> > > stack which then can try to assign devices with affected reset to a same
> > > user.
> >
> > Disagree, the user needs to know the scope of reset. Take for instance
> > two function of a device configured onto separate buses within a VM.
> > The VMM needs to know that a hot-reset of one will reset the other.
> > That's not obvious to the VMM without some understanding of PCI/e
> > topology and analysis of the host system. The info ioctl simplifies
> > that discovery for the VMM and the handshake of passing the affected
> > groups makes sure that the info ioctl remains relevant.
>
> If that is the intended usage then I don't see why this proposal will
> promote userspace to ignore the _INFO ioctl. It should be always
> queried no matter how the reset ioctl itself is designed. The motivation
> of calling _INFO is not from the reset ioctl asking for an array of fds.
The VFIO_DEVICE_PCI_HOT_RESET ioctl requires a set of group (or cdev)
fds that encompass the set of affected devices reported by the
VFIO_DEVICE_GET_PCI_HOT_RESET_INFO ioctl, so I don't agree with the
last sentence above.
This proposal seems to be based on some confusion about the difference
between VFIO_DEVICE_RESET and VFIO_DEVICE_PCI_HOT_RESET, and therefore
IMO, proliferates that confusion by making the scope argument optional,
which I see as a key difference. This therefore makes the behavior of
the ioctl less intuitive, easier to get wrong, and I expect we'll see
users unitentionally resetting devices beyond the desired scope if the
group/device fd array is allowed to be empty. Thanks,
Alex
next prev parent reply other threads:[~2023-03-17 15:16 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-08 13:28 [Intel-gfx] [PATCH v6 00/24] cover-letter: Add vfio_device cdev for iommufd support Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 01/24] vfio: Allocate per device file structure Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 02/24] vfio: Refine vfio file kAPIs for KVM Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 03/24] vfio: Accept vfio device file in the KVM facing kAPI Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 04/24] kvm/vfio: Rename kvm_vfio_group to prepare for accepting vfio device fd Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 05/24] kvm/vfio: Accept vfio device file from userspace Yi Liu
2023-03-22 14:10 ` Xu Yilun
2023-03-28 3:48 ` Liu, Yi L
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 06/24] vfio: Pass struct vfio_device_file * to vfio_device_open/close() Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 07/24] vfio: Block device access via device fd until device is opened Yi Liu
2023-03-10 4:50 ` Tian, Kevin
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 08/24] vfio/pci: Update comment around group_fd get in vfio_pci_ioctl_pci_hot_reset() Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 09/24] vfio/pci: Only need to check opened devices in the dev_set for hot reset Yi Liu
2023-03-10 5:00 ` Tian, Kevin
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 10/24] vfio/pci: Rename the helpers and data in hot reset path to accept device fd Yi Liu
2023-03-10 5:01 ` Tian, Kevin
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 11/24] vfio/pci: Accept device fd in VFIO_DEVICE_PCI_HOT_RESET ioctl Yi Liu
2023-03-10 5:08 ` Tian, Kevin
2023-03-10 5:38 ` Liu, Yi L
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 12/24] vfio/pci: Allow passing zero-length fd array in VFIO_DEVICE_PCI_HOT_RESET Yi Liu
2023-03-10 5:31 ` Tian, Kevin
2023-03-10 6:04 ` Liu, Yi L
2023-03-10 9:08 ` Tian, Kevin
2023-03-10 17:42 ` Jason Gunthorpe
2023-03-15 22:53 ` Alex Williamson
2023-03-15 23:31 ` Tian, Kevin
2023-03-16 3:54 ` [Intel-gfx] [offlist] " Liu, Yi L
2023-03-16 6:09 ` [Intel-gfx] " Tian, Kevin
2023-03-16 6:28 ` Liu, Yi L
2023-03-16 6:49 ` Nicolin Chen
2023-03-16 13:22 ` Liu, Yi L
2023-03-16 21:27 ` Nicolin Chen
2023-03-16 18:45 ` Alex Williamson
2023-03-16 23:29 ` Tian, Kevin
2023-03-17 0:22 ` Alex Williamson
2023-03-17 0:57 ` Tian, Kevin
2023-03-17 15:15 ` Alex Williamson [this message]
2023-03-20 17:14 ` Jason Gunthorpe
2023-03-20 22:52 ` Alex Williamson
2023-03-20 23:39 ` Jason Gunthorpe
2023-03-21 20:31 ` Alex Williamson
2023-03-21 20:50 ` Jason Gunthorpe
2023-03-21 21:01 ` Alex Williamson
2023-03-21 22:20 ` Jason Gunthorpe
2023-03-21 22:47 ` Alex Williamson
2023-03-22 4:42 ` Liu, Yi L
2023-03-22 12:23 ` Alex Williamson
2023-03-22 12:27 ` Jason Gunthorpe
2023-03-22 12:36 ` Alex Williamson
2023-03-22 12:47 ` Jason Gunthorpe
2023-03-24 9:09 ` Tian, Kevin
2023-03-24 13:14 ` Jason Gunthorpe
2023-03-22 8:17 ` Liu, Yi L
2023-03-22 12:17 ` Jason Gunthorpe
2023-03-22 13:33 ` Liu, Yi L
2023-03-22 13:43 ` Jason Gunthorpe
2023-03-23 3:15 ` Liu, Yi L
2023-03-23 12:02 ` Jason Gunthorpe
2023-03-24 9:25 ` Liu, Yi L
2023-03-27 11:57 ` Liu, Yi L
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 13/24] vfio/iommufd: Split the compat_ioas attach out from vfio_iommufd_bind() Yi Liu
2023-03-10 8:08 ` Tian, Kevin
2023-03-10 8:22 ` Liu, Yi L
2023-03-10 9:10 ` Tian, Kevin
2023-03-11 10:24 ` Liu, Yi L
2023-03-13 2:06 ` Tian, Kevin
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 14/24] vfio: Add cdev_device_open_cnt to vfio_group Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 15/24] vfio: Make vfio_device_open() single open for device cdev path Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 16/24] vfio: Make vfio_device_first_open() to cover the noiommu mode in " Yi Liu
2023-03-10 8:30 ` Tian, Kevin
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 17/24] vfio-iommufd: Make vfio_iommufd_bind() selectively return devid Yi Liu
2023-03-10 8:31 ` Tian, Kevin
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 18/24] vfio-iommufd: Add detach_ioas support for physical VFIO devices Yi Liu
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 19/24] vfio-iommufd: Add detach_ioas support for emulated " Yi Liu
2023-03-10 23:42 ` Nicolin Chen
2023-03-15 6:15 ` Liu, Yi L
2023-03-15 6:25 ` Nicolin Chen
2023-03-08 13:28 ` [Intel-gfx] [PATCH v6 20/24] vfio: Add cdev for vfio_device Yi Liu
2023-03-10 8:48 ` Tian, Kevin
2023-03-10 9:59 ` Liu, Yi L
2023-03-08 13:29 ` [Intel-gfx] [PATCH v6 21/24] vfio: Add VFIO_DEVICE_BIND_IOMMUFD Yi Liu
2023-03-10 9:01 ` Tian, Kevin
2023-03-10 9:58 ` Liu, Yi L
2023-03-10 10:06 ` Tian, Kevin
2023-03-15 4:40 ` Liu, Yi L
2023-03-15 6:57 ` Tian, Kevin
2023-03-20 14:09 ` Jason Gunthorpe
2023-03-20 14:31 ` Yi Liu
2023-03-20 17:16 ` Jason Gunthorpe
2023-03-21 1:30 ` Tian, Kevin
2023-03-21 12:00 ` Jason Gunthorpe
2023-03-21 14:37 ` Liu, Yi L
2023-03-21 14:41 ` Jason Gunthorpe
2023-03-21 14:51 ` Liu, Yi L
2023-03-21 14:58 ` Jason Gunthorpe
2023-03-21 15:10 ` Liu, Yi L
2023-03-21 16:54 ` Jason Gunthorpe
2023-03-08 13:29 ` [Intel-gfx] [PATCH v6 22/24] vfio: Add VFIO_DEVICE_AT[DE]TACH_IOMMUFD_PT Yi Liu
2023-03-08 13:29 ` [Intel-gfx] [PATCH v6 23/24] vfio: Compile group optionally Yi Liu
2023-03-10 9:03 ` Tian, Kevin
2023-03-08 13:29 ` [Intel-gfx] [PATCH v6 24/24] docs: vfio: Add vfio device cdev description Yi Liu
2023-03-14 11:02 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for cover-letter: Add vfio_device cdev for iommufd support Patchwork
2023-03-24 10:39 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for cover-letter: Add vfio_device cdev for iommufd support (rev2) Patchwork
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=20230317091557.196638a6.alex.williamson@redhat.com \
--to=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=jgg@nvidia.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=terrence.xu@intel.com \
--cc=xudong.hao@intel.com \
--cc=yan.y.zhao@intel.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).