From: Yu Dai <yu.dai@intel.com>
To: Mika Kuoppala <mika.kuoppala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Cc: miku@iki.fi
Subject: Re: [PATCH 6/7] drm/i915: Convert execlists_ctx_descriptor() for requests
Date: Wed, 08 Jul 2015 09:40:01 -0700 [thread overview]
Message-ID: <559D5261.7070600@intel.com> (raw)
In-Reply-To: <1435932578-32209-7-git-send-email-mika.kuoppala@intel.com>
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
> + struct intel_engine_cs *ring = rq->ring;
> struct drm_device *dev = ring->dev;
> + struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> uint64_t desc;
> uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj);
>
> @@ -299,21 +300,18 @@ static void execlists_elsp_write(struct drm_i915_gem_request *rq0,
> struct intel_engine_cs *ring = rq0->ring;
> struct drm_device *dev = ring->dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct drm_i915_gem_object *ctx_obj0 = rq0->ctx->engine[ring->id].state;
> - struct drm_i915_gem_object *ctx_obj1 = rq1 ?
> - rq1->ctx->engine[ring->id].state : NULL;
> uint64_t temp = 0;
> uint32_t desc[4];
>
> /* XXX: You must always write both descriptors in the order below. */
> - if (ctx_obj1)
> - temp = execlists_ctx_descriptor(ring, ctx_obj1);
> + if (rq1)
> + temp = execlists_ctx_descriptor(rq1);
> else
> temp = 0;
> desc[1] = (u32)(temp >> 32);
> desc[0] = (u32)temp;
>
> - temp = execlists_ctx_descriptor(ring, ctx_obj0);
> + temp = execlists_ctx_descriptor(rq0);
> desc[3] = (u32)(temp >> 32);
> desc[2] = (u32)temp;
>
_______________________________________________
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 16:41 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 [this message]
2015-07-08 17:04 ` Dave Gordon
2015-07-08 17:26 ` Mika Kuoppala
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=559D5261.7070600@intel.com \
--to=yu.dai@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=mika.kuoppala@linux.intel.com \
--cc=miku@iki.fi \
/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.