Messages in this thread | | | Date | Fri, 18 Dec 2009 11:27:29 +1000 | Subject | Re: [PATCH] drm: convert drm_ioctl to unlocked_ioctl | From | Dave Airlie <> |
| |
On Thu, Dec 17, 2009 at 8:17 AM, Arnd Bergmann <arnd@arndb.de> wrote: > drm_ioctl is called with the Big Kernel Lock held, > which shows up very high in statistics on vfs_ioctl. > > Moving the lock into the drm_ioctl function itself > makes sure we blame the right subsystem and it gets > us one step closer to eliminating the locked version > of fops->ioctl. > > Since drm_ioctl does not require the lock itself, > we only need to hold it while calling the specific > handler. The 32 bit conversion handlers do not > interact with any other code, so they don't need > the BKL here either and can just call drm_ioctl. > > As a bonus, this cleans up all the other users > of drm_ioctl which now no longer have to find > the inode or call lock_kernel. >
This looks good, I've taken this and I've squashed the generic pieces of your RFC into this (i.e. I haven't modified the drivers, but just added the flag to allow the ioctls to be unlocked if the driver selects them).
Do you think we should try and get this in soon, its seems like it shouldn't have any regressions unless we start switching drivers over.
Dave.
| |