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