Finally! A fix for Intel KMS cursor lag!
Posted: 29. Oct 2011, 05:04
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:
(Courtesy of this blog: http://souriguha.wordpress.com/2011/03/ ... 2-35-2-36/)
You can of course add that to rc.local. Alternatively, you can put
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
is supposed to work.
Code: Select all
echo N > /sys/module/drm_kms_helper/parameters/poll
You can of course add that to rc.local. Alternatively, you can put
Code: Select all
options drm_kms_helper poll=N
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
drm_kms_helper.poll=0