Message ID | 1420646970-4897-1-git-send-email-thomas.daniel@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jan 07, 2015 at 04:09:30PM +0000, Thomas Daniel wrote: > During a suspend/resume cycle the hardware Context Status Buffer write pointer > is reset. However since recent changes to the init sequence the software CSB > read pointer is no longer reset. This means that context status events are not > handled correctly and new contexts are not written to the ELSP, resulting in an > apparent GPU hang. > > Pending further changes to the ring init code, just move the > ring->next_context_status_buffer initialization into i915_gem_context_enable to > fix this regression. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88097 Please cite the commit which introduced this regression (plus since it's just the switch of defaults) also the commit which broke the execlist code. And then add all the relevant ppl to the cc list of this patch. > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> > Signed-off-by: Thomas Daniel <thomas.daniel@intel.com> > --- > drivers/gpu/drm/i915/i915_gem_context.c | 1 + > drivers/gpu/drm/i915/intel_lrc.c | 1 - > 2 files changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c > index bf9778e..cc100c9 100644 > --- a/drivers/gpu/drm/i915/i915_gem_context.c > +++ b/drivers/gpu/drm/i915/i915_gem_context.c > @@ -412,6 +412,7 @@ int i915_gem_context_enable(struct drm_i915_private *dev_priv) > > if (i915.enable_execlists) { > for_each_ring(ring, dev_priv, i) { > + ring->next_context_status_buffer = 0; Hm, shouldn't we instead move this to the ring->init_hw callback instead? That was the split which broke things here after all, and imo it makes more sense. Otherwise someone might reorder the setup sequence a bit and get confused when the engine is enabled already but the sw side still has bogus state ... Thanks, Daniel > if (ring->init_context) { > ret = ring->init_context(ring, > ring->default_context); > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > index 7670a0f..4580267 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -1394,7 +1394,6 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin > INIT_LIST_HEAD(&ring->execlist_queue); > INIT_LIST_HEAD(&ring->execlist_retired_req_list); > spin_lock_init(&ring->execlist_lock); > - ring->next_context_status_buffer = 0; > > ret = i915_cmd_parser_init_ring(ring); > if (ret) > -- > 1.7.9.5 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
-------------------------------------Summary-------------------------------------
Platform Delta drm-intel-nightly Series Applied
PNV -23 363/364 340/364
ILK -30 364/366 334/366
SNB +4-56 443/450 391/450
IVB -36 496/498 460/498
BYT 288/289 288/289
HSW +11-36 542/564 517/564
BDW -25 415/417 390/417
-------------------------------------Detailed-------------------------------------
Platform Test drm-intel-nightly Series Applied
PNV igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-bcs-overwrite-source NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-rcs-early-read NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-rcs-overwrite-source NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-bcs-early-read NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-bcs-overwrite-source NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-rcs-early-read NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-rcs-overwrite-source NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
PNV igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible NSPT(2, M23M25)PASS(1, M25) NSPT(1, M25)
ILK igt_gem_concurrent_blit_gpu-bcs-early-read NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpu-bcs-overwrite-source NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpuX-bcs-early-read NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpuX-bcs-overwrite-source NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible NSPT(2, M26)PASS(1, M37) NSPT(1, M26)
ILK igt_kms_flip_nonexisting-fb DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_rcs-flip-vs-panning-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_rcs-wf_vblank-vs-dpms-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_render_direct-render DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_bcs-flip-vs-modeset-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_blocking-absolute-wf_vblank-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_busy-flip-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_flip-vs-dpms-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_flip-vs-panning DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_flip-vs-rmfb-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_plain-flip-fb-recreate-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_plain-flip-ts-check-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_rcs-flip-vs-dpms DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_rcs-flip-vs-modeset DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_rcs-flip-vs-panning DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_vblank-vs-hang DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_wf_vblank-ts-check DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
ILK igt_kms_flip_wf_vblank-vs-modeset-interruptible DMESG_WARN(3, M26)PASS(1, M37) DMESG_WARN(1, M26)
SNB igt_gem_concurrent_blit_gpu-bcs-early-read NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-early-read-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-overwrite-source NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-overwrite-source-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-early-read NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-overwrite-source NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-overwrite-source-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-early-read NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-early-read-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-overwrite-source NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-early-read NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-early-read-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-overwrite-source NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-forked NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible NSPT(2, M22)PASS(1, M35) NSPT(1, M22)
SNB igt_kms_cursor_crc_cursor-size-change NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_kms_flip_dpms-vs-vblank-race DMESG_WARN(3, M35M22)PASS(2, M35M22) PASS(1, M22)
SNB igt_kms_flip_dpms-vs-vblank-race-interruptible DMESG_WARN(2, M35M22)PASS(3, M35M22) PASS(1, M22)
SNB igt_kms_flip_event_leak NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_kms_flip_modeset-vs-vblank-race DMESG_WARN(4, M35M22)PASS(2, M35M22) PASS(1, M22)
SNB igt_kms_mmio_vs_cs_flip_setcrtc_vs_cs_flip NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_kms_mmio_vs_cs_flip_setplane_vs_cs_flip NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_kms_plane_plane-position-hole-pipe-B-plane-1 DMESG_WARN(1, M35)PASS(6, M35M22) PASS(1, M22)
SNB igt_kms_rotation_crc_primary-rotation NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_kms_rotation_crc_sprite-rotation NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_cursor NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_cursor-dpms NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_dpms-mode-unset-non-lpsp NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_dpms-non-lpsp NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_drm-resources-equal NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_fences NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_fences-dpms NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_gem-execbuf NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_gem-mmap-cpu NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_gem-mmap-gtt NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_gem-pread NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_i2c NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_modeset-non-lpsp NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_modeset-non-lpsp-stress-no-wait NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_pci-d3-state NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
SNB igt_pm_rpm_rte NSPT(2, M35M22)PASS(1, M35) NSPT(1, M22)
IVB igt_gem_concurrent_blit_gpu-bcs-early-read NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-early-read-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-overwrite-source NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-overwrite-source-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-early-read NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-early-read-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-overwrite-source NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-overwrite-source-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-early-read NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-early-read-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-overwrite-source NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-early-read NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-early-read-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-overwrite-source NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-forked NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
IVB igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible NSPT(2, M21M34)PASS(1, M34) NSPT(1, M34)
HSW igt_gem_concurrent_blit_gpu-bcs-early-read NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-early-read-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-overwrite-source NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-overwrite-source-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-early-read NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-early-read-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-overwrite-source NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-overwrite-source-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-early-read NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-early-read-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-overwrite-source NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-early-read NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-early-read-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-overwrite-source NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-forked NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible NSPT(2, M19M20)PASS(1, M40) NSPT(1, M20)
HSW igt_kms_flip_dpms-vs-vblank-race DMESG_WARN(1, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_flip_dpms-vs-vblank-race-interruptible DMESG_WARN(2, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_flip_flip-vs-dpms-off-vs-modeset DMESG_WARN(1, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_flip_flip-vs-dpms-off-vs-modeset-interruptible DMESG_WARN(2, M40M19)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_flip_modeset-vs-vblank-race DMESG_WARN(1, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_flip_modeset-vs-vblank-race-interruptible DMESG_WARN(1, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_flip_single-buffer-flip-vs-dpms-off-vs-modeset-interruptible DMESG_WARN(2, M40)PASS(3, M19M20) PASS(1, M20)
HSW igt_kms_plane_plane-panning-bottom-right-pipe-B-plane-1 TIMEOUT(1, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_plane_plane-panning-bottom-right-pipe-B-plane-2 TIMEOUT(1, M40)PASS(2, M19M20) PASS(1, M20)
HSW igt_kms_plane_plane-panning-bottom-right-pipe-C-plane-1 TIMEOUT(3, M40)PASS(4, M19M40M20) PASS(1, M20)
HSW igt_pm_rpm_modeset-non-lpsp-stress-no-wait NSPT(2, M19)DMESG_WARN(1, M40)PASS(4, M40M20) PASS(1, M20)
BDW igt_gem_concurrent_blit_gpu-bcs-early-read NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-bcs-overwrite-source NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-rcs-early-read NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-rcs-overwrite-source NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-bcs-early-read NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-bcs-overwrite-source NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-rcs-early-read NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-rcs-overwrite-source NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
BDW igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible NSPT(2, M28M30)PASS(1, M30) NSPT(1, M30)
*BDW igt_gem_multi_bsd_sync_loop PASS(3, M30M28) DMESG_WARN(1, M30)
Note: You need to pay more attention to line start with '*'
On Wed, Jan 07, 2015 at 04:09:30PM +0000, Thomas Daniel wrote: > During a suspend/resume cycle the hardware Context Status Buffer write pointer > is reset. However since recent changes to the init sequence the software CSB > read pointer is no longer reset. This means that context status events are not > handled correctly and new contexts are not written to the ELSP, resulting in an > apparent GPU hang. > > Pending further changes to the ring init code, just move the > ring->next_context_status_buffer initialization into i915_gem_context_enable to > fix this regression. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88097 There's also Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88096 Can you please take a look at that one too? -Daniel > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> > Signed-off-by: Thomas Daniel <thomas.daniel@intel.com> > --- > drivers/gpu/drm/i915/i915_gem_context.c | 1 + > drivers/gpu/drm/i915/intel_lrc.c | 1 - > 2 files changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c > index bf9778e..cc100c9 100644 > --- a/drivers/gpu/drm/i915/i915_gem_context.c > +++ b/drivers/gpu/drm/i915/i915_gem_context.c > @@ -412,6 +412,7 @@ int i915_gem_context_enable(struct drm_i915_private *dev_priv) > > if (i915.enable_execlists) { > for_each_ring(ring, dev_priv, i) { > + ring->next_context_status_buffer = 0; > if (ring->init_context) { > ret = ring->init_context(ring, > ring->default_context); > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > index 7670a0f..4580267 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -1394,7 +1394,6 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin > INIT_LIST_HEAD(&ring->execlist_queue); > INIT_LIST_HEAD(&ring->execlist_retired_req_list); > spin_lock_init(&ring->execlist_lock); > - ring->next_context_status_buffer = 0; > > ret = i915_cmd_parser_init_ring(ring); > if (ret) > -- > 1.7.9.5 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index bf9778e..cc100c9 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -412,6 +412,7 @@ int i915_gem_context_enable(struct drm_i915_private *dev_priv) if (i915.enable_execlists) { for_each_ring(ring, dev_priv, i) { + ring->next_context_status_buffer = 0; if (ring->init_context) { ret = ring->init_context(ring, ring->default_context); diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 7670a0f..4580267 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -1394,7 +1394,6 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin INIT_LIST_HEAD(&ring->execlist_queue); INIT_LIST_HEAD(&ring->execlist_retired_req_list); spin_lock_init(&ring->execlist_lock); - ring->next_context_status_buffer = 0; ret = i915_cmd_parser_init_ring(ring); if (ret)
During a suspend/resume cycle the hardware Context Status Buffer write pointer is reset. However since recent changes to the init sequence the software CSB read pointer is no longer reset. This means that context status events are not handled correctly and new contexts are not written to the ELSP, resulting in an apparent GPU hang. Pending further changes to the ring init code, just move the ring->next_context_status_buffer initialization into i915_gem_context_enable to fix this regression. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88097 Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Thomas Daniel <thomas.daniel@intel.com> --- drivers/gpu/drm/i915/i915_gem_context.c | 1 + drivers/gpu/drm/i915/intel_lrc.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-)