GVT Scheduler

Julian Stecklina julian.stecklina at cyberus-technology.de
Mon Nov 9 14:47:04 UTC 2020


On Tue, 2020-11-03 at 11:33 +0800, Zhenyu Wang wrote:
> Hmm, looks one i915 change removed check of actual request preempted for
> status...
> I'm not sure if that's relevant, but maybe you could try like:
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c
> b/drivers/gpu/drm/i915/gt/intel_lrc.c
> index d0be98b67138..f1a16d4b6e6a 100644
> --- a/drivers/gpu/drm/i915/gt/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
> @@ -1439,7 +1439,9 @@ __execlists_schedule_out(struct i915_request *rq,
>  
>         intel_context_update_runtime(ce);
>         intel_engine_context_out(engine);
> -       execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
> +       execlists_context_status_change(rq, i915_request_completed(rq) ?
> +                                       INTEL_CONTEXT_SCHEDULE_OUT:
> +                                       INTEL_CONTEXT_SCHEDULE_PREEMPTED);
>         if (engine->fw_domain && !atomic_dec_return(&engine->fw_active))
>                 intel_uncore_forcewake_put(engine->uncore, engine->fw_domain);
>         intel_gt_pm_put_async(engine->gt);

That looks interesting. The check was removed in this commit:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=22b7a426bbe1ebe1520f92da4cd1617d1e1b5fc4
>From 22b7a426bbe1ebe1520f92da4cd1617d1e1b5fc4 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu, 20 Jun 2019 15:20:51 +0100 
Subject: drm/i915/execlists: Preempt-to-busy

With all the synchronization that was changed there, I'm not sure whether the
check is still needed, but we are currently testing whether the change you
propose improves the situation and allows us to remove our workaround. I'm crossing my fingers.

Btw, we are currently using this workaround on 5.4, which results in a stable
system for us:
https://github.com/blitz/linux/commit/7b5850067f535763624ccb2a41db631ddae5291f

Julian



More information about the intel-gvt-dev mailing list