Ok, so corruption happens only when swap is enabled, so I suspect it's caused by bit_17 not restored (or restored incorrectly) after paging operations.
Question to the driver developers:
What will happen if pages allocated by drm_calloc, i915_gem.c:2018, and swizzled only right after allocation, will be swapped out, and then loaded into memory where bit 17 differs?
Ok, so corruption happens only when swap is enabled, so I suspect it's caused by bit_17 not restored (or restored incorrectly) after paging operations.
Question to the driver developers:
What will happen if pages allocated by drm_calloc, i915_gem.c:2018, and swizzled only right after allocation, will be swapped out, and then loaded into memory where bit 17 differs?