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

From: Jason Gunthorpe
Date: Wed Sep 22 2021 - 08:40:40 EST


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.

Jason