Quoting Matthew Auld (2019-02-14 14:57:24) > + void *s; > + struct page *page; > + > + for_each_sgt_page(page, iter, vma->pages) { > + s = kmap_atomic(page); These pages are not coherent, so missing the point of using UC/WC access to get what the GPU saw and not what the CPU last speculated. Typically, and historically, we would use clflush before after. Just be careful not to use drm_clflush as that invokes wbinvd via on_each_cpu and is therefore illegal. Alternatively would be to kmap them as WC. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx