Hi Maarten:
Thanks for the reply. 😊 Have your patches been merged into the drm-intel? (The new i915_gem_object_ggtt_pin() you mentioned in the email). Also,
we might go on-demand pin recently in the suspend/resume support. In that case, I guess I need to review my patches again based on the new mechanism. Wrt your concern, my understanding is ww dance is for recording the related locks in a section. When a deadlock
happens, we can rewind the locks recorded in a ww dance and rewind them. In the current code, the context is always pinned. So we don’t need to worry about the context as what you said. For preparing_shadow_wa_ctx, the gem object will be newly created whenever
scan a execlist context and it will be destroyed when the context is scheduled-out. I think in that case, we need a separate ww dance.
Thanks, Zhi.
-----Original Message-----
From: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Sent: Wednesday, September 30, 2020 2:55 PM
To: Wang, Zhi A <zhi.a.wang@xxxxxxxxx>; Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>; Nikula, Jani <jani.nikula@xxxxxxxxx>; intel-gfx <intel-gfx@xxxxxxxxxxxxxxxxxxxxx>; Yuan, Hang <hang.yuan@xxxxxxxxx>; Lv, Zhiyuan <zhiyuan.lv@xxxxxxxxx>; intel-gvt-dev
<intel-gvt-dev@xxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [Intel-gfx] [PULL] topic/gvt-ww-lock
Hey,
Op 22-09-2020 om 13:51 schreef Wang, Zhi A:
>
> Hi,
>
> Here's the patch which introduces GVT-g ww lock support against drm-intel-gt-next branch.
>
> Thanks
>
> --
>
> The following changes since commit 4316b19dee27cc5cd34a95fdbc0a3a5237507701:
>
> drm/i915: Fix uninitialised variable in
> intel_context_create_request. (2020-09-21 11:09:46 +0200)
>
> are available in the git repository at:
>
> https://github.com/intel/gvt-linux.git tags/gvt-ww-lock-09-22-2020
>
> for you to fetch changes up to e1b49ae155451aaa039eeb23fce808c71a038283:
>
> drm/i915/gvt: Introduce per object locking in GVT scheduler.
> (2020-09-22 12:09:56 +0300)
>
> ----------------------------------------------------------------
> gvt-ww-lock-09-22-2020:
>
> - Introduce ww lock support into GVT-g.
>
> ----------------------------------------------------------------
> Zhi Wang (1):
> drm/i915/gvt: Introduce per object locking in GVT scheduler.
>
> drivers/gpu/drm/i915/gvt/scheduler.c | 68
> ++++++++++++++++++++++++++++++------
> 1 file changed, 57 insertions(+), 11 deletions(-)
I've taken a look at this branch, and I have some feedback.
Adding ww_ctx blindly like is done doesn't work. For example I'm working on a patch that adds ww handling to i915_gem_object_ggtt_pin(), so you don't have to perform manually in prepare_shadow_wa_ctx(). intel_context_pin() already has a ww dance, you can keep
calling it without open coding it. If you do decide to call it manually, intel_context_put would have to be called after ctx_fini. Cheers, Maarten