1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking Benchmarking Platform
Phoromatic Test Orchestration

A Preview Of Kernel-Based Mode-Setting

Michael Larabel

Published on 19 April 2008
Written by Michael Larabel
Page 1 of 4 - 9 Comments

There are many new and innovative features brewing within the X.Org development community right now -- among the many are Gallium3D, the TTM memory manager, and MPX (Multi-Pointer X) -- but one of the features that has risen towards the top of the list and delivers visible benefits to the end-user is kernel-based mode-setting. As implied by its name, kernel mode-setting involves moving the mode-setting code for video adapters from the user-space X server drivers into the Linux kernel. This may seem like an uninteresting topic for end-users, but having the mode-setting done in the kernel allows for a cleaner and richer boot process, improved suspend and resume support, and more reliable VT switching (along with other advantages). Kernel mode-setting isn't yet in the mainline Linux kernel nor is the API for it frozen, but Fedora 9 shipping next month will be the first major distribution carrying this initial support. In this article we're looking more closely at kernel mode-setting with the Intel X.Org driver as well as showing videos of kernel-based mode-setting in action.

There is currently work underway in porting the Radeon driver to do kernel mode-setting (the driver is named radeon_ms), but for Fedora 9 the only X.Org driver with this support is the open-source Intel driver. Support for the kernel mode-setting interaction isn't in the mainline xf86-video-intel driver, but the Fedora 9 Intel driver is based upon the intel-kernelmode branch. The intel-kernelmode branch is in turn based upon the intel-batchbuffer branch. Intel-batchbuffer is also the branch that contains the initial DRI2 support, TTM memory management, Render improvements, and other bleeding-edge advancements. Other drivers will turn to using kernel mode-setting once the API is stabilized and can be found in the mainline Linux kernel. On the Mesa/DRM side is a modesetting-101 branch.

Suspend and resume support is improved with kernel mode-setting as the kernel no longer relies upon external resources for restoring the graphics adapters. With the process now being in-kernel, it's able to restore the mode automatically and more quickly. Likewise, virtual terminal switching is also improved as a result. Kernel mode-setting will also allow for an improved debugging experience, as this will eliminate the "hard hang" and make it possible to display a graphical error message (think the "Blue Screen of Death" for Linux). This technology leads to a flicker-free boot experience by only needing to set the video mode once, instead of turning on and off when starting the boot process (in the case of Fedora, with Red Hat Graphical Boot) and then properly initializing the device when the X server has finally started and loading the GNOME Display Manager. Kernel mode-setting has been one of the items on Keith Packard's (Intel) list of features for a happy Linux desktop.

The kernel mode-setting components ship by default with Fedora 9, but the Intel kernel mode-setting isn't enabled by default. In order to make the switch, i915.modeset=1 must be set as one of the kernel command line arguments through GRUB on boot or modifying /boot/grub/grub.conf. Until kernel mode-setting is used by default, this command is necessary to let the system know to use this method as opposed to mode-setting via the user-space X driver.

Latest Articles & Reviews
  1. Sub-$20 802.11n USB WiFi Adapter That's Linux Friendly
  2. The Lenovo T450s Is Working Beautifully With Linux
  3. Linux 4.0 SSD EXT4 / Btrfs / XFS / F2FS Benchmarks
  4. Linux 4.0 Hard Drive Comparison With Six File-Systems
  5. Lenovo ThinkPad T450s Broadwell Preview
  6. How Open-Source Allowed Valve To Implement VULKAN Much Faster On The Source 2 Engine
Latest Linux News
  1. GCC 5.1 RC2 Arrives, GCC 5.1 Planned For Next Week
  2. F2FS For Linux 4.1 Has New Features & Fixes
  3. Phoronix Server Upgrade This Weekend: Dual Haswell Xeons, 96GB DDR4
  4. Google's Experimental QUIC Transport Protocol Is Showing Promise
  5. Red Hat Joins Khronos, The Group Behind OpenGL & Vulkan
  6. NetworkManager Drops WiMAX Support
  7. Wine 1.7.41 Works More On Kernel Job Objects, MSI Patches
  8. Linux 4.1 Has Improvements For The Multi-Queue Block Layer
  9. X.Org Looks To Have Six Summer Projects
  10. DragonFlyBSD Pulls In GCC 5 Compiler
Most Viewed News This Week
  1. Nouveau: NVIDIA's New Hardware Is "VERY Open-Source Unfriendly"
  2. Linux 4.0 Kernel Released
  3. Microsoft Announces An LLVM-Based Compiler For .NET
  4. Linux 4.1 Brings Many Potentially Risky x86/ASM Changes
  5. Encryption Support For EXT4
  6. VirtualBox 5.0 Beta 2 Released
  7. Mozilla Start Drafting Plans To Deprecate Insecure HTTP
  8. Elementary OS 0.3 "Freya" Now Available