KMS Locking Pulled Into Queue For Linux 3.9 Kernel

Posted by Michael Larabel on February 07, 2013

Intel's work on kernel mode-setting locking has been pulled into the drm-next repository for merging into the Linux 3.9 kernel as one of several open-source Linux graphics driver changes for this next kernel release.

As far as what KMS locking means for users, Daniel Vetter has described it in a detailed blog post. Vetter explains, "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 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."

However, making this locking work right isn't too easy. There's still some work ahead before there's "perfect page-flip" support for the Linux kernel. "The downside of this all is that we can now enable some really paranoid inter-frame jitter checks and vblank counter timestamp checks in the kms_flip testcase. After all, no frames should be dropped any longer. But it turns out that a lot of the different platforms still have small issues here and there with races and other inconsistencies like completing a page flip immediately right after a modeset. So there's still plenty of work to do until we have perfect pageflip support. And there's also a few funny issues like racing gpu hangs against pageflips, client crashes against pageflips or trying to flip overlays and cursor on the same vblank as the underlying framebuffer."

Other Linux 3.9 DRM graphics features are covered in Intel's Linux DRM Driver Plans For 2013, the no-reloc optimization, Haswell improvements, and several other changes.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. SQLite Now Faster With Memory Mapped I/O
  2. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  3. Qt For Tizen Launches, Based On Qt 5.1
  4. KTAP Released For Linux Kernel Dynamic Tracing
  5. Linux 3.10-rc2 Kernel Takes In A Few Extra Pulls
  6. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  7. Handbrake 0.9.9 Supports OpenCL Offloading
  8. Freedreno Gallium3D Now Banging The Adreno A3XX
  9. Jolla Announces Their First Phone
  10. Mageia 3 Released, Still Using Legacy GRUB
  11. NetBSD 6.1 Brings In More Features
Latest Forum Talk
  1. Qt For Tizen Launches, Based On Qt 5.1
  2. Microsoft Releases Skype For Linux 4.2, Has...
  3. Intel Linux OpenGL Driver Leading Over Apple OS X
  4. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  5. Jolla Announces Their First Phone
  6. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite