Comment 491 for bug 359392

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

> 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?

For further testing, I enabled DEBUG_MIGRATE in the xserver an run the repro script again.
After X froze, the last line logged was:
-> 0x5750ec0 (0xffe0a00) (1280x25) (c)

Assuming the size of the pixmap is 4 bpp x 1280 x 25, this pixmap ends at FFFFE00, which is pretty close to the end of the exa offscreen buffer.

Discussion with Jesse on ubuntu-x learned the gpu might read more then the pixmap size because of prefetching or because of tiling. Prefetching would do maximum one 4kB page. As my tests yesterday showed pushing back exa offscreen with 4 kB was not enough to prevent the freeze, tiling seems the most likely cause in this case. For the GM965 tiling would extend the object to a multiple of 512 width.

Attached is the patch I am currently testing; no freeze in > 2 hours.
However, could pixmaps get a height larger then VirtualY? My logs don't show any, but I think that would need further testing.