Quoting Tvrtko Ursulin (2018-02-07 10:40:46)
On 06/02/2018 09:46, Chris Wilson wrote:
When a request is preempted, it is unsubmitted from the HW queue and removed from the active list of breadcrumbs. In the process, this however triggers the signaler and it may see the clear rbtree with the old, and still valid, seqno. This confuses the signaler into action and signaling the fence.
Fixes: d6a2289d9d6b ("drm/i915: Remove the preempted request from the execution queue") Signed-off-by: Chris Wilson chris@chris-wilson.co.uk Cc: Tvrtko Ursulin tvrtko.ursulin@linux.intel.com Cc: Joonas Lahtinen joonas.lahtinen@linux.intel.com Cc: stable@vger.kernel.org # v4.12+
Looks OK. But I can't say it's straightforward to understand it.
But I hope the GEM_BUG_ON() was nice icing on the cake :)
Reviewed-by: Tvrtko Ursulin tvrtko.ursulin@intel.com
Thanks, added your explanation to the changelog and pushed. -Chris