Stéphane Marchesin marcheu@chromium.org writes:
While investing some Sandy Bridge rendering corruption, I found out that all physical memory pages below 1MiB were returning garbage when read through the GTT. This has been causing graphics corruption (when it's used for textures, render targets and pixmaps) and GPU hangups (when it's used for GPU batch buffers).
It would be possible to exlude GFP_DMA from the page allocator. That covers the first 16MB. You just need a custom zone list with ZONE_DMA.
-Andi