]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Convert hangcheck from a timer into a delayed work item
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 26 Jan 2015 16:03:03 +0000 (18:03 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 28 Jan 2015 16:22:12 +0000 (17:22 +0100)
commit4f9776251d5ea376554a141bcb224b3af6d2a10b
tree6c8c2fd71c7726e7725535c3e935edf1369e01f6
parent1f84dfb98322a1a61a59391c6522004d620caae3
drm/i915: Convert hangcheck from a timer into a delayed work item

When run as a timer, i915_hangcheck_elapsed() must adhere to all the
rules of running in a softirq context. This is advantageous to us as we
want to minimise the risk that a driver bug will prevent us from
detecting a hung GPU. However, that is irrelevant if the driver bug
prevents us from resetting and recovering. Still it is prudent not to
rely on mutexes inside the checker, but given the coarseness of
dev->struct_mutex doing so is extremely hard.

Give in and run from a work queue, i.e. outside of softirq.

v2: Use own workqueue to avoid deadlocks (Daniel)
    Cleanup commit msg and add comment to i915_queue_hangcheck() (Chris)

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Daniel Vetter <dnaiel.vetter@ffwll.chm>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (v1)
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
[danvet: Remove accidental kerneldoc comment starter, to appease the 0
day builder.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_irq.c