[Mesa-dev] [PATCH] i965: Fix GPU hangs when a blorp batch is the first thing to execute.
Kenneth Graunke
kenneth at whitecape.org
Thu May 2 13:25:00 PDT 2013
On 05/02/2013 01:08 PM, Paul Berry wrote:
> On 2 May 2013 12:54, Chris Wilson <chris at chris-wilson.co.uk
> <mailto:chris at chris-wilson.co.uk>> wrote:
>
> On Thu, May 02, 2013 at 09:07:08AM -0700, Eric Anholt wrote:
> > Chris Wilson <chris at chris-wilson.co.uk
> <mailto:chris at chris-wilson.co.uk>> writes:
> >
> > > On Thu, May 02, 2013 at 07:26:06AM -0700, Paul Berry wrote:
> > >> Can you provide a documentation reference for why the value
> we're
> > >> currently programming (0xfffff001) is unsafe, and why
> 0x7fff0001 is
> > >> correct?� I don't see anything in the bspec.
> > >
> > > The largest GTT size for gen6 is 2GiB (it can be smaller on the
> whim of
> > > the BIOS, though we try to reset it back to 2GiB in i915.ko).
> The upper
> > > bound is used by the hardware to prevent invalid reads and
> return 0,
> > > this is the value we program to ~4GiB. The cause of these hangs
> is the
> > > constant data being read from addresses above 2GiB i.e. beyond
> the end
> > > of the GTT - and so prevented by programming the upper bound to
> the end
> > > of the GTT. Those with access to the simulator can hopefully verify
> > > this, and perhaps we should add this to the set of known bad
> commands in
> > > igt.
> >
> > The simulator has no complaints about these batches.
> >
> > I don't think your model of how the constants work (that there's some
> > undefined, possibly >2gb address being loaded at shader dispatch
> time,
> > which is fixed by sending these packets) is actually how they work --
> > From my reading, the constants are loaded at constant packet time
> into a
> > small buffer on the GPU. If the last packet and the shader disagree
> > about that buffer, the GPU sometimes blows up.
>
> That wouldn't explain why setting the DynamicStateUpperBound to 2GiB
> also works around the hang, would it?
> -Chris
>
>
> Oh, it wasn't clear from your previous email that this was the case. In
> that case I like Ken's suggestion of setting the DynamicStateUpperBound
> to the end of the batch buffer. I think it's sensible to apply Eric's
> fix as well, just to be on the safe side.
>
> Ken, how long ago did you bump the kernel requirement to ensure relaxed
> relocation support? If it was recent, then Eric's fix should be the one
> we backport to stable releases.
About a month ago, on master. So not on 9.1.
We should cherry-pick Eric's fix to 9.1 ASAP and do a release, hopefully
next week sometime.
More information about the mesa-dev
mailing list