Re: [RFC 01/20] iommu/iommufd: Add /dev/iommu core

From: Jason Gunthorpe
Date: Wed Sep 22 2021 - 10:11:06 EST


On Wed, Sep 22, 2021 at 01:59:39PM +0000, Tian, Kevin wrote:
> > From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> > Sent: Wednesday, September 22, 2021 8:41 PM
> >
> > On Wed, Sep 22, 2021 at 01:51:03AM +0000, Tian, Kevin wrote:
> > > > From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> > > > Sent: Tuesday, September 21, 2021 11:42 PM
> > > >
> > > > - Delete the iommufd_ctx->lock. Use RCU to protect load, erase/alloc
> > does
> > > > not need locking (order it properly too, it is in the wrong order), and
> > > > don't check for duplicate devices or dev_cookie duplication, that
> > > > is user error and is harmless to the kernel.
> > > >
> > >
> > > I'm confused here. yes it's user error, but we check so many user errors
> > > and then return -EINVAL, -EBUSY, etc. Why is this one special?
> >
> > Because it is expensive to calculate and forces a complicated locking
> > scheme into the kernel. Without this check you don't need the locking
> > that spans so much code, and simple RCU becomes acceptable.
>
> In case of duplication the kernel just uses the first entry which matches
> the device when sending an event to userspace?

Sure

Jason