[Intel-gfx] [PATCH] drm/i915/gt: Cleanup heartbeat systole first
Mika Kuoppala
mika.kuoppala at linux.intel.com
Thu Nov 7 07:45:08 UTC 2019
Chris Wilson <chris at chris-wilson.co.uk> writes:
> Before we grab the engine wakeref, tidy up the previous heartbeat
> request. If we then abort because the engine powerwell is off, we ensure
> the request is freed as we know we will not have freed it when
> cancelling the work (as the work is running!).
>
> Fixes: 841e86728615 ("drm/i915/gt: Only drop heartbeat.systole if the sole owner")
> References: 058179e72e09 ("drm/i915/gt: Replace hangcheck by heartbeats")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> index 06aa14c7aa8c..c91fd4e4af29 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> @@ -63,15 +63,15 @@ static void heartbeat(struct work_struct *wrk)
> struct intel_context *ce = engine->kernel_context;
> struct i915_request *rq;
>
> - if (!intel_engine_pm_get_if_awake(engine))
> - return;
> -
> rq = engine->heartbeat.systole;
> if (rq && i915_request_completed(rq)) {
> i915_request_put(rq);
> engine->heartbeat.systole = NULL;
> }
>
> + if (!intel_engine_pm_get_if_awake(engine))
> + return;
> +
> if (intel_gt_is_wedged(engine->gt))
> goto out;
>
> --
> 2.24.0
More information about the Intel-gfx
mailing list