[How to] Solve problem with Intel graphics caused by high CPU usage of Kslowd / Kworker – Linux kernel 2.35 – 3.8
EDIT on 05/11/2013: On Kernel 3.8.x you may have to add echo N> /sys/module/drm_kms_helper/parameters/poll to /etc/rc.local (before exit 0) to fix the issue.
EDIT on 05/21/2013: On Kernel 3.8.x – 3.9-rc5 a regression causes an irq storm from the i915 and the drm polling parameter is somehow ignored, and the suggested fix won’t work anymore. If you are experiencing the issue: 1) Downgrade to a different kernel, preferably 3.2.x 2) Add echo N> /sys/module/drm_kms_helper/parameters/poll to /etc/rc.local (before exit 0) OR add drm_kms_helper.poll=0 to grub boot parameters, to bring your system back to sanity.
This is just a workaround, track the issue here: https://patchwork.kernel.org/patch/2400621/
Some minor issues with the Linux kernel release starting from version 2.35 causes the X-Server on the system to perform miserably. I started experiencing the problem ever since I upgraded to kernel 2.35. It became almost unusable to use by laptop so I’m summing all the information I gathered from various Bug reports.
And yeah, the solution to it of course
Affects: Lots of computers with the Intel Graphics Accelerator
- Kernel 2.35* : Mouse freezes intermittently some time after boot up. Keyboard activity is good. This results in an almost unusable desktop environment. Top will report the high CPU usage by 3-4 processes named – kslowd000, kslowd001, kslowd002 …
- Kernel 2.36* : Mouse freezes some time after boot up. This is more like a permanent freeze and system activity is impossible. Only solution is to reboot but it’s just a matter of a moment that the problem will come back.
- Type ‘uname -a’ to the shell to find out the version of kernel you are using. uname will return something like:
Linux souri.razr 188.8.131.52-11.fc15.i686 #1 SMP Fri Dec 3 12:38:48 UTC 2010 i686 i686 i386 GNU/Linux
- Here 184.108.40.206.-11 shows which version of kernel I’m using right now.
- For those of you using some kernel that has version 2.36.* proceed to step 5.
- For those of you using kernel 2.35.* , a kernel upgrade is required. Nothing to be scared of! Just need to type in:
This should update your kernel to the latest version that your distribution provides. Uname should now report a kernel version >=2.36.The update to kernel >=2.36 is essential because it enable a feature to disable the DRM_KMS_POLLING feature of the kernel. It is bot possible to disable DRM_KMS_POLLING for the 2.5 kernel. Maybe in some future bug-fix release of the 2.35 kernel they are going to patch this.
#yum update kernel [in Fedora] or #apt-get upgrade #apt-get install kernel[in Ubuntu]
- Reboot your system with the new kernel.
- Open shell and become root.
#echo N> /sys/module/drm_kms_helper/parameters/pollThis should drastically reduce the system load and put your system back to normal.
- Note that this will only be sustained till system reboot. After reboot the value will revert back to poll=Y
- For a sustained effect:
#echo "options drm_kms_helper poll=N">/etc/modprobe.d/local.conf
Hope this will help your woes. Enjoy! Please post any problems you may experience.
Also, kindly post the output of your uname -a, in case this helped you.
Filed under: linux | 45 Comments