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. The Cost Of Ubuntu Disk Encryption
  2. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  3. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  4. F2FS File-System Shows Regressions On Linux 3.10
Latest Linux News
  1. Jolla Announces Their First Phone
  2. Mageia 3 Released, Still Using Legacy GRUB
  3. NetBSD 6.1 Brings In More Features
  4. Using Six Monitors With AMD's Open-Source Linux Driver
  5. Benchmarking The Intel P-State, CPUfreq Changes
  6. FreeBSD Still Working On Next-Gen Package Manager
  7. DNF Still Advancing As Experimental Yum For Fedora
  8. Logitech Begins Supporting Linux Users
  9. Modern Intel Gallium3D Driver Still Being Toyed With
  10. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  11. GCC 4.8.1 Compiler Due To Be Out Next Week
Latest Forum Talk
  1. Jolla Announces Their First Phone
  2. Radeon Gallium3D Gets Important Cayman Fixes
  3. Ubuntu Looks Towards MySQL Alternatives
  4. Mageia 3 Released, Still Using Legacy GRUB
  5. DRM Moves Ahead With HTML5 Specification
  6. The Cost Of Ubuntu Disk Encryption
  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