drm/i915: Workaround incoherence with fence updates on Valleyview
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 22 May 2013 16:08:06 +0000 (17:08 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 23 May 2013 10:51:31 +0000 (12:51 +0200)
commit2dc8aae06d53458dd3624dc0accd4f81100ee631
treefbafe6fc933bf63356aa24e5797ed7f4d7ec30c1
parentdf0a67979543e716d411eb11406848dcb50abd0a
drm/i915: Workaround incoherence with fence updates on Valleyview

In commit 25ff1195f8a0b3724541ae7bbe331b4296de9c06
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 4 21:31:03 2013 +0100

    drm/i915: Workaround incoherence between fences and LLC across multiple CPUs

we introduced an empirical workaround for memory corruption when using
fences from multiple CPUs. At the time, we did not have any results for
Valleyview, so the presumption was that it was limited to recent
generations using LLC. Now we have evidence that Valleyview also suffers
incoherence and requires a similar but different workaround. For
Valleyview, the wbinvd instruction is insufficient and we require the
serialising register write per-CPU. Conversely, that serialising
register write is not enough for SNB/IVB/HSW. To compromise and keep the
code relatively clean, employ both serialisation techniques in the same
workaround.

Reported-by: Jon Bloomfield <jon.bloomfield@intel.com>
Tested-by: Jon Bloomfield <jon.bloomfield@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62191
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c