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