[Intel-gfx] [PATCH] drm/i915: Fix context size calculation on SNB/IVB/VLV

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Aug 22 20:45:14 CEST 2013


On Thu, Aug 22, 2013 at 11:30:55AM -0700, Ben Widawsky wrote:
> On Thu, Aug 22, 2013 at 07:23:13PM +0300, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > 
> > All the different context sizes reported in the CXT_SIZE register
> > aren't meant to be simply added together.
> > 
> > While BSpec is somewhat unclear on the topic of the actual context
> > size, empirical tests have now revealed the truth. So let's add a
> > big fat comment to remind people how it all works.
> 
> By the way. I've done some digging. I believe (75% certain) pre-HSW,
> every context save writes the entire data. So if you wanted to set some
> pattern and see what HW actually overwrites, it should be doable. HSW+
> though we can't do that.

That's actually what I did. I dumped the context to disk and looked for
magic numbers and checked their offsets against the context layout
information in BSpec.

Now sure how HSW works. If it just jumps over some parts of the context
that don't need saving, then we could certainly use the same method.
Just identify some magic numbers in some high offsets, make sure to use
that part of the hardware to force it to save it, and then look for
those magic numbers in the dump. That'd easily tell us which parts of
the context it never saves (eg. the execlist context).

But if it dynamically rearranges the contents of the context image
every time, then it won't work obviously.

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list