drm/i915: Only run idle processing from i915_gem_retire_requests_worker
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 8 Jan 2013 11:02:57 +0000 (11:02 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Feb 2013 13:38:36 +0000 (05:38 -0800)
commit6484ec24fdc5c9713c127fae89c04fe07f21f152
treeaf58196ad876d9677fc3078bad2ce2c2e80638e8
parent3cfe7a3476bf3831bcc079b4bff4b1d8cf195179
drm/i915: Only run idle processing from i915_gem_retire_requests_worker

commit 725a5b54028916cd2511a251c5b5b13d1715addc upstream.

When adding the fb idle detection to mark-inactive, it was forgotten
that userspace can drive the processing of retire-requests. We assumed
that it would be principally driven by the retire requests worker,
running once every second whilst active and so we would get the deferred
timer for free. Instead we spend too many CPU cycles reclocking the LVDS
preventing real work from being done.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reported-and-tested-by: Alexander Lam <lambchop468@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58843
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h