From: Mika Kuoppala <miku@iki.fi>
To: Dave Gordon <david.s.gordon@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 6/7] drm/i915: Convert execlists_ctx_descriptor() for requests
Date: Wed, 8 Jul 2015 20:26:07 +0300 [thread overview]
Message-ID: <20150708172607.GA13113@taika.org> (raw)
In-Reply-To: <559D582C.8030609@intel.com>
On Wed Jul 08 2015 at 18:04:44 +0100, Dave Gordon wrote:
> On 08/07/15 17:40, Yu Dai wrote:
> >On 07/03/2015 07:09 AM, Mika Kuoppala wrote:
> >>Pass around requests to carry context deeper in callchain.
> >>
> >>Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> >>---
> >> drivers/gpu/drm/i915/intel_lrc.c | 14 ++++++--------
> >> 1 file changed, 6 insertions(+), 8 deletions(-)
> >>
> >>diff --git a/drivers/gpu/drm/i915/intel_lrc.c
> >>b/drivers/gpu/drm/i915/intel_lrc.c
> >>index c3c029a..67ff460 100644
> >>--- a/drivers/gpu/drm/i915/intel_lrc.c
> >>+++ b/drivers/gpu/drm/i915/intel_lrc.c
> >>@@ -261,10 +261,11 @@ u32 intel_execlists_ctx_id(struct
> >>drm_i915_gem_object *ctx_obj)
> >> return lrca >> 12;
> >> }
> >>-static uint64_t execlists_ctx_descriptor(struct intel_engine_cs *ring,
> >>- struct drm_i915_gem_object *ctx_obj)
> >>+static uint64_t execlists_ctx_descriptor(struct drm_i915_gem_request
> >>*rq)
> >> {
> >
> >GuC patch series tries to utilize this function. However, changing from
> >ring/context to request makes it unusable in the case where request is
> >not needed (not available). This context descriptor has nothing to do
> >with drm_i915_gem_request IMO. And it is waste of time to call it for
> >each batch submission. This value is fixed when context is pinned. Maybe
> >add a member ctx_desc into intel_context->engine; initialize the value
> >within intel_lr_context_pin; then use it whenever needed.
> >
> >Thanks,
> >Alex
>
> Yes, I've effectively reversed this in the next GuC submission
> series, since we don't have a request during setup, and this
> function doesn't actually need one either; it's only being used as a
> handle for extracting the context and ring.
>
> So in my version it will take an intel_context and a ring so it's up
> to the caller to extract those from the drm_i915_gem_request
> (rq->ctx) and (rq->ring) and pass them separately. Then the GuC can
> use it during setup as well as at runtime :)
>
I admit I went one step too far on this one in the series. The bspec says
the context ids created should be unique across all engines and all execlists.
I was concerned that our lrca only setup and resubmission for
pre-emption would break this rule. (and be the reason for skl hickups)
The bspec has a note about creating context id with ring/counter(seqno)/lrca
combination. Thus the request -> descriptor creation.
I didn't post that patch as it didn't cure the skl hang. But it made
debugging the context status queue easier as seqnos were part of
context_id.
-Mika
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-07-08 17:53 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-03 14:09 [RFC 0/7] Convert parts of intel_lrc.c to requests Mika Kuoppala
2015-07-03 14:09 ` [PATCH 1/7] drm/i915: Convert execlist_submit_contexts() for requests Mika Kuoppala
2015-07-07 16:49 ` Yu Dai
2015-07-07 21:44 ` Yu Dai
2015-07-08 7:23 ` Mika Kuoppala
2015-07-03 14:09 ` [PATCH 2/7] drm/i915: Convert execlists_update_context() " Mika Kuoppala
2015-07-03 14:09 ` [PATCH 3/7] drm/i915: Assign request ringbuf before pin Mika Kuoppala
2015-07-03 14:11 ` Chris Wilson
2015-07-06 8:08 ` Mika Kuoppala
2015-07-03 14:09 ` [PATCH 4/7] drm/i915: Convert intel_lr_context_pin() for requests Mika Kuoppala
2015-07-03 14:09 ` [PATCH 5/7] drm/i915: Convert execlists_elsp_writ() " Mika Kuoppala
2015-07-03 14:09 ` [PATCH 6/7] drm/i915: Convert execlists_ctx_descriptor() " Mika Kuoppala
2015-07-08 16:40 ` Yu Dai
2015-07-08 17:04 ` Dave Gordon
2015-07-08 17:26 ` Mika Kuoppala [this message]
2015-07-03 14:09 ` [PATCH 7/7] drm/i915: Mark elsps submitted when they are pushed to hw Mika Kuoppala
2015-07-03 15:36 ` Chris Wilson
2015-07-06 8:09 ` Mika Kuoppala
2015-07-06 9:25 ` Chris Wilson
2015-07-06 9:32 ` Chris Wilson
2015-07-06 14:52 ` Daniel Vetter
2015-07-06 15:35 ` [PATCH 1/2] drm/i915: Convert execlist_submit_contexts() for requests Mika Kuoppala
2015-07-05 3:34 ` [PATCH 7/7] drm/i915: Mark elsps submitted when they are pushed to hw shuang.he
2015-07-03 15:38 ` [RFC 0/7] Convert parts of intel_lrc.c to requests Chris Wilson
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=20150708172607.GA13113@taika.org \
--to=miku@iki.fi \
--cc=david.s.gordon@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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.