On Wed, Dec 16, 2015 at 08:25:42PM -0200, Tiago Vignatti wrote:
This program can be used to detect when CPU writes in the dma-buf mapped object don't land in scanout due cache incoherency.
Although this seems a problem inherently of non-LCC machines ("Atom"), this particular test catches a cache dirt on scanout on LLC machines as well. It's inspired in Ville's kms_pwrite_crc.c and can be used also to test the correctness of the driver's begin_cpu_access and end_cpu_access (which requires i915 implementation.
To see the need for flush, one has to run this same binary a few times cause it's not 100% reproducible -- what I usually do is the following, using '-n' option to not call the sync ioctls:
$ while ((1)) ; do ./kms_mmap_write_crc -n; done # in terminal A $ find / # in terminal B
Sounds like we need a igt_fork_memhog_helper() and repeat the test for 20s? until faiure. -Chris