]> 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)
commit1f84dfb98322a1a61a59391c6522004d620caae3
tree65aabb0a9ed28409e13e1ebde7a5584ea89a4577
parent0656dd8a01c42966611b8e34c3eabc937a42a091
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