drm/i915: check ACTHD of all rings
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 27 Nov 2011 17:58:17 +0000 (18:58 +0100)
committerKeith Packard <keithp@keithp.com>
Tue, 20 Dec 2011 03:15:48 +0000 (19:15 -0800)
commit097354eb14fa94d31a09c64d640643f58e4a5a9a
tree222aeb2a501ddd82c5ec0877fd09ccc0c851c552
parent832afda6a7d7235ef0e09f4ec46736861540da6d
drm/i915: check ACTHD of all rings

Otherwise hangcheck spuriously fires when running blitter/bsd-only
workloads.

Contrary to a similar patch by Ben Widawsky this does not check
INSTDONE of the other rings. Chris Wilson implied that in a failure to
detect a hang, most likely because INSTDONE was fluctuating. Thus only
check ACTHD, which as far as I know is rather reliable. Also, blitter
and bsd rings can't launch complex tasks from a single instruction
(like 3D_PRIM on the render with complex or even infinite shaders).

This fixes spurious gpu hang detection when running
tests/gem_hangcheck_forcewake on snb/ivb.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c