Bug 16453

Summary: suspend2ram doesn't possible any more under X11
Product: Drivers Reporter: Toralf Förster (toralf.foerster)
Component: Video(DRI - Intel)Assignee: drivers_video-dri-intel (drivers_video-dri-intel)
Status: CLOSED CODE_FIX    
Severity: high CC: chris, maciej.rutecki, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: v2.6.35-rc6-19-g86c65a7 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216, 16055    
Attachments: .config

Description Toralf Förster 2010-07-24 10:47:36 UTC
A
$>sync; sleep 2; sync; echo mem > /sys/power/state
sometimes results into a black screen and a blinking of the moon led - only power off button works in that case.
The issue happens only under X11, booting the system with "init 2" (no X11, no network) works.

Previous kernel 2.6.34 did not show this issue, probably the first .35-rcX too were ok.

My system is a ThinkPad T400 (i915) running x11-base/xorg-server-1.7.7 and x11-drivers/xf86-video-intel-2.11.0.
Comment 1 Rafael J. Wysocki 2010-07-24 22:54:15 UTC
I'm afraid it will be necessary to identify the commit that caused that problem to happen.

Please also check bug #16369 (maybe a duplicate?).
Comment 2 Toralf Förster 2010-07-25 18:23:14 UTC
(In reply to comment #1)
> I'm afraid it will be necessary to identify the commit that caused that
> problem
> to happen.
I'm afraid that ... ;)

tfoerste@n22 ~/devel/linux-2.6 $ git bisect bad
d1b851fc0d105caa6b6e3e7c92d2987dfb52cbe0 is the first bad commit
commit d1b851fc0d105caa6b6e3e7c92d2987dfb52cbe0
Author: Zou Nan hai <nanhai.zou@intel.com>
Date:   Fri May 21 09:08:57 2010 +0800

    drm/i915: implement BSD ring buffer V2
    
    The BSD (bit stream decoder) ring is used for accessing the BSD engine
    which decodes video bitstream for H.264 and VC1 on G45+.  It is
    asynchronous with the render ring and has access to separate parts of
    the GPU from it, though the render cache is coherent between the two.
    
    Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
    Signed-off-by: Xiang Hai hao <haihao.xiang@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

:040000 040000 c486a9246bdcdc73bd83cee594d3948ca75fe841 bbb08d10d455133c1f1aab13d9feecf01fe4f87c M      drivers
Comment 3 Rafael J. Wysocki 2010-07-25 22:16:11 UTC
First-Bad-Commit : d1b851fc0d105caa6b6e3e7c92d2987dfb52cbe0

Thanks for bisecting, reassigning to DRI/Intel.
Comment 4 Chris Wilson 2010-07-26 07:34:45 UTC
I've seen that commit also breaks UMS in some circumstances. Toralf, you don't by any chance run with i915.modeset=0 [or rather not enable KMS]?
Comment 5 Toralf Förster 2010-07-26 08:49:52 UTC
Created attachment 27247 [details]
.config

(In reply to comment #4)
> I've seen that commit also breaks UMS in some circumstances. Toralf, you
> don't
> by any chance run with i915.modeset=0 [or rather not enable KMS]?
I attached the .config which I used to bisect the issue. (BTW it needed 1 to 4 suspend cycles to verify whether s2ram was broken or not).
Comment 6 Chris Wilson 2010-07-26 09:47:20 UTC
Awooga:
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y

Hard hang, no other debug messages/clues available?

T400 I believe is a gm45, can you attach lspci to confirm?

Gordon, we haven't seen this issue during QA?
Comment 7 Chris Wilson 2010-07-26 09:49:31 UTC
Toralf, the other one that is vital to test is whether this occurs with 2.6.35-rc6? That (in theory) rules out the known memory corruption bug.
Comment 8 Toralf Förster 2010-07-26 11:46:33 UTC
Current git v2.6.35-rc6-19-g86c65a7 works fine with this command (at least for 3 suspends in a row ):
$>sync; sleep 2; sync; echo mem > /sys/power/state

:-)


BTW : 
From /var/log/messages it is a "Intel GM45 Chipset".

tfoerste@n22 ~/devel/linux-2.6 $ /usr/sbin/lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
Comment 9 Chris Wilson 2010-07-26 12:09:08 UTC
Toralf, I'm going to mark this as fixed as being the result of the i915 memory corruption bug, please reopen if it fails again. Thanks.