From: Nicolin Chen <nicolinc@nvidia.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>,
Jason Gunthorpe <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 v1 1/5] iommufd: Create access in vfio_iommufd_emulated_bind()
Date: Tue, 14 Mar 2023 23:32:39 -0700 [thread overview]
Message-ID: <ZBFmh2iAqGGb8CjK@Asurada-Nvidia> (raw)
In-Reply-To: <BN9PR11MB5276738DC59AC1B4A66AB3C38CBF9@BN9PR11MB5276.namprd11.prod.outlook.com>
On Wed, Mar 15, 2023 at 06:15:23AM +0000, Tian, Kevin wrote:
> External email: Use caution opening links or attachments
>
>
> > From: Nicolin Chen <nicolinc@nvidia.com>
> > Sent: Wednesday, March 15, 2023 9:01 AM
> >
> > Hi Jason/Kevin,
> >
> > >
> > > Perhaps we can have iommufd_access_attach/detach in this series
> > > along with a vfio_iommufd_emulated_detach_ioas, and the locking
> > > will come with another patch in replace series?
> >
> > I recall that we previously concluded that the unbind() is safe
> > to go without doing access->ops->unmap, because close_device()
> > would be called prior to the unbind().
> >
> > But, to add the vfio_iommufd_emulated_detach_ioas() in the cdev
> > series, we'd need the access->ops->unmap call, and the locking
> > and "ioas_unpin" too in the detach and attach APIs, right?
>
> yes. We need locking since detach can happen any time with
> cdev while driver is conducting pinning.
So, this preparatory series will add a pair of simple attach()
and detach() APIs. Then the cdev series will add the locking
and the ioas_unpin stuff as a rework of the detach() API.
> > I tried a bit of some update, across this series, cdev series,
> > and the replace series. Though we might be able to simplify a
> > bit of this patch/series, yet it doesn't seem to simplify the
> > changes overall, particularly in the following cdev series for
> > having an unmap() call and the locking.
> >
> > Then the replace API would mostly overlap with the attach API,
> > by only having an additional detach(), which means actually we
> > only need an iommufd_access_attach API to cover both cases...
>
> there is a subtle difference. to match the physical path:
>
> for attach we expect the existing access->ioas is either NULL or
> same as the new ioas.
>
> for replace access->ioas must exist.
>
> they need different condition checks.
I think they can be something mingled... the sample code that
I sent previously could take care of those conditions. But, I
am also thinking a bit that maybe attach() does not need the
locking? I can do a separate replace() function in this case.
Thanks
Nic
WARNING: multiple messages have this Message-ID (diff)
From: Nicolin Chen <nicolinc@nvidia.com>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: "Liu, Yi L" <yi.l.liu@intel.com>,
Jason Gunthorpe <jgg@nvidia.com>,
"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
"joro@8bytes.org" <joro@8bytes.org>,
"robin.murphy@arm.com" <robin.murphy@arm.com>,
"cohuck@redhat.com" <cohuck@redhat.com>,
"eric.auger@redhat.com" <eric.auger@redhat.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"mjrosato@linux.ibm.com" <mjrosato@linux.ibm.com>,
"chao.p.peng@linux.intel.com" <chao.p.peng@linux.intel.com>,
"yi.y.sun@linux.intel.com" <yi.y.sun@linux.intel.com>,
"peterx@redhat.com" <peterx@redhat.com>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"shameerali.kolothum.thodi@huawei.com"
<shameerali.kolothum.thodi@huawei.com>,
"lulu@redhat.com" <lulu@redhat.com>,
"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
"intel-gvt-dev@lists.freedesktop.org"
<intel-gvt-dev@lists.freedesktop.org>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
"Hao, Xudong" <xudong.hao@intel.com>,
"Zhao, Yan Y" <yan.y.zhao@intel.com>,
"Xu, Terrence" <terrence.xu@intel.com>
Subject: Re: [PATCH v1 1/5] iommufd: Create access in vfio_iommufd_emulated_bind()
Date: Tue, 14 Mar 2023 23:32:39 -0700 [thread overview]
Message-ID: <ZBFmh2iAqGGb8CjK@Asurada-Nvidia> (raw)
In-Reply-To: <BN9PR11MB5276738DC59AC1B4A66AB3C38CBF9@BN9PR11MB5276.namprd11.prod.outlook.com>
On Wed, Mar 15, 2023 at 06:15:23AM +0000, Tian, Kevin wrote:
> External email: Use caution opening links or attachments
>
>
> > From: Nicolin Chen <nicolinc@nvidia.com>
> > Sent: Wednesday, March 15, 2023 9:01 AM
> >
> > Hi Jason/Kevin,
> >
> > >
> > > Perhaps we can have iommufd_access_attach/detach in this series
> > > along with a vfio_iommufd_emulated_detach_ioas, and the locking
> > > will come with another patch in replace series?
> >
> > I recall that we previously concluded that the unbind() is safe
> > to go without doing access->ops->unmap, because close_device()
> > would be called prior to the unbind().
> >
> > But, to add the vfio_iommufd_emulated_detach_ioas() in the cdev
> > series, we'd need the access->ops->unmap call, and the locking
> > and "ioas_unpin" too in the detach and attach APIs, right?
>
> yes. We need locking since detach can happen any time with
> cdev while driver is conducting pinning.
So, this preparatory series will add a pair of simple attach()
and detach() APIs. Then the cdev series will add the locking
and the ioas_unpin stuff as a rework of the detach() API.
> > I tried a bit of some update, across this series, cdev series,
> > and the replace series. Though we might be able to simplify a
> > bit of this patch/series, yet it doesn't seem to simplify the
> > changes overall, particularly in the following cdev series for
> > having an unmap() call and the locking.
> >
> > Then the replace API would mostly overlap with the attach API,
> > by only having an additional detach(), which means actually we
> > only need an iommufd_access_attach API to cover both cases...
>
> there is a subtle difference. to match the physical path:
>
> for attach we expect the existing access->ioas is either NULL or
> same as the new ioas.
>
> for replace access->ioas must exist.
>
> they need different condition checks.
I think they can be something mingled... the sample code that
I sent previously could take care of those conditions. But, I
am also thinking a bit that maybe attach() does not need the
locking? I can do a separate replace() function in this case.
Thanks
Nic
next prev parent reply other threads:[~2023-03-15 6:33 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-08 13:13 [Intel-gfx] [PATCH v1 0/5] vfio: Make emulated devices prepared for vfio device cdev Yi Liu
2023-03-08 13:13 ` Yi Liu
2023-03-08 13:13 ` [Intel-gfx] [PATCH v1 1/5] iommufd: Create access in vfio_iommufd_emulated_bind() Yi Liu
2023-03-08 13:13 ` Yi Liu
2023-03-10 2:08 ` [Intel-gfx] " Tian, Kevin
2023-03-10 2:08 ` Tian, Kevin
2023-03-14 18:50 ` [Intel-gfx] " Nicolin Chen
2023-03-14 18:50 ` Nicolin Chen
2023-03-15 6:16 ` [Intel-gfx] " Tian, Kevin
2023-03-15 6:16 ` Tian, Kevin
2023-03-15 6:21 ` [Intel-gfx] " Nicolin Chen
2023-03-15 6:21 ` Nicolin Chen
2023-03-15 6:52 ` [Intel-gfx] " Tian, Kevin
2023-03-15 6:52 ` Tian, Kevin
2023-03-15 8:52 ` [Intel-gfx] " Liu, Yi L
2023-03-15 8:52 ` Liu, Yi L
2023-03-16 0:17 ` [Intel-gfx] " Tian, Kevin
2023-03-16 0:17 ` Tian, Kevin
2023-03-16 0:28 ` [Intel-gfx] " Nicolin Chen
2023-03-16 0:28 ` Nicolin Chen
2023-03-10 17:36 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 17:36 ` Jason Gunthorpe
2023-03-14 8:20 ` [Intel-gfx] " Nicolin Chen
2023-03-14 8:20 ` Nicolin Chen
2023-03-15 1:01 ` [Intel-gfx] " Nicolin Chen
2023-03-15 1:01 ` Nicolin Chen
2023-03-15 6:15 ` [Intel-gfx] " Tian, Kevin
2023-03-15 6:15 ` Tian, Kevin
2023-03-15 6:32 ` Nicolin Chen [this message]
2023-03-15 6:32 ` Nicolin Chen
2023-03-15 6:50 ` [Intel-gfx] " Tian, Kevin
2023-03-15 6:50 ` Tian, Kevin
2023-03-15 9:03 ` [Intel-gfx] " Nicolin Chen
2023-03-15 9:03 ` Nicolin Chen
2023-03-15 12:18 ` [Intel-gfx] " Liu, Yi L
2023-03-15 12:18 ` Liu, Yi L
2023-03-16 0:32 ` [Intel-gfx] " Nicolin Chen
2023-03-16 0:32 ` Nicolin Chen
2023-03-16 2:53 ` [Intel-gfx] " Tian, Kevin
2023-03-16 2:53 ` Tian, Kevin
2023-03-16 3:25 ` [Intel-gfx] " Nicolin Chen
2023-03-16 3:25 ` Nicolin Chen
2023-03-16 5:33 ` [Intel-gfx] " Nicolin Chen
2023-03-16 5:33 ` Nicolin Chen
2023-03-16 5:38 ` [Intel-gfx] " Tian, Kevin
2023-03-16 5:38 ` Tian, Kevin
2023-03-16 5:43 ` [Intel-gfx] " Nicolin Chen
2023-03-16 5:43 ` Nicolin Chen
2023-03-16 5:49 ` [Intel-gfx] " Tian, Kevin
2023-03-16 5:49 ` Tian, Kevin
2023-03-16 5:56 ` [Intel-gfx] " Nicolin Chen
2023-03-16 5:56 ` Nicolin Chen
2023-03-16 6:01 ` [Intel-gfx] " Liu, Yi L
2023-03-16 6:01 ` Liu, Yi L
2023-03-20 14:49 ` [Intel-gfx] " Jason Gunthorpe
2023-03-20 14:49 ` Jason Gunthorpe
2023-03-20 15:11 ` [Intel-gfx] " Yi Liu
2023-03-20 15:11 ` Yi Liu
2023-03-20 15:33 ` [Intel-gfx] " Jason Gunthorpe
2023-03-20 15:33 ` Jason Gunthorpe
2023-03-08 13:13 ` [Intel-gfx] [PATCH v1 2/5] vfio-iommufd: No need to record iommufd_ctx in vfio_device Yi Liu
2023-03-08 13:13 ` Yi Liu
2023-03-10 17:37 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 17:37 ` Jason Gunthorpe
2023-03-08 13:13 ` [Intel-gfx] [PATCH v1 3/5] vfio-iommufd: Make vfio_iommufd_emulated_bind() return iommufd_access ID Yi Liu
2023-03-08 13:13 ` Yi Liu
2023-03-10 2:08 ` [Intel-gfx] " Tian, Kevin
2023-03-10 2:08 ` Tian, Kevin
2023-03-10 17:37 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 17:37 ` Jason Gunthorpe
2023-03-08 13:13 ` [Intel-gfx] [PATCH v1 4/5] Samples/mdev: Uses the vfio emulated iommufd ops set in the mdev sample drivers Yi Liu
2023-03-08 13:13 ` Yi Liu
2023-03-10 2:10 ` [Intel-gfx] " Tian, Kevin
2023-03-10 2:10 ` Tian, Kevin
2023-03-10 17:39 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 17:39 ` Jason Gunthorpe
2023-03-08 13:13 ` [Intel-gfx] [PATCH v1 5/5] vfio: Check the presence for iommufd callbacks in __vfio_register_dev() Yi Liu
2023-03-08 13:13 ` Yi Liu
2023-03-10 2:15 ` [Intel-gfx] " Tian, Kevin
2023-03-10 2:15 ` Tian, Kevin
2023-03-10 14:04 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 14:04 ` Jason Gunthorpe
2023-03-10 14:12 ` [Intel-gfx] " Liu, Yi L
2023-03-10 14:12 ` Liu, Yi L
2023-03-10 15:25 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 15:25 ` Jason Gunthorpe
2023-03-13 1:49 ` [Intel-gfx] " Tian, Kevin
2023-03-13 1:49 ` Tian, Kevin
2023-03-10 17:39 ` [Intel-gfx] " Jason Gunthorpe
2023-03-10 17:39 ` Jason Gunthorpe
2023-03-15 12:15 ` [Intel-gfx] " Liu, Yi L
2023-03-15 12:15 ` Liu, Yi L
2023-03-08 14:28 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for vfio: Make emulated devices prepared for vfio device cdev Patchwork
2023-03-08 14:54 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2023-03-15 6:25 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for vfio: Make emulated devices prepared for vfio device cdev (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=ZBFmh2iAqGGb8CjK@Asurada-Nvidia \
--to=nicolinc@nvidia.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=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 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.