]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/g4x: Improve gpu reset reliability
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Fri, 19 May 2017 09:13:40 +0000 (12:13 +0300)
committerMika Kuoppala <mika.kuoppala@intel.com>
Fri, 19 May 2017 10:59:09 +0000 (13:59 +0300)
commite35c08321ea34f0573ea886fd0e9923d8df9ef60
tree96294afb02d0f933c868452e97326263801c7ce8
parentfb43bf87a7e11cd5d9da9744c386394a73a241a9
drm/i915/g4x: Improve gpu reset reliability

ELK seems to very picky about the preconditions to reset.
Evidence on Eaglelake (8086:2e12 (rev 03)) shows that it does
not like if reset occurs when there is active ring.

Ville found out that there is workaround with name
'WaMediaResetMainRingCleanup' which suggests that we need to
cleanup rings before resetting. It is unclear what cleanup
exactly means but evidence shows that stopping the ring
does have an effect on reset reliability. This patch makes
reset successful on hangs induced by chained batches (the igt ones).
Note that if the hang is inside a shader, it is possible
that our attempts to stop the ring achieves anything.

v2: zero ctl,head,tail also. bug ref. use driver debugs (Chris)
v3: specify platform on testcases, comment tidyup (Chris)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100942
Testcase: igt/gem_busy/*-hang #elk
Testcase: igt/gem_ringfill/hang-* #elk
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170519091340.21439-1-mika.kuoppala@intel.com
drivers/gpu/drm/i915/intel_uncore.c