diff mbox

BUG: kworker hangs the GPU on drm and i915 since 3.8.x under X11

Message ID 1365199260.94686.YahooMailNeo@web121006.mail.ne1.yahoo.com (mailing list archive)
State New, archived
Headers show

Commit Message

George Amanakis April 5, 2013, 10:01 p.m. UTC
I mean that I can type, move the mouse pointer, open new windows but there is a lag until these changes are displayed. Stuttering like.

I ended up not reverting the aforementioned commit but modifying it. This also solves the issue. Here is the patch:

Comments

George Amanakis April 6, 2013, 4:24 p.m. UTC | #1
Indeed, I set explicitly drm_kms_helper.poll=0 since 2.35.x. See here:
http://souriguha.wordpress.com/2011/03/08/how-to-solve-problem-with-thinkpadkslowd-kworker-on-linux-kernel-2-35-2-36/

Mouse and keyboard freezes intermittently some time after boot up. Actually the problem has to do with the GPU lagging and displaying the changes later. This results in an almost unusable desktop environment. Top 
will report the high CPU usage by 3-4 processes named kworker. With the drm_kms_helper.poll=0 it was until the 3.8.x kernel resolved.

Since the 3.8.x kernels the exact same problem appeared again. The problem persists with the latest 3.9-rc5 too. 
 
Thanks, George
diff mbox

Patch

diff -rupN a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
--- a/drivers/gpu/drm/drm_crtc_helper.c    2013-02-19 00:58:34.000000000 +0100
+++ b/drivers/gpu/drm/drm_crtc_helper.c    2013-04-05 23:10:36.454936677 +0200
@@ -1067,7 +1067,7 @@  void drm_helper_hpd_irq_event(struct drm
     enum drm_connector_status old_status;
     bool changed = false;
 
-    if (!dev->mode_config.poll_enabled)
+    if (!dev->mode_config.poll_enabled || !drm_kms_helper_poll)
         return;
 
     mutex_lock(&dev->mode_config.mutex);