[Intel-gfx] [PATCH 89/89] drm/i915/skl: Disable contexts if execlists aren't enabled

Chris Wilson chris at chris-wilson.co.uk
Fri Sep 26 17:47:02 CEST 2014


On Fri, Sep 26, 2014 at 06:28:53PM +0300, Mika Kuoppala wrote:
> Damien Lespiau <damien.lespiau at intel.com> writes:
> 
> > We were hiting a BUG() in get_context_size() with execlist disabled.
> >
> > "legacy" contexts are not supported on gen9 so we don't have a gen9
> > specific size to add in there. Instead, let's disable legacy contexts
> > altogether on gen9, whether we're booting with execlist enabled or not.
> >
> > Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
> 
> Reviewed-by: Mika Kuoppala <mika.kuoppala at intel.com>
> 
> > ---
> >  drivers/gpu/drm/i915/i915_gem_context.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> > index a5221d8..ec81d8a 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_context.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> > @@ -320,7 +320,7 @@ int i915_gem_context_init(struct drm_device *dev)
> >  	if (WARN_ON(dev_priv->ring[RCS].default_context))
> >  		return 0;
> >  
> > -	if (i915.enable_execlists) {
> > +	if (INTEL_INFO(dev)->gen >= 9 || i915.enable_execlists) {
> >  		/* NB: intentionally left blank. We will allocate our own
> >  		 * backing objects as we need them, thank you very much */
> >  		dev_priv->hw_context_size = 0;

I wouldn't have written it like this, since this hides the error, and
confuddles the intention of that branch, rather than embracing it.

diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index 102e8a7bcef6..f471b3511d80 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -129,7 +129,10 @@ static int get_context_size(struct drm_device *dev)
                ret = GEN8_CXT_TOTAL_SIZE;
                break;
        default:
-               BUG();
+               WARN("context size not known for gen %d\n",
+                    INTEL_INFO(dev)->gen);
+               ret = -1;
+               break;
        }
 

Would keep the fixme in place and keep the kernel running.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list