Quoting Chris Wilson (2020-08-06 11:59:54) > As we now protect the timeline list using RCU, we can drop the > timeline->mutex for guarding the list iteration during context close, as > we are searching for an inflight request. Any new request will see the > context is banned and not be submitted. In doing so, pull the checks for > a concurrent submission of the request (notably the > i915_request_completed()) under the engine spinlock, to fully serialise > with __i915_request_submit()). That is in the case of preempt-to-busy > where the request may be completed during the __i915_request_submit(), > we need to be careful that we sample the request status after > serialising so that we don't miss the request the engine is actually > submitting. > > Fixes: 4a3174152147 ("drm/i915/gem: Refine occupancy test in kill_context()") > References: d22d2d073ef8 ("drm/i915: Protect i915_request_await_start from early waits") # rcu protection of timeline->requests > References: https://gitlab.freedesktop.org/drm/intel/-/issues/1622 Also References: https://gitlab.freedesktop.org/drm/intel/-/issues/2158 > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx