[PATCH] drm: Restore double clflush on the last partial cacheline
Chris Wilson
chris at chris-wilson.co.uk
Thu May 5 08:19:11 UTC 2016
On Sun, May 01, 2016 at 09:15:03AM +0100, Chris Wilson wrote:
> This effectively reverts
>
> commit afcd950cafea6e27b739fe7772cbbeed37d05b8b
> Author: Chris Wilson <chris at chris-wilson.co.uk>
> Date: Wed Jun 10 15:58:01 2015 +0100
>
> drm: Avoid the double clflush on the last cache line in drm_clflush_virt_range()
>
> as we have observed issues with serialisation of the clflush operations
> on Baytrail+ Atoms with partial updates. Applying the double flush on the
> last cacheline forces that clflush to be ordered with respect to the
> previous clflush, and the mfence then protects against prefetches crossing
> the clflush boundary.
>
> The same issue can be demonstrated in userspace with igt/gem_exec_flush.
Fwiw, longer test cycles still show an issue along the pread/pwrite
paths. Not yet convinced if this is the only issue or if it is just
paper (though seemingly very pretty paper).
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the dri-devel
mailing list