]> git.baikalelectronics.ru Git - kernel.git/commit
agp/intel: Serialise after GTT updates
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 26 Jan 2015 10:47:10 +0000 (10:47 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 28 Jan 2015 09:15:28 +0000 (10:15 +0100)
commita47959f5d3cefd31253186773cf14bbf0c46ab0f
tree65aabb0a9ed28409e13e1ebde7a5584ea89a4577
parent5ac16a8fc6810e8e600ce182562b97a44ab54bc4
agp/intel: Serialise after GTT updates

An interesting bug occurs on Pineview through which the root cause is
that the writes of the PTE values into the GTT is not serialised with
subsequent memory access through the GTT (when using WC updates of the
PTE values). This is despite there being a posting read after the GTT
update. However, by changing the address of the posting read, the memory
access is indeed serialised correctly.

Whilst we are manipulating the memory barriers, we can remove the
compiler :memory restraint on the intermediate PTE writes knowing that
we explicitly perform a posting read afterwards.

v2: Replace posting reads with explicit write memory barriers - in
particular this is advantages in case of single page objects. Update
comments to mention this issue is only with WC writes.

Testcase: igt/gem_exec_big #pnv
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88191
Tested-by: huax.lu@intel.com (v1)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/char/agp/intel-gtt.c