Bug 79996

Summary: [SNB bisected] GPU HANG: ecode 0:0x85fffffd Linux 3.15 (Shuttle SH67, Xeon E3 1235)
Product: DRI Reporter: Leo Wolf <jclw>
Component: DRM/IntelAssignee: Daniel Vetter <daniel>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: highest CC: intel-gfx-bugs
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Clear all unwanted bits from GT_MODE
none
GPU crash dump on 3.15 after starting glxgears
none
GPU crash dump on 3.17 after starting firefox
none
drm/i915: WaSetupGtModeTdRowDispatch:snb considered harmful none

Description Leo Wolf 2014-06-13 18:34:06 UTC
Bisecting led to commit 8d85d27 "drm/i915: Fix SNB GT_MODE register setup".

Apparently the "disable all bits" part originally introduced in f8f2ac9 is still needed, at least in my particular case.

Applying commit 8d85d27 but keeping the line
I915_WRITE(GEN6_GT_MODE, _MASKED_BIT_DISABLE(0xffff));
in intel_pm.c solves the problem for me, i.e. the GPU no longer hangs when first starting anything more demanding than an xterm, like firefox or glxgears.
Comment 1 Chris Wilson 2014-06-13 18:40:41 UTC
Created attachment 100999 [details] [review]
Clear all unwanted bits from GT_MODE

This preserves our later tweaking for msaa and w/a and makes sure there is nothing else in there. If that still hangs, it would be useful to then disable the two GT_MODE writes and see which is the problem.
Comment 2 Leo Wolf 2014-06-13 20:55:54 UTC
Hmm, your patch does not fix the problem; putting 

    I915_WRITE(GEN6_GT_MODE, _MASKED_BIT_DISABLE(0xffff));

behind

    if (IS_SNB_GT1(dev)) I915_WRITE(GEN6_GT_MODE, _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE));

however does.  So does removing both of the above.

IS_SNB_GT1 is true for device id 0x010a. Isn't this wrong? Don't the Sandy Bridge Xeon E3 GPUs have 12 Execution Units and would therefore not be GT1?

I'm confused.
Comment 3 Leo Wolf 2014-06-16 16:03:06 UTC
Created attachment 101181 [details]
GPU crash dump on 3.15 after starting glxgears
Comment 4 Chris Wilson 2014-07-14 13:33:13 UTC
Daniel, you added

commit 6547fbdbfff62c99e4f7b4f985ff8b3454f33b0f
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Dec 14 23:38:29 2012 +0100

    drm/i915: Implement WaSetupGtModeTdRowDispatch
    
    I'm not really sure, since the w/a entry is as thin on details as
    ever, and Bspec doesn't say anything about it. But I've figured only
    dispatching to rows 0&1 instead of all four should be the right thing
    for GT1.
    
Maybe it is just bogus?
Comment 5 Chris Wilson 2014-07-14 13:46:06 UTC
Hmm. We clear all the bits we should be setting for snb gt1.

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 76c5e4aa4dcf..03d90e4003ee 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5188,7 +5188,7 @@ static void gen6_init_clock_gating(struct drm_device *dev)
        /* WaSetupGtModeTdRowDispatch:snb */
        if (IS_SNB_GT1(dev))
                I915_WRITE(GEN6_GT_MODE,
-                          _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE));
+                          _MASKED_BIT_ENABLE(0x01ff));
 
        ilk_init_lp_watermarks(dev);
Comment 7 Leo Wolf 2014-09-20 22:40:19 UTC
(In reply to comment #6)
> Please try
> http://cgit.freedesktop.org/~ickle/linux-2.6/commit/
> ?id=08311fc3b39d72bb80f9a8d06f0438db4f6f5d29

Still hangs.
Comment 8 Leo Wolf 2014-09-20 22:46:05 UTC
Created attachment 106591 [details]
GPU crash dump on 3.17 after starting firefox
Comment 9 Mika Kuoppala 2014-11-04 14:36:27 UTC
Created attachment 108894 [details] [review]
drm/i915: WaSetupGtModeTdRowDispatch:snb considered harmful
Comment 10 Daniel Vetter 2014-11-14 08:25:46 UTC
Ok, I've submitted the revert, Jani should pick it up for -fixes/stable backports soonish.
Comment 11 Jani Nikula 2014-11-14 11:20:43 UTC
(In reply to Daniel Vetter from comment #10)
> Ok, I've submitted the revert, Jani should pick it up for -fixes/stable
> backports soonish.

Fix pushed to drm-intel-fixes as

commit 121a632e70ce83ff09210303d9cf674bbfa80a38
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Nov 14 09:25:29 2014 +0100

    drm/i915: drop WaSetupGtModeTdRowDispatch:snb

cc: stable.

Thanks for the report.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.