All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: "Bloomfield, Jon" <jon.bloomfield@intel.com>
Cc: "Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"DRI Development" <dri-devel@lists.freedesktop.org>,
	"Intel Graphics Development" <intel-gfx@lists.freedesktop.org>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Vetter, Daniel" <daniel.vetter@intel.com>,
	"Chris Wilson" <chris@chris-wilson.co.uk>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
	"Auld, Matthew" <matthew.auld@intel.com>,
	"Landwerlin, Lionel G" <lionel.g.landwerlin@intel.com>,
	"Dave Airlie" <airlied@redhat.com>,
	"Jason Ekstrand" <jason@jlekstrand.net>
Subject: Re: [Intel-gfx] [PATCH 07/11] drm/i915: Add i915_gem_context_is_full_ppgtt
Date: Thu, 2 Sep 2021 21:49:09 +0200	[thread overview]
Message-ID: <YTEqtXODs4TkSKH4@phenom.ffwll.local> (raw)
In-Reply-To: <608e2c4bbe20443b86f1c62cd95f3e48@intel.com>

On Thu, Sep 02, 2021 at 05:05:05PM +0000, Bloomfield, Jon wrote:
> > -----Original Message-----
> > From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > Sent: Thursday, September 2, 2021 9:42 AM
> > To: Daniel Vetter <daniel@ffwll.ch>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>; DRI Development <dri-
> > devel@lists.freedesktop.org>; Intel Graphics Development <intel-
> > gfx@lists.freedesktop.org>; Maarten Lankhorst
> > <maarten.lankhorst@linux.intel.com>; Vetter, Daniel
> > <daniel.vetter@intel.com>; Bloomfield, Jon <jon.bloomfield@intel.com>;
> > Chris Wilson <chris@chris-wilson.co.uk>; Joonas Lahtinen
> > <joonas.lahtinen@linux.intel.com>; Thomas Hellström
> > <thomas.hellstrom@linux.intel.com>; Auld, Matthew
> > <matthew.auld@intel.com>; Landwerlin, Lionel G
> > <lionel.g.landwerlin@intel.com>; Dave Airlie <airlied@redhat.com>; Jason
> > Ekstrand <jason@jlekstrand.net>
> > Subject: Re: [Intel-gfx] [PATCH 07/11] drm/i915: Add
> > i915_gem_context_is_full_ppgtt
> > 
> > 
> > On 02/09/2021 16:22, Daniel Vetter wrote:
> > > On Thu, Sep 02, 2021 at 03:54:36PM +0100, Tvrtko Ursulin wrote:
> > >> On 02/09/2021 15:20, Daniel Vetter wrote:
> > >>> And use it anywhere we have open-coded checks for ctx->vm that really
> > >>> only check for full ppgtt.
> > >>>
> > >>> Plus for paranoia add a GEM_BUG_ON that checks it's really only set
> > >>> when we have full ppgtt, just in case. gem_context->vm is different
> > >>> since it's NULL in ggtt mode, unlike intel_context->vm or gt->vm,
> > >>> which is always set.
> > >>>
> > >>> v2: 0day found a testcase that I missed.
> > >>>
> > >>> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > >>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > >>> Cc: Jon Bloomfield <jon.bloomfield@intel.com>
> > >>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > >>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > >>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > >>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > >>> Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
> > >>> Cc: Matthew Auld <matthew.auld@intel.com>
> > >>> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> > >>> Cc: Dave Airlie <airlied@redhat.com>
> > >>> Cc: Jason Ekstrand <jason@jlekstrand.net>
> > >>> ---
> > >>>    drivers/gpu/drm/i915/gem/i915_gem_context.c           | 2 +-
> > >>>    drivers/gpu/drm/i915/gem/i915_gem_context.h           | 7 +++++++
> > >>>    drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c        | 2 +-
> > >>>    drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c | 6 +++---
> > >>>    4 files changed, 12 insertions(+), 5 deletions(-)
> > >>>
> > >>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> > b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> > >>> index 7a566fb7cca4..1eec85944c1f 100644
> > >>> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> > >>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> > >>> @@ -1566,7 +1566,7 @@ static int get_ppgtt(struct
> > drm_i915_file_private *file_priv,
> > >>>    	int err;
> > >>>    	u32 id;
> > >>> -	if (!rcu_access_pointer(ctx->vm))
> > >>> +	if (!i915_gem_context_is_full_ppgtt(ctx))
> > >>
> > >> It reads a bit wrong because GEM context cannot *be* full ppggt. It can
> > be
> > >> associated with a VM which is or isn't full ppgtt. So a test on a VM
> > >> retrieved from a context is semnntically more correct. Perhaps you want
> > to
> > >> consider adding a helper to that effect instead? It could mean splitting
> > >> into two helpers (getter + test) or maybe just renaming would work. Like
> > >> i915_gem_context_has_full_ppgtt_vm(ctx)?
> > >
> > > The pointer isn't set when the driver/context isn't running in full ppgtt
> > > mode. This is why I've added the GEM_BUG_ON to check we're not
> > breaking
> > > any invariants. So yeah it is a full ppgtt context or it's not, that is
> > > indeed the question here.
> > >
> > > I'm happy to bikeshed the naming, but I don't see how your suggestion is
> > > an improvement.
> > 
> > I think the pointer being set or not is implementation detail, for
> > instance we could have it always set just like it is in intel_context.
> > 
> > I simply think GEM context *isn't* full ppgtt, but the VM is. And since
> > GEM context *points* to a VM, *has* is the right verb in my mind. You
> > did not write why do you not see has as more correct than is so I don't
> > want to be guessing too much.
> 
> FWIW, I agree with Tvrtko. i915_gem_context_is_full_ppgtt is incorrect
> grammar. It IS a bike shed, but, hey it'll live for a while.

Generally all our feature checks are of the various is_foo variety.
HAS_FULL_PPGTT is one of the very rare exceptions. So it's a question of
"is gem_ctx foo", not "has gem_ctx foo". The fact that we implement the
check by looking at a pointer doesn't matter. And yes if it is full ppgtt,
it also has it's own private vm, but we don't care about that part at all.
It's just a distraction.

Anyway I'll repaint, least because the HAS_FULL_PPGTT thing is almost a
decade old by now :-)
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

  reply	other threads:[~2021-09-02 19:49 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-02 14:20 [PATCH 01/11] drm/i915: Release i915_gem_context from a worker Daniel Vetter
2021-09-02 14:20 ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 02/11] drm/i915: Release ctx->syncobj on final put, not on ctx close Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 03/11] drm/i915: Keep gem ctx->vm alive until the final put Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 04/11] drm/i915: Drop code to handle set-vm races from execbuf Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 05/11] drm/i915: Rename i915_gem_context_get_vm_rcu to i915_gem_context_get_eb_vm Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-03  8:05   ` Tvrtko Ursulin
2021-09-06  8:51     ` Daniel Vetter
2021-09-07 14:48       ` Tvrtko Ursulin
2021-09-02 14:20 ` [PATCH 06/11] drm/i915: Use i915_gem_context_get_eb_vm in ctx_getparam Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 07/11] drm/i915: Add i915_gem_context_is_full_ppgtt Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:54   ` Tvrtko Ursulin
2021-09-02 15:22     ` Daniel Vetter
2021-09-02 16:41       ` Tvrtko Ursulin
2021-09-02 17:05         ` Bloomfield, Jon
2021-09-02 17:05           ` Bloomfield, Jon
2021-09-02 19:49           ` Daniel Vetter [this message]
2021-09-02 14:20 ` [PATCH 08/11] drm/i915: Use i915_gem_context_get_eb_vm in intel_context_set_gem Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 09/11] drm/i915: Drop __rcu from gem_context->vm Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 10/11] drm/i915: use xa_lock/unlock for fpriv->vm_xa lookups Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 14:20 ` [PATCH 11/11] drm/i915: Stop rcu support for i915_address_space Daniel Vetter
2021-09-02 14:20   ` [Intel-gfx] " Daniel Vetter
2021-09-02 16:49 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/11] drm/i915: Release i915_gem_context from a worker Patchwork
2021-09-02 16:50 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-09-02 17:20 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2021-09-02 18:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/11] drm/i915: Release i915_gem_context from a worker (rev2) Patchwork
2021-09-02 18:26 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-09-02 18:55 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2021-09-03  6:20 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/11] drm/i915: Release i915_gem_context from a worker (rev3) Patchwork
2021-09-03  6:22 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-09-03  6:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-09-03  8:03 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2021-08-13 20:30 [PATCH 01/11] drm/i915: Release i915_gem_context from a worker Daniel Vetter
2021-08-13 20:30 ` [Intel-gfx] [PATCH 07/11] drm/i915: Add i915_gem_context_is_full_ppgtt Daniel Vetter

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=YTEqtXODs4TkSKH4@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=airlied@redhat.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jason@jlekstrand.net \
    --cc=jon.bloomfield@intel.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=lionel.g.landwerlin@intel.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=matthew.auld@intel.com \
    --cc=thomas.hellstrom@linux.intel.com \
    --cc=tvrtko.ursulin@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.