diff mbox series

[1/9] drm/i915: Make user contexts bannable again!

Message ID 20190217161159.815-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [1/9] drm/i915: Make user contexts bannable again! | expand

Commit Message

Chris Wilson Feb. 17, 2019, 4:11 p.m. UTC
Since moving the bannable boolean into the context flags, we lost the
default setting of contexts being bannable. Oops.

Sadly because we have multi-level banning scheme, our testcase for being
banned cannot distinguish between the expected ban on the context and
the applied banned via the fd.

Fixes: 6095868a271d ("drm/i915: Complete kerneldoc for struct i915_gem_context")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v4.11+
---
 drivers/gpu/drm/i915/i915_gem_context.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Mika Kuoppala Feb. 18, 2019, 10:45 a.m. UTC | #1
Chris Wilson <chris@chris-wilson.co.uk> writes:

> Since moving the bannable boolean into the context flags, we lost the
> default setting of contexts being bannable. Oops.
>
> Sadly because we have multi-level banning scheme, our testcase for being
> banned cannot distinguish between the expected ban on the context and
> the applied banned via the fd.
>
> Fixes: 6095868a271d ("drm/i915: Complete kerneldoc for struct i915_gem_context")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Cc: <stable@vger.kernel.org> # v4.11+
> ---
>  drivers/gpu/drm/i915/i915_gem_context.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> index 280813a4bf82..102866967998 100644
> --- a/drivers/gpu/drm/i915/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> @@ -364,6 +364,7 @@ __create_hw_context(struct drm_i915_private *dev_priv,
>  	list_add_tail(&ctx->link, &dev_priv->contexts.list);
>  	ctx->i915 = dev_priv;
>  	ctx->sched.priority = I915_USER_PRIORITY(I915_PRIORITY_NORMAL);
> +	ctx->user_flags = BIT(UCONTEXT_BANNABLE);
>

But it is there, after setting the ring size.

-Mika

>  	for (n = 0; n < ARRAY_SIZE(ctx->__engine); n++)
>  		intel_context_init(&ctx->__engine[n], ctx, dev_priv->engine[n]);
> -- 
> 2.20.1
Chris Wilson Feb. 18, 2019, 10:51 a.m. UTC | #2
Quoting Mika Kuoppala (2019-02-18 10:45:32)
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > Since moving the bannable boolean into the context flags, we lost the
> > default setting of contexts being bannable. Oops.
> >
> > Sadly because we have multi-level banning scheme, our testcase for being
> > banned cannot distinguish between the expected ban on the context and
> > the applied banned via the fd.
> >
> > Fixes: 6095868a271d ("drm/i915: Complete kerneldoc for struct i915_gem_context")
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > Cc: <stable@vger.kernel.org> # v4.11+
> > ---
> >  drivers/gpu/drm/i915/i915_gem_context.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> > index 280813a4bf82..102866967998 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_context.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> > @@ -364,6 +364,7 @@ __create_hw_context(struct drm_i915_private *dev_priv,
> >       list_add_tail(&ctx->link, &dev_priv->contexts.list);
> >       ctx->i915 = dev_priv;
> >       ctx->sched.priority = I915_USER_PRIORITY(I915_PRIORITY_NORMAL);
> > +     ctx->user_flags = BIT(UCONTEXT_BANNABLE);
> >
> 
> But it is there, after setting the ring size.

Hmm. However my mesa context didn't get banned until the fd did,
which is not what was intended. Odd.

So which is preferrable setting user_flags explicitly or using the
helper, probably the latter since that's the style we already have.
-Chris
Sasha Levin Feb. 22, 2019, 3:24 p.m. UTC | #3
Hi,

[This is an automated email]

This commit has been processed because it contains a "Fixes:" tag,
fixing commit: 6095868a271d drm/i915: Complete kerneldoc for struct i915_gem_context.

The bot has tested the following trees: v4.20.11, v4.19.24, v4.14.102.

v4.20.11: Failed to apply! Possible dependencies:
    7651a4452ddf ("drm/i915: Reserve some priority bits for internal use")

v4.19.24: Failed to apply! Possible dependencies:
    7651a4452ddf ("drm/i915: Reserve some priority bits for internal use")

v4.14.102: Failed to apply! Possible dependencies:
    0a53bc07f044 ("drm/i915/gvt: Separate cmd scan from request allocation")
    0cce2823ed37 ("drm/i915/gvt: Refine error handling for prepare_execlist_workload")
    1406a14b0ed9 ("drm/i915/gvt: Introduce intel_vgpu_submission")
    1603660b3342 ("drm/i915/gvt: set max priority for gvt context")
    465c403cb508 ("drm/i915: introduce simple gemfs")
    54cff6479fd8 ("drm/i915/gvt: Make elsp_dwords in the right order")
    7651a4452ddf ("drm/i915: Reserve some priority bits for internal use")
    9a9829e9eb8b ("drm/i915/gvt: Move workload cache init/clean into intel_vgpu_{setup, clean}_submission()")
    a3cfdca920b2 ("drm/i915/gvt: Add error handling for intel_gvt_scan_and_shadow_workload")
    b7268c5eed0a ("drm/i915: Pack params to engine->schedule() into a struct")
    d8235b5e5584 ("drm/i915/gvt: Move common workload preparation into prepare_workload()")
    e61e0f51ba79 ("drm/i915: Rename drm_i915_gem_request to i915_request")
    e91ef99b9543 ("drm/i915/selftests: Remember to create the fake preempt context")
    f2880e04f3a5 ("drm/i915/gvt: Move request alloc to dispatch_workload path only")


How should we proceed with this patch?

--
Thanks,
Sasha
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index 280813a4bf82..102866967998 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -364,6 +364,7 @@  __create_hw_context(struct drm_i915_private *dev_priv,
 	list_add_tail(&ctx->link, &dev_priv->contexts.list);
 	ctx->i915 = dev_priv;
 	ctx->sched.priority = I915_USER_PRIORITY(I915_PRIORITY_NORMAL);
+	ctx->user_flags = BIT(UCONTEXT_BANNABLE);
 
 	for (n = 0; n < ARRAY_SIZE(ctx->__engine); n++)
 		intel_context_init(&ctx->__engine[n], ctx, dev_priv->engine[n]);