All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: John Harrison <John.C.Harrison@intel.com>
Cc: Intel-GFX@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Engine relative MMIO
Date: Tue, 7 May 2019 23:06:50 -0700	[thread overview]
Message-ID: <20190508060650.GC17249@intel.com> (raw)
In-Reply-To: <7368d070-8179-3398-2f4b-10f3ec4a03d6@Intel.com>

On Tue, May 07, 2019 at 11:55:11AM -0700, John Harrison wrote:
> On 5/6/2019 14:36, Rodrigo Vivi wrote:
> > On Tue, Apr 23, 2019 at 06:50:13PM -0700, John.C.Harrison@Intel.com wrote:
> > > From: John Harrison <John.C.Harrison@Intel.com>
> > > 
> > > With virtual engines, it is no longer possible to know which specific
> > > physical engine a given request will be executed on at the time that
> > > request is generated. This means that the request itself must be engine
> > > agnostic - any direct register writes must be relative to the engine
> > > and not absolute addresses.
> > > 
> > > The LRI command has support for engine relative addressing. However,
> > > the mechanism is not transparent to the driver. The scheme for Gen11
> > > (MI_LRI_ADD_CS_MMIO_START) requires the LRI address to have no
> > > absolute engine base component. The hardware then adds on the correct
> > > engine offset at execution time.
> > > 
> > > Due to the non-trivial and differing schemes on different hardware, it
> > > is not possible to simply update the code that creates the LRI
> > > commands to set a remap flag and let the hardware get on with it.
> > > Instead, this patch adds function wrappers for generating the LRI
> > > command itself and then for constructing the correct address to use
> > > with the LRI.
> > > 
> > > v2: Fix build break in GVT. Remove flags parameter [review feedback
> > > from Chris W].
> > > 
> > > v3: Fix build break in selftest. Rebase to newer base tree and fix
> > > merge conflict.
> > > 
> > > v4: More rebasing. Rmoved relative addressing support from Gen7-9 only
> > > code paths [review feedback from Chris W].
> > First of all, would you have a rebased version after gt/ ?
> I have just done the rebase. Was planning to resend shortly. Although if
> there is more discussion about the best direction to take then I would
> rather hold off posting until a consensus is reached.
> 
> 
> > So, from my point of view v3 was better than this because this spread
> > the __MI_LOAD_REGISTER_IMM everywhere.
> > 
> > Maybe I just disagree with Chris and I'd prefer a single place
> > like v3, but anyway we could probably arrive in an intermediate
> > solution like: Couldn't we do in a way that we keep the MI_LRI without
> > '__' and use this new function only on the paths needed?
> > 
> > and maybe name this function gen11_get_lri_cmd? to make it clear
> > that gen11+ needs to use this path.
> 
> The intention was to make it clear that no new code should be directly
> writing MI_LRI. Everything should go through the helper function. Hence
> renaming to add the '__' to make it obvious. Otherwise, someone might use
> the old one by accident and we won't notice until some random and hard to
> track down failure related to virtual engines.
> 
> Not sure I would say that the __MI_LRI  is spreading 'everywhere'. There are
> only 8 instances versus double that of the get_lri_cmd version. Note also
> that it is not only Gen11+ specific paths. There are multiple places that
> are gen agnostic. So, unless you want to split those into pre/post Gen11
> versions as well, you would end up with Gen7 calling a Gen11 labelled
> function.

makes sense. Although I prefer the use of v3 with __MI_LRI only used inside
the function, it seems I'm the only one... let's move with v4 then...


> 
> John.
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2019-05-08  6:06 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  1:50 [PATCH] drm/i915: Engine relative MMIO John.C.Harrison
2019-04-24  2:49 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Engine relative MMIO (rev4) Patchwork
2019-04-24  3:56 ` ✓ Fi.CI.BAT: success " Patchwork
2019-04-24  6:33 ` ✓ Fi.CI.IGT: " Patchwork
2019-05-06 21:36 ` [PATCH] drm/i915: Engine relative MMIO Rodrigo Vivi
2019-05-07 18:55   ` John Harrison
2019-05-08  6:06     ` Rodrigo Vivi [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-05-13 21:09 John.C.Harrison
2019-05-13 19:45 John.C.Harrison
2019-05-15  8:52 ` Tvrtko Ursulin
2019-05-17  1:25   ` John Harrison
2019-05-20  6:19     ` Tvrtko Ursulin
2019-06-12  0:24       ` Rodrigo Vivi
2019-06-20  7:24 ` Matthew Brost
2019-06-20 16:33   ` Tvrtko Ursulin
2019-06-20 19:15     ` Rodrigo Vivi
2019-03-30  0:10 John.C.Harrison
2019-03-30  7:59 ` Chris Wilson
2019-04-01 21:02   ` John Harrison
2019-04-01 21:10     ` Chris Wilson
2019-03-19 23:22 John.C.Harrison
2019-03-20 11:39 ` kbuild test robot
2019-02-22 23:49 John.C.Harrison
2019-02-22 23:57 ` Chris Wilson
2019-02-23  7:37 ` kbuild test robot
2019-02-23  9:27 ` kbuild test robot

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=20190508060650.GC17249@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=Intel-GFX@lists.freedesktop.org \
    --cc=John.C.Harrison@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.