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

From: Tian, Kevin
Date: Wed Sep 22 2021 - 10:01:17 EST


> 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?