From the branch merge into drm-next:
The aim of this locking rework is that ioctls which a compositor should be might call for every frame (set_cursor, page_flip, addfb, rmfb and getfb/create_handle) should not be able to block on kms background activities like output detection. And since each EDID read takes about 25ms (in the best case), that always means we'll drop at least one frame.The Linux 3.9 kernel will also present improved HDA Intel audio driver support, Intel graphics improvements, deprecates Radeon UMS, and various other work to be talked about in Phoronix articles over the coming weeks.
The solution is to add per-crtc locking for these ioctls, and restrict background activities to only use the global lock. Change-the-world type of events (modeset, dpms, ...) need to grab all locks.