Page 1 of 1

Finally! A fix for Intel KMS cursor lag!

Posted: 29. Oct 2011, 05:04
by GJones
Those of you with Intel chipsets may have noticed that the mouse cursor skips and lags when your system does certain things - changing the wallpaper, starting Wine, stuff like that. You may also have noticed kworker kernel threads eating up a steady ~1% CPU power. Well, as long as you're using a Salix standard kernel (or later version), this puts a stop to both issues:

Code: Select all

echo N > /sys/module/drm_kms_helper/parameters/poll
(Courtesy of this blog: ... 2-35-2-36/)

You can of course add that to rc.local. Alternatively, you can put

Code: Select all

options drm_kms_helper poll=N
in a file in /etc/modprobe.d, but that may or may not work (though I'll bet it works on Salix, as drm_kms_helper is compiled as a module). In any case, though, turning off KMS polling definitely seems to work for me; after I did it, the kworker threads stopped using obvious amounts of CPU time, and the cursor lag when starting Wine disappeared.

The only questions I have now are... What the heck does KMS polling do; why on Earth does it have to be disabled to prevent this nuisance; and why is the kernel still configured this way by default, dozens of versions after this bug appeared?

Edit: aha, it looks like KMS polling polls the monitor to automatically detect display changes... And in the process creates a ton of overhead on certain hardware (i.e. almost every machine that uses KMS). Is it just me or is that totally bonkers?

Edit again: if you've compiled drm_kms_helper into the kernel, the boot option

Code: Select all

is supposed to work.