Skip to contentSkip to conversation

tools headers uapi: Synchronize i915_drm.h

tip:perf/urgent tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Nov 21, 2018

lore
Share & tools
lore
#0 lore raw
Commit-ID:  53f00f4548ef700e3c6867a35fd7d4f824cd165a
Gitweb:     https://git.kernel.org/tip/53f00f4548ef700e3c6867a35fd7d4f824cd165a
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Mon, 19 Nov 2018 12:17:42 -0800
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 19 Nov 2018 12:17:42 -0800

tools headers uapi: Synchronize i915_drm.h

To pick up the changes in:

900ccf30f9e1 ("drm/i915: Only force GGTT coherency w/a on required chipsets")

No changes are required in tools/ nor does anything gets automatically generated to be used in the 'perf trace' syscall arg beautifiers.

This silences this perf build warning:

Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs from latest version at 'include/uapi/drm/i915_drm.h' diff -u tools/include/uapi/drm/i915_drm.h include/uapi/drm/i915_drm.h

---
 tools/include/uapi/drm/i915_drm.h | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
tools/include/uapi/drm/i915_drm.h +22 -0
index 7f5634ce8e88..a4446f452040 100644
@@ -529,6 +529,28 @@ typedef struct drm_i915_irq_wait {
  */
 #define I915_PARAM_CS_TIMESTAMP_FREQUENCY 51
 
+/*
+ * Once upon a time we supposed that writes through the GGTT would be
+ * immediately in physical memory (once flushed out of the CPU path). However,
+ * on a few different processors and chipsets, this is not necessarily the case
+ * as the writes appear to be buffered internally. Thus a read of the backing
+ * storage (physical memory) via a different path (with different physical tags
+ * to the indirect write via the GGTT) will see stale values from before
+ * the GGTT write. Inside the kernel, we can for the most part keep track of
+ * the different read/write domains in use (e.g. set-domain), but the assumption
+ * of coherency is baked into the ABI, hence reporting its true state in this
+ * parameter.
+ *
+ * Reports true when writes via mmap_gtt are immediately visible following an
+ * lfence to flush the WCB.
+ *
+ * Reports false when writes via mmap_gtt are indeterminately delayed in an in
+ * internal buffer and are _not_ immediately visible to third parties accessing
+ * directly via mmap_cpu/mmap_wc. Use of mmap_gtt as part of an IPC
+ * communications channel when reporting false is strongly disadvised.
+ */
+#define I915_PARAM_MMAP_GTT_COHERENT	52
+
 typedef struct drm_i915_getparam {
 	__s32 param;
 	/*