All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v2 00/16] drm/i915: Remove short term pins from execbuf.
Date: Tue, 30 Nov 2021 18:38:43 +0000	[thread overview]
Message-ID: <ea3869e7-a4f7-52a6-0ef9-7531655d5647@linux.intel.com> (raw)
In-Reply-To: <b40c5455-7b60-7c97-9fcd-fba67ed71f6d@linux.intel.com>


On 30/11/2021 11:17, Maarten Lankhorst wrote:
> On 30-11-2021 09:54, Tvrtko Ursulin wrote:
>>
>> Hi,
>>
>> On 29/11/2021 13:47, Maarten Lankhorst wrote:
>>> New version of the series, with feedback from previous series added.
>>
>> If there was a cover letter sent for this work in the past could you please keep attaching it? Or if there wasn't, could you please write one?
>>
>> I am worried about two things. First is that we need to have a high level overview of the rules/design changes documented so third party people have any hope of getting code right after this lands. (Where we are, where we are going, how we will get there, how far did we get and when we will get to the end.)
>>
>> Second is that when parts of the series land piecemeal (Which they have in this right, right?), it gets very hard to write up a maintainer level changelog.
> 
> The preparation part is to ensure we always hold vma->obj->resv when unbinding.
> 
> The first preparation series ensured vma->obj always existed. This was not the case for mock gtt and gen6 aliasing gtt. This allowed us to remove all the special handling for those uncommon cases, and actually enforce we can always take that lock. This part is merged.

Sounds good. But also mention the high level motivation for why we 
always want to hold vma->obj->resv when unbinding in the introduction as 
well.

> 
> Patch 2-11 in this series adds the vma->obj->resv to eviction and shrinker. Those are the only parts where we don't take the lock yet.
> 
> After that, we always hold the lock when required, and we can start requiring the obj-> resv lock when unbinding. This is completed in patch 15.
> 
> With that fixed, removing short term pins can be done, because for unbind we now always take obj->resv, so holding obj->resv during execbuf submission is sufficient, and all short term pinning can be removed.

I'd also like the cover letter to contain a high level description on 
_why_ is removing short term pins needed or beneficial.

What was the flow and object lifetimes so far, and what it will be going 
forward etc.

> 
> We only pin temporarily when calling i915_gem_evict_vm in execbuf, which could also be handled in theory by just marking all objects as unpinned.
> 
> As a bonus, using TTM for delayed eviction on all objects becomes easy, just need to get rid of i915_active in i915_vma, as it keeps the object refcount alive.
> 
> Remainder is removing refcount to i915_vma, to make it a real

Sounds on the right track with maybe a bit more text so the readers can 
easily understand it on the higher level.

> 
>> But in any case, even on the mundane process level, we need to have cover letters for any non trivial work was the conclusion since some time ago.
> 
> Here you go! I hope it explains the reasoning.

It is on the right track. I think just needs to be expanded a bit with 
high level direction and plan, pointing out where in the grand scheme 
this series is. And then don't forget to add the improved text as cover 
letter when sending next time please.

Regards,

Tvrtko

  reply	other threads:[~2021-11-30 18:44 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-29 13:47 [PATCH v2 00/16] drm/i915: Remove short term pins from execbuf Maarten Lankhorst
2021-11-29 13:47 ` [Intel-gfx] " Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 01/16] drm/i915: Remove unused bits of i915_vma/active api Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 02/16] drm/i915: Change shrink ordering to use locking around unbinding Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 03/16] drm/i915: Remove pages_mutex and intel_gtt->vma_ops.set/clear_pages members, v2 Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-06 13:13   ` Matthew Auld
2021-12-06 15:18     ` Maarten Lankhorst
2021-12-06 17:00       ` Matthew Auld
2021-12-07 18:15         ` Daniel Vetter
2021-12-06 17:10   ` Matthew Auld
2021-12-07 10:06     ` Maarten Lankhorst
2021-12-07 10:45       ` Matthew Auld
2021-11-29 13:47 ` [PATCH v2 04/16] drm/i915: Take object lock in i915_ggtt_pin if ww is not set Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-06 13:18   ` Matthew Auld
2021-12-06 13:18     ` [Intel-gfx] " Matthew Auld
2021-11-29 13:47 ` [PATCH v2 05/16] drm/i915: Force ww lock for i915_gem_object_ggtt_pin_ww Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-11-30  9:20   ` [PATCH] drm/i915: Force ww lock for i915_gem_object_ggtt_pin_ww, v2 Maarten Lankhorst
2021-11-30  9:20     ` [Intel-gfx] " Maarten Lankhorst
2021-12-01 15:07     ` Matthew Auld
2021-12-01 15:07       ` [Intel-gfx] " Matthew Auld
2021-11-29 13:47 ` [PATCH v2 06/16] drm/i915: Ensure gem_contexts selftests work with unbind changes Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-07 10:44   ` Matthew Auld
2021-12-07 10:44     ` [Intel-gfx] " Matthew Auld
2021-12-08 13:20     ` Maarten Lankhorst
2021-12-08 13:20       ` [Intel-gfx] " Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 07/16] drm/i915: Take trylock during eviction, v2 Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-07 11:01   ` Matthew Auld
2021-12-08 13:28     ` Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 08/16] drm/i915: Pass trylock context to callers Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-07 14:26   ` Matthew Auld
2021-12-07 14:26     ` [Intel-gfx] " Matthew Auld
2021-11-29 13:47 ` [PATCH v2 09/16] drm/i915: Ensure i915_vma tests do not get -ENOSPC with the locking changes Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-08 11:49   ` Matthew Auld
2021-12-08 12:01     ` Matthew Auld
2021-11-29 13:47 ` [PATCH v2 10/16] drm/i915: Make i915_gem_evict_vm work correctly for already locked objects Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-08 12:07   ` Matthew Auld
2021-12-08 13:34     ` Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 11/16] drm/i915: Call i915_gem_evict_vm in vm_fault_gtt to prevent new ENOSPC errors Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-09 12:17   ` Matthew Auld
2021-12-09 12:59     ` Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 12/16] drm/i915: Add i915_vma_unbind_unlocked, and take obj lock for i915_vma_unbind Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-09 13:05   ` Matthew Auld
2021-12-09 13:05     ` [Intel-gfx] " Matthew Auld
2021-12-09 13:25     ` Maarten Lankhorst
2021-12-09 13:25       ` Maarten Lankhorst
2021-12-09 13:40       ` [Intel-gfx] " Matthew Auld
2021-12-09 13:40         ` Matthew Auld
2021-12-09 13:45         ` [Intel-gfx] " Maarten Lankhorst
2021-12-09 13:45           ` Maarten Lankhorst
2021-12-09 14:27           ` Matthew Auld
2021-12-09 14:27             ` [Intel-gfx] " Matthew Auld
2021-11-29 13:47 ` [PATCH v2 13/16] drm/i915: Require object lock when freeing pages during destruction Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 14/16] drm/i915: Remove assert_object_held_shared Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-09 13:07   ` Matthew Auld
2021-12-09 13:07     ` [Intel-gfx] " Matthew Auld
2021-11-29 13:47 ` [PATCH v2 15/16] drm/i915: Remove support for unlocked i915_vma unbind Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-11-29 13:47 ` [PATCH v2 16/16] drm/i915: Remove short-term pins from execbuf, v5 Maarten Lankhorst
2021-11-29 13:47   ` [Intel-gfx] " Maarten Lankhorst
2021-12-09 16:22   ` Matthew Auld
2021-12-09 16:22     ` [Intel-gfx] " Matthew Auld
2021-11-29 15:32 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Remove short term pins from execbuf Patchwork
2021-11-29 15:33 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-11-29 15:37 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork
2021-11-29 16:11 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2021-11-30  8:54 ` [Intel-gfx] [PATCH v2 00/16] " Tvrtko Ursulin
2021-11-30 11:17   ` Maarten Lankhorst
2021-11-30 18:38     ` Tvrtko Ursulin [this message]
2021-12-01 11:15       ` Maarten Lankhorst
2021-12-01 13:11         ` Tvrtko Ursulin
2021-11-30 11:18 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Remove short term pins from execbuf. (rev2) Patchwork
2021-11-30 11:19 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-11-30 11:23 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork
2021-11-30 11:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-11-30 14:51 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ea3869e7-a4f7-52a6-0ef9-7531655d5647@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=maarten.lankhorst@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.