Intel KMS vs. UMS With Ubuntu 10.04
Last week we published benchmarks looking at the ATI Radeon KMS vs. UMS performance and found the user-space mode-setting support with the ATI driver (that is also limited to using DRI1 with these older code-paths) to perform significantly faster than the newer kernel mode-setting routes in most instances. To see how the performance difference is on the Intel side between the kernel mode-setting and user-space mode-setting implementations we ran a set of benchmarks on this side as well using Ubuntu 10.04.
Intel's Linux graphics driver was the first open-source driver to implement support for an in-kernel memory manager (in the form of the Graphics Execution Manager) followed by kernel-based mode-setting support. The GEM memory work landed with the Linux 2.6.28 kernel back in 2008 followed by the Intel KMS support and the kernel mode-setting infrastructure came with the Linux 2.6.29 kernel in early 2009. The mainline Intel KMS support is barely a year old, but support for the older user-space mode-setting code paths were already dropped. The UMS support was dropped with the xf86-video-intel 2.10 driver delivered back in January to reduce the driver's code-base, close many open bugs surrounding user-space mode-setting, and since KMS is in fact the future. Intel is right now in the process of preparing the xf86-video-intel 2.11 driver that is its second KMS-only X.Org driver release.
With Ubuntu 10.04 LTS being a Long-Term Support release for Canonical, they decided to hang onto the xf86-video-intel 2.9 driver that was the last to support both UMS and KMS. However, they have upgraded the other graphics components like Mesa and the kernel's DRM is back-ported from Linux 2.6.33. With this it makes for an interesting test case to see how the kernel mode-setting performs against user-space mode-setting before the UMS support is then dropped in Ubuntu 10.10 and it's already dropped in distributions like Fedora 13 shipping the xf86-video-intel 2.10/2.11 drivers. Kernel mode-setting support can be toggled at boot-time by adding i915.modeset=0 to the GRUB kernel boot line to boot with the user-space mode-setting support, rather than KMS which is the default with Ubuntu Lucid. Kernel mode-setting has been reportedly problematic with some of the older Intel IGPs and in select other configurations, which for those users will hopefully be worked out by Ubuntu 10.10. Using Intel i945 chipsets and newer, kernel mode-setting has continued to work reliably.
We compared the Intel UMS and KMS performance with an Intel i945 IGP (as found on many netbooks) with a Samsung NC10 using an Intel Atom N270, 2GB of system memory, a 32GB OCZ Core Series SSD, and a 1024 x 600 LVDS panel. On the software side we were using an Ubuntu 10.04 32-bit 2010-03-22 daily snapshot of the Lucid Lynx. Packages included the Linux 2.6.32-16-generic kernel, GNOME 2.29.92, X.Org Server 1.7.5, xf86-video-intel 2.9.1, and Mesa 7.7.1-devel. Originally, with this article we were also going to compare Intel's classic Mesa driver against the emerging Intel Gallium3D driver for the i915/945 chipsets, but unlike our recent Radeon Gallium3D benchmarking, the Intel Gallium3D driver was rather problematic and broken.
For comparing the UMS and KMS performance, our 3D tests included OpenArena, World of Padman, Tremulous, and Urban Terror. Tests were executed by the Phoronix Test Suite.