On Thu, Dec 08, 2016 at 05:45:23PM +0000, Tvrtko Ursulin wrote:
> 
> On 07/12/2016 13:58, Chris Wilson wrote:
> >Just a simple move to avoid a forward declaration.
> 
> Patch subject is wrong - you are moving
> intel_logical_ring_alloc_request_extras.

I moved what I said, what diff shows is the opposite motion!
 
> >Signed-off-by: Chris Wilson <[email protected]>
> >---
> > drivers/gpu/drm/i915/intel_lrc.c | 132 
> > +++++++++++++++++++--------------------
> > 1 file changed, 65 insertions(+), 67 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/intel_lrc.c 
> >b/drivers/gpu/drm/i915/intel_lrc.c
> >index 8b412880e88c..5cabe4e9d22f 100644
> >--- a/drivers/gpu/drm/i915/intel_lrc.c
> >+++ b/drivers/gpu/drm/i915/intel_lrc.c
> >@@ -230,8 +230,6 @@ enum {
> >
> > static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
> >                                         struct intel_engine_cs *engine);
> >-static int intel_lr_context_pin(struct i915_gem_context *ctx,
> >-                            struct intel_engine_cs *engine);
> > static void execlists_init_reg_state(u32 *reg_state,
> >                                  struct i915_gem_context *ctx,
> >                                  struct intel_engine_cs *engine,
> >@@ -774,71 +772,6 @@ static void execlists_schedule(struct 
> >drm_i915_gem_request *request, int prio)
> >     /* XXX Do we need to preempt to make room for us and our deps? */
> > }
> >
> >-int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request 
> >*request)
> >-{
> >-    struct intel_engine_cs *engine = request->engine;
> >-    struct intel_context *ce = &request->ctx->engine[engine->id];
> >-    int ret;
> >-
> >-    /* Flush enough space to reduce the likelihood of waiting after
> >-     * we start building the request - in which case we will just
> >-     * have to repeat work.
> >-     */
> >-    request->reserved_space += EXECLISTS_REQUEST_SIZE;
> >-
> >-    if (!ce->state) {
> >-            ret = execlists_context_deferred_alloc(request->ctx, engine);
> >-            if (ret)
> >-                    return ret;
> >-    }
> >-
> >-    request->ring = ce->ring;
> >-
> >-    ret = intel_lr_context_pin(request->ctx, engine);
> >-    if (ret)
> >-            return ret;
> >-
> >-    if (i915.enable_guc_submission) {
> >-            /*
> >-             * Check that the GuC has space for the request before
> >-             * going any further, as the i915_add_request() call
> >-             * later on mustn't fail ...
> >-             */
> >-            ret = i915_guc_wq_reserve(request);
> >-            if (ret)
> >-                    goto err_unpin;
> >-    }
> >-
> >-    ret = intel_ring_begin(request, 0);
> >-    if (ret)
> >-            goto err_unreserve;
> >-
> >-    if (!ce->initialised) {
> >-            ret = engine->init_context(request);
> >-            if (ret)
> >-                    goto err_unreserve;
> >-
> >-            ce->initialised = true;
> >-    }
> >-
> >-    /* Note that after this point, we have committed to using
> >-     * this request as it is being used to both track the
> >-     * state of engine initialisation and liveness of the
> >-     * golden renderstate above. Think twice before you try
> >-     * to cancel/unwind this request now.
> >-     */
> >-
> >-    request->reserved_space -= EXECLISTS_REQUEST_SIZE;
> >-    return 0;
> >-
> >-err_unreserve:
> >-    if (i915.enable_guc_submission)
> >-            i915_guc_wq_unreserve(request);
> >-err_unpin:
> >-    intel_lr_context_unpin(request->ctx, engine);
> >-    return ret;
> >-}
> >-
> > static int intel_lr_context_pin(struct i915_gem_context *ctx,
> >                             struct intel_engine_cs *engine)
> > {
> >@@ -911,6 +844,71 @@ void intel_lr_context_unpin(struct i915_gem_context 
> >*ctx,
> >     i915_gem_context_put(ctx);
> > }
> >
> >+int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request 
> >*request)
> >+{
> >+    struct intel_engine_cs *engine = request->engine;
> >+    struct intel_context *ce = &request->ctx->engine[engine->id];
> >+    int ret;
> >+
> >+    /* Flush enough space to reduce the likelihood of waiting after
> >+     * we start building the request - in which case we will just
> >+     * have to repeat work.
> >+     */
> >+    request->reserved_space += EXECLISTS_REQUEST_SIZE;
> >+
> >+    if (!ce->state) {
> >+            ret = execlists_context_deferred_alloc(request->ctx, engine);
> >+            if (ret)
> >+                    return ret;
> >+    }
> >+
> >+    request->ring = ce->ring;
> >+
> >+    ret = intel_lr_context_pin(request->ctx, engine);
> >+    if (ret)
> >+            return ret;
> >+
> >+    if (i915.enable_guc_submission) {
> >+            /*
> >+             * Check that the GuC has space for the request before
> >+             * going any further, as the i915_add_request() call
> >+             * later on mustn't fail ...
> >+             */
> >+            ret = i915_guc_wq_reserve(request);
> >+            if (ret)
> >+                    goto err_unpin;
> >+    }
> >+
> >+    ret = intel_ring_begin(request, 0);
> >+    if (ret)
> >+            goto err_unreserve;
> >+
> >+    if (!ce->initialised) {
> >+            ret = engine->init_context(request);
> >+            if (ret)
> >+                    goto err_unreserve;
> >+
> >+            ce->initialised = true;
> >+    }
> >+
> >+    /* Note that after this point, we have committed to using
> >+     * this request as it is being used to both track the
> >+     * state of engine initialisation and liveness of the
> >+     * golden renderstate above. Think twice before you try
> >+     * to cancel/unwind this request now.
> >+     */
> >+
> >+    request->reserved_space -= EXECLISTS_REQUEST_SIZE;
> >+    return 0;
> >+
> >+err_unreserve:
> >+    if (i915.enable_guc_submission)
> >+            i915_guc_wq_unreserve(request);
> >+err_unpin:
> >+    intel_lr_context_unpin(request->ctx, engine);
> >+    return ret;
> >+}
> >+
> > static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request 
> > *req)
> > {
> >     int ret, i;
> >
> 
> Poor man's split view shows proper use of cut and paste. With the
> subject fixed:

Pfiffle! I standby the cut'n'paste as I performed it!

All motion is relative and whatnot.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to