]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: find guilty batch buffer on ring resets
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Wed, 12 Jun 2013 12:13:20 +0000 (15:13 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 13 Jun 2013 15:42:17 +0000 (17:42 +0200)
commitc80682a3934a980219e6b2b40bb1e5c4a645c391
treefec0cf5e153bd7b9169b502aa9b38f241ed2e918
parentf11dfcd1b13326fb2a0f0d16cbebf3dd01205bd4
drm/i915: find guilty batch buffer on ring resets

After hang check timer has declared gpu to be hung,
rings are reset. In ring reset, when clearing
request list, do post mortem analysis to find out
the guilty batch buffer.

Select requests for further analysis by inspecting
the completed sequence number which has been updated
into the HWS page. If request was completed, it can't
be related to the hang.

For noncompleted requests mark the batch as guilty
if the ring was not waiting and the ring head was
stuck inside the buffer object or in the flush region
right after the batch. For everything else, mark
them as innocents.

v2: Fixed a typo in commit message (Ville Syrjälä)

v3: - more descriptive function parameters (Chris Wilson)
    - use masked head address when inspecting if request is in ring
    - s/hangcheck.last_action/hangcheck.action
    - added comment about unmasked head hitting batch_obj range

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Acked-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c