linux_dsm_epyc7002/drivers/char/agp
Chris Wilson 983d308cb8 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>
2015-01-28 10:15:28 +01:00
..
agp.h agp: Support 64-bit APBASE 2014-01-06 17:49:22 -07:00
ali-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
alpha-agp.c PCI: Convert alloc_pci_dev(void) to pci_alloc_dev(bus) 2013-06-05 13:49:36 -06:00
amd64-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
amd-k7-agp.c agp: Use pci_resource_start() to get CPU physical address for BAR 2014-01-07 11:36:35 -07:00
ati-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
backend.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
compat_ioctl.c
compat_ioctl.h
efficeon-agp.c agp: Support 64-bit APBASE 2014-01-06 17:49:22 -07:00
frontend.c agp: remove read/write stubs 2014-08-02 06:43:51 +10:00
generic.c drivers/char: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
hp-agp.c [IA64] agp/hp-agp: Allow binding user memory to the AGP GART 2011-08-23 13:31:59 -07:00
i460-agp.c Drivers: char: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
intel-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
intel-agp.h agp/intel: Use pci_bus_address() to get GTTADR bus address 2014-01-07 11:37:12 -07:00
intel-gtt.c agp/intel: Serialise after GTT updates 2015-01-28 10:15:28 +01:00
isoch.c
Kconfig drm/i915: Make AGP support optional 2013-11-08 18:37:32 +01:00
Makefile drm/i915: Make AGP support optional 2013-11-08 18:37:32 +01:00
nvidia-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
parisc-agp.c parisc: agp/parisc-agp: allow binding of user memory to the AGP GART 2013-07-31 23:42:00 +02:00
sgi-agp.c drivers/char: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
sis-agp.c agp: Support 64-bit APBASE 2014-01-06 17:49:22 -07:00
sworks-agp.c Drivers: char: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
uninorth-agp.c Drivers: char: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
via-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00