The Cost Of ATI Kernel Mode-Setting On Fedora 12
One of the articles on Phoronix last week was entitled Intel Linux Graphics Shine With Fedora 12, which showed off the nice state of Intel graphics on this latest Red Hat release when it came to kernel mode-setting and its 3D stack with it working well "out of the box" and offering some nice performance gains over the earlier Fedora 10 and Fedora 11 releases. While the Intel stack may be improved in Constantine, the ATI support has taken a hit, as users were quick to point out in response to last week's article. In particular, when using the ATI kernel mode-setting driver in Fedora 12 (which is the default for pre-R600 hardware), there is a large performance discrepancy compared to using the traditional user-space mode-setting for ATI Radeon hardware. Today we are looking at what exactly the performance cost is for using ATI KMS in this new release.
Fedora has been shipping ATI kernel mode-setting support for the R500 series going back to the Fedora 10 release. ATI kernel mode-setting support did not appear in the mainline Linux kernel until recently when it entered the Linux 2.6.31 kernel as a staging driver, where it continues to remain today. Internally the ATI kernel mode-setting code is dependent upon TTM, which also entered the Linux 2.6.31 kernel. Kernel mode-setting and 3D support for the newer ATI R600/700 (Radeon HD 2000, 3000, 4000 series) has been actively under development for some months and can now be found in the "master" branches for most of the code repositories. However, this support is not enabled by default in Fedora 12 for the R600/700 series but will be with Fedora 13. Users though can easily enable R600/700 3D in Fedora 12, which has worked out well for many users. Fedora 12 is shipping with the Linux 22.214.171.124 kernel, X Server 1.7.1, xf86-video-radeon 6.12.99, and Mesa 7.7-devel.
To see what some ATI Fedora users have been complaining about with kernel mode-setting killing their 2D and 3D performance in this release, we ran a set of tests on Fedora 12 (x86_64) using the stock kernel mode-setting configuration and then again when forcing Fedora 12 to use the traditional user-space mode-setting paths (by passing nomodeset to GRUB). An easy way to see whether you are using kernel mode-setting is by seeing whether or not Plymouth is displaying a nice splash screen during the boot process or if it has reverted to its fail-safe progress bar. For some of the tests we also have the results from Fedora 10 with its initial 3D/KMS support for the R500 series on the same system. Fedora 11 results were not gathered due to errors. Like always, the rest of the clean Fedora installations were left in their stock configurations.
The hardware we ran for this round of ATI Fedora 12 testing included an AMD Phenom II X3 710, an ECS A785GM-M v1.0 motherboard, 2GB of DDR3 system memory, a 64GB OCZ Agility EX SSD, and then an ATI Radeon X1800XT 256MB (R520) graphics card. With this hardware the tests we ran included 1080p H.264 video playback, Urban Terror, World of Padman, and the Unreal Tournament 2004 Demo. This should provide a quick look at how the 3D performance is in Fedora 12 for ATI Radeon R500 hardware under both kernel and user-space mode-setting paths. Of course, all of this testing was done under the Phoronix Test Suite.