]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: fix HW lockup due to missing RPS IRQ workaround on GEN6
authorImre Deak <imre.deak@intel.com>
Fri, 19 Dec 2014 17:33:26 +0000 (19:33 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 12 Jan 2015 08:52:41 +0000 (10:52 +0200)
commit89e2352f93828d7bc830855dfe6caa87a8817272
tree9fbad4f0a0c0d42aad5913485a53a3dc55dd2769
parent5fcfce9c80925c1bdf38d941f845f80b6ddbed80
drm/i915: fix HW lockup due to missing RPS IRQ workaround on GEN6

In

commit d13653b2a8173bebaf9d11bfa915ea82b707b0f8
Author: Imre Deak <imre.deak@intel.com>
Date:   Mon Dec 15 18:59:28 2014 +0200

    drm/i915: sanitize RPS resetting during GPU reset

we disable RPS interrupts during GPU resetting, but don't apply the
necessary GEN6 HW workaround. This leads to a HW lockup during a
subsequent "looping batchbuffer" workload. This is triggered by the
testcase that submits exactly this kind of workload after a simulated
GPU reset. I'm not sure how likely the bug would have triggered
otherwise, since we would have applied the workaround anyway shortly
after the GPU reset, when enabling GT powersaving from the deferred
work.

This may also fix unrelated issues, since during driver loading /
suspending we also disable RPS interrupts and so we also had a short
window during the rest of the loading / resuming where a similar
workload could run without the workaround applied.

v2:
- separate the fix to route RPS interrupts to the CPU on GEN9 too
  to a separate patch (Daniel)

Bisected-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Testcase: igt/gem_reset_stats/ban-ctx-render
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87429
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_pm.c