]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit - drivers/gpu/drm/i915/i915_reg.h
drm/i915: Add WaKBLVECSSemaphoreWaitPoll
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Thu, 7 Jun 2018 17:24:44 +0000 (20:24 +0300)
committerMika Kuoppala <mika.kuoppala@linux.intel.com>
Fri, 8 Jun 2018 09:16:20 +0000 (12:16 +0300)
commit39e78234b0be7ae543db8c8ea3cd2e433b8a7bec
tree7ee5b314a67ffbd093660696e7912d55cacf2fdc
parentc30acb04e7c401d5b412ec925ff4b862bc77b0b8
drm/i915: Add WaKBLVECSSemaphoreWaitPoll

There is a problem with kbl up to rev E0 where a heavy
memory/fabric traffic from adjacent engine(s) can cause an engine
reset to fail. This traffic can be from normal memory accesses
or it can be from heavy polling on a semaphore wait.

For engine hogging causing a fail, we already fallback to
full reset. Which effectively stops all engines and thus
we only add a workaround documentation.

For the semaphore wait loop poll case, we add one microsecond
poll interval to semaphore wait to guarantee bandwidth for
the reset preration. The side effect is that we make semaphore
completion latencies also 1us longer.

v2: Let full reset handle the adjacent engine idling (Chris)
v3: Skip render engine (Joonas), please checkpatch on define (Mika)

References: https://bugs.freedesktop.org/show_bug.cgi?id=106684
References: VTHSD#2227190, HSDES#1604216706, BSID#0917
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180607172444.17080-1-mika.kuoppala@linux.intel.com
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_uncore.c
drivers/gpu/drm/i915/intel_workarounds.c