Comment 489 for bug 359392

Revision history for this message
Albert Damen (albrt) wrote :

Based on Eric Anholt's findings about freezes due to prefetching beyond end of aperture (b.fd.o 21488), I have done some testing.

With Eric's patch applied in kernel 2.6.30-rc6 I still got the freeze. That seemed to make sense: we are using EXA, and the exa offscreen buffer is using the last page in aperture. So BO's wouldn't use the last page in our case anyways.
Then I patched -intel and pushed back the exa offscreen buffer 4 kB below end of aperture (0x0ed3f000-0x0fffefff: exa offscreen). That still gave the freeze.
Then I pushed a bit harder, now by 32MB (0x0cd40000-0x0dffffff: exa offscreen) --> No freeze anymore.

The 32MB was not a random choice: it matches the 32 MB classic texture buffer we had until beginning of April, which was sitting between exa offscreen and end of aperture. Dropping patch 118_drop_legacy3d.patch, which removed the (unused) classic texture buffer, also solves the freeze issue for me. So maybe that patch (dated 1 April) has been the trigger for this bug?

Now the question is: Is something writing or reading beyond the end of the exa offscreen buffer? Without the 32 MB unused memory after the exa offscreen buffer, that would be beyond end of aperture. How can I find what is doing that?