OSDN Git Service

drm/i915: Flush waiters on seqno wraparound
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 6 Mar 2018 13:01:43 +0000 (13:01 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 6 Mar 2018 17:25:56 +0000 (17:25 +0000)
commitf41d19beccfebb84abc729e2d8ece0c368b2152f
treeafc82d28e6237d7c31a3c7b14190bd0e82c2eca0
parent93eef7d65329b62cf8a6db918fe5ca5d84eedf50
drm/i915: Flush waiters on seqno wraparound

Previously, we would spin waiting for all waiters to wake up and notice
their request had completed before we would reset the seqno upon
wraparound.  However, we can mark their waits as complete and wake them
up directly using the existing machinery for handling the flushing of
missed wakeups when idling.

Suggested-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180306130143.13312-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_request.c
drivers/gpu/drm/i915/intel_breadcrumbs.c
drivers/gpu/drm/i915/intel_ringbuffer.h