Test Driving The QEMU-KVM KMS Driver

Written by Michael Larabel in Display Drivers on 19 April 2011 at 04:00 AM EDT. Page 1 of 2. 3 Comments.

Just hours ago a new Linux KMS driver entered the world for the Cirrus GPU. Yes, as in that from Cirrus Logic for an ancient CL-GD5446 ASIC, this was a 2D-only 64-bit VisualMedia accelerator. But, fortunately, it is not for the actual hardware itself but rather the virtual incarnation that is emulated by QEMU and QEMU-KVM. Those running a Linux KVM virtualization stack with QEMU and the Cirrus adapter can now benefit from a kernel mode-setting driver.

Read Finally It Comes: A KMS Driver For QEMU-KVM from when the announcement was issued a few hours ago, for my history on the Linux virtualization GPU situation and initial take on this Cirrus KMS driver created by Red Hat. This KMS-only driver does not provide any 2D acceleration that is passed onto the host or anything, but just relies upon a shadow frame-buffer. So it is not nearly as advanced as what's offered by VirtualBox or VMware where there is not only 2D acceleration but also OpenGL / DirectX acceleration on the GPU. Granted, it is better than before: just a Cirrus X.Org DDX driver that does not do much good, and a step in the right direction.

Immediately after writing that article I began building a new kernel from the Linus Torvald's tree after patching it with this ~1,300 line driver from Red Hat's Matthew Garrett. The initial testing was done on an Ubuntu 10.10 guest and host using its KVM virtualization stack. This was running off a Lenovo ThinkPad W510 notebook with an Intel Core i7 CPU and NVIDIA Quadro FX 4500M graphics. Without any changes to the host, the patched kernel with the Cirrus DRM driver on the guest worked without fault.

This driver for QEMU's default GPU, the Cirrus CL-GD5446, is also now enough to make Red Hat's Plymouth boot-screen work during the boot process for guests. Plymouth was one of the early projects to be dependent upon the KMS API. The virtual terminal is also nicer with KMS and there's better debugging opportunities. It also makes it closer to being able to run the Wayland Display Server in a virtualized environment with QEMU, but that's not possible without Mesa / Gallium3D support and full-blown DRM memory management materializing for QEMU guests.


Related Articles