Re: [PATCHv1 7/7] vfio/mdev: Fix race conditions with mdev device life cycle APIs

From: Alex Williamson
Date: Fri Apr 26 2019 - 17:58:52 EST


On Fri, 26 Apr 2019 19:02:40 +0000
Parav Pandit <parav@xxxxxxxxxxxx> wrote:

> Hi Alex,
>
>
> > -----Original Message-----
> > From: Alex Williamson <alex.williamson@xxxxxxxxxx>
> > Sent: Friday, April 26, 2019 11:09 AM
> > To: Parav Pandit <parav@xxxxxxxxxxxx>
> > Cc: kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > kwankhede@xxxxxxxxxx; cjia@xxxxxxxxxx
> > Subject: Re: [PATCHv1 7/7] vfio/mdev: Fix race conditions with mdev device
> > life cycle APIs
>
> [..]
>
> > > > >
> > > > > > Patch 6 looks ok, except I'd rather see the sanitizing loop stay
> > > > > > until we can otherwise fix the race above.
> > > > > I can put back the sanitizing look, once it looks valid. Will wait
> > > > > for your response.
> > > >
> > > > Yep, I think patch 6 is good w/o the removal of the sanitizing loop.
> > > > Will you repost it?
> > > >
> > > Just the patch-6 or 1 to 6?
> >
> > Your choice, please roll in reviews/acks if you repost the rest.
> >
> > > > > > Patch 7 needed more work, iirc. Thanks,
> > > > > For a moment if we assume sanitizing loop exists, than patch-7
> > > > > looks good?
> > > >
> > > > Patch 7 is a bit less trivial, so I think as we're close to the
> > > > merge window for v5.2, I'd rather push it out to be included with
> > > > the later re-works. Thanks,
> > > >
> > > I agree it little less trivial, I tried to place as much comment as possible,
> > but it is an important fix.
> > > Let me repost 6-7 and decide if it can be included or not?
> >
> > Sounds good. Thanks,
> >
> I am dropping patch-7 for today and reworking the patch-6 for now.
>
> Even after keeping that that crazy loop, I am easily able to create this below [1] call trace on adding file when mdev_remove() fails with the thread sequence we discussed above.
>
> I think this is high time, we fix the sequence to match the linux bus sequence.
> I have some cycles this week.
> Post these 6 patches,
> I like to get total 3 patches done.
> 1. fix the bus sequence
> 2. race with parent device removal
> 3. do not try to add sysfs file on remove() failure
>
> Is there any possibility above 3 patches can make to 5.2, given that merge window closes in June?
> If yes, I will get them in 2-3 days. I will test with sample drivers and mlx5 driver.
> Can we get some tests also done from Kirti also done on their hw?

It depends how soon they stabilize and how invasive they are. These
are bug fixes, so we can consider them for after the merge window
(which will close before the end of May), but the longer they take to
stabilize and the more significant the change, the more likely I'd be
to wait for 5.3. Thanks,

Alex