On Mon, Jan 30, 2012 at 04:55:49PM +0100, Daniel Vetter wrote: > Chris Wilson reported that with a bunch of patches to no longer force > batchbuffer (in most cases at least) into the mappable part of gtt > that his Pineview died while prefetching the last page of the gtt. > > Turns out that since my intel-gtt rewrite we don't actually put a > dummy pte in that last page anymore. Which left me rather puzzled > because Chris' error_state was the first ever since that rewrite that > indicated a dead gpu due to prefetch. > > So I've gone ahead and created the gem_cs_prefetch testcase which > reliably manages to execute a batch on the last page. Of all the > machines Chris and I have tried this on only his Pineview fell over, > all the others handled the invalid pte right after the end of the > batch correctly. > > The other thing is that due to my intel-gtt we've also started to use > the non-mappable part of the gtt. So my theory is that this guard page > was only necessary when we didn't use and hence also didn't set up any > dummy ptes to the scratch page in that area. In that case the cs would > prefetch into the unmappable gtt area and fail over on the invalid > pte. > > So given that this guard page smells like it just duct-taped over an > issue in our code I've simply removed it. And this seems to work! > > Now we always run the risk that an odd machine we don't have in our > test labs needs this, but > - we now have an excellent testcase to diagnose any such issues > - and the patch is easy to revert. > Hence I prefer if we try to get rid of this. > > Tested-by: Chris Wilson <chris at chris-wilson.co.uk> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44748 > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch> Ok, I've seriously botched things up at testing. This actually blows up my g33 (which works fine without the patch), so we need that darn guard page. I'll fix this mess up. -Daniel -- Daniel Vetter Mail: daniel at ffwll.ch Mobile: +41 (0)79 365 57 48