Message ID | 20210819061639.21051-8-matthew.brost@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Clean up GuC CI failures, simplify locking, and kernel DOC | expand |
On Thu, Aug 19, 2021 at 1:22 AM Matthew Brost <matthew.brost@intel.com> wrote: > > Propagating errors to dependent fences is wrong, don't do it. A selftest > in the following exposed the propagating of an error to a dependent > fence after an engine reset. I feel like we could still have a bit of a better message. Maybe something like this: Propagating errors to dependent fences is broken and can lead to errors from one client ending up in another. In 3761baae908a (Revert "drm/i915: Propagate errors on awaiting already signaled fences"), we attempted to get rid of fence error propagation but missed the case added in 8e9f84cf5cac ("drm/i915/gt: Propagate change in error status to children on unhold"). Revert that one too. This error was found by an up-and-coming selftest which <salient information here>. Otherwise, looks good to me. --Jason > > This reverts commit 8e9f84cf5cac248a1c6a5daa4942879c8b765058. > > v2: > (Daniel Vetter) > - Use revert > > References: 3761baae908a (Revert "drm/i915: Propagate errors on awaiting already signaled fences") > Signed-off-by: Matthew Brost <matthew.brost@intel.com> > --- > drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c > index de5f9c86b9a4..cafb0608ffb4 100644 > --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c > +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c > @@ -2140,10 +2140,6 @@ static void __execlists_unhold(struct i915_request *rq) > if (p->flags & I915_DEPENDENCY_WEAK) > continue; > > - /* Propagate any change in error status */ > - if (rq->fence.error) > - i915_request_set_error_once(w, rq->fence.error); > - > if (w->engine != rq->engine) > continue; > > -- > 2.32.0 >
diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c index de5f9c86b9a4..cafb0608ffb4 100644 --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c @@ -2140,10 +2140,6 @@ static void __execlists_unhold(struct i915_request *rq) if (p->flags & I915_DEPENDENCY_WEAK) continue; - /* Propagate any change in error status */ - if (rq->fence.error) - i915_request_set_error_once(w, rq->fence.error); - if (w->engine != rq->engine) continue;
Propagating errors to dependent fences is wrong, don't do it. A selftest in the following exposed the propagating of an error to a dependent fence after an engine reset. This reverts commit 8e9f84cf5cac248a1c6a5daa4942879c8b765058. v2: (Daniel Vetter) - Use revert References: 3761baae908a (Revert "drm/i915: Propagate errors on awaiting already signaled fences") Signed-off-by: Matthew Brost <matthew.brost@intel.com> --- drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4 ---- 1 file changed, 4 deletions(-)