[Intel-gfx] [PATCH v2] drm/i915: Snapshot seqno of most recently submitted request.

Chris Wilson chris at chris-wilson.co.uk
Thu Jul 9 08:07:05 PDT 2015


On Thu, Jul 09, 2015 at 03:30:57PM +0100, Tomas Elf wrote:
> The hang checker needs to inspect whether or not the ring request list is empty
> as well as if the given engine has reached or passed the most recently
> submitted request. The problem with this is that the hang checker cannot grab
> the struct_mutex, which is required in order to safely inspect requests since
> requests might be deallocated during inspection. In the past we've had kernel
> panics due to this very unsynchronized access in the hang checker.
> 
> One solution to this problem is to not inspect the requests directly since
> we're only interested in the seqno of the most recently submitted request - not
> the request itself. Instead the seqno of the most recently submitted request is
> stored separately, which the hang checker then inspects, circumventing the
> issue of synchronization from the hang checker entirely.
> 
> v2 (Chris Wilson):
> - Pass current engine seqno to ring_idle() from i915_hangcheck_elapsed() rather
> than compute it over again.
> - Remove extra whitespace.
> 
> Issue: VIZ-5998
> Signed-off-by: Tomas Elf <tomas.elf at intel.com>

Yup, that is a nice simple fix by partially reverting the
s/seqno/requests/ change (and improving upon it in the process).

We should mention

Fixes commit 44cdd6d219bc64f6810b8ed0023a4d4db9e0fe68
Author: John Harrison <John.C.Harrison at Intel.com>
Date:   Mon Nov 24 18:49:40 2014 +0000

    drm/i915: Convert 'ring_idle()' to use requests not seqnos

and
Cc: stable at vger.kernel.org
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list