Video memory corruption during suspend
Hi,
I'm having an odd problem with video memory being corrupted during suspend.
My setup is:
ASUS L3800C laptop, Radeon M7, i845 chipset, using DRI and radeonfb.
Note that this is not specific to the kernel used, as I've been seeing similar corruption every now and then, most recently under 2.6.7 + ACPICA20040715 + swsusp2.0.0.100 (S3, S4), but also under 2.4 with S1 (but not with S4/swsusp2).
I have a very simple script I use to suspend (i.e. basically echo $arg > /proc/acpi/sleep), which is usually started by acpid. Once the script is triggered (by pressing power / sleep button) and an X session is running, various red and green patches appear on the screen (the background image and the tinted terminal emulator), followed by the VT switch the PM code does. After resume and subsequent VT switch by the PM code the corruption is still visible. The screen is properly restored by a manual VT switch. The corruption is clearly related to the existing background pixmap, as moving the windows does not change its pattern. Oddly enough, starting a GL app such as glxgears and moving it into and out of focus also properly restores the screen.
I'll be happy to provide any useful information.
Best regards,
Signature · 2 lines
Karol 'sziwan' Kozimor [email protected]
Hi!
Quoted 8 lines
My setup is:
ASUS L3800C laptop, Radeon M7, i845 chipset, using DRI and radeonfb.Note that this is not specific to the kernel used, as I've been seeing similar corruption every now and then, most recently under 2.6.7 + ACPICA20040715 + swsusp2.0.0.100 (S3, S4), but also under 2.4 with S1 (but not with S4/swsusp2).
Quoted 11 lines
I have a very simple script I use to suspend (i.e. basically echo $arg >
/proc/acpi/sleep), which is usually started by acpid. Once the script is triggered (by pressing power / sleep button) and an X session is running, various red and green patches appear on the screen (the background image and the tinted terminal emulator), followed by the VT switch the PM code does. After resume and subsequent VT switch by the PM code the corruption is still visible. The screen is properly restored by a manual VT switch. The corruption is clearly related to the existing background pixmap, as moving the windows does not change its pattern. Oddly enough, starting a GL app such as glxgears and moving it into and out of focus also properly restores the screen.
So what happens on 2.6.7 with swsusp1? Can you try vesafb (and fbdev Xserver)?
Pavel
Signature · 2 lines
Horseback riding is like software... ...vgf orggre jura vgf serr.
Just as a side note, all of the notebooks I have owned or worked on have had suspend issues. Linux just doesn't handle it very well. The common problems on resume are:
1. the screen is somehow switched to the external VGA port or port other than the LCD
2. the screen is 50% rolled; i.e. the whole screen has been shifted halfway down the screen with the bottom wrapping back up to the top
3. on a text console, the characters are garbage/high ascii/blocks
4. the back light is off and can't be turned back on
Of these I'm currently dealing with #1, 2, and 3. I can fix #1 by using the Function-Display key to step through displays until I have selected the LCD display again. I fix #2 by ctrl-alt-f1 and then back to X tty. I fix #3 by running setfont. I haven't had to deal with #4 in over a year, but I no longer have that notebook.
Chris root # lspci -vvv -s 0:00.0
00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 04)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
Latency: 0
Region 0: Memory at e8000000 (32-bit, prefetchable) [size=64M]
Capabilities: [e4] #09 [d104]
Capabilities: [a0] AGP version 2.0
Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64-
HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>
Chris root # lspci -vvv -s 01:00.0
01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 440 Go] (rev a3) (prog-if 00 [VGA])
Subsystem: Dell Computer Corporation: Unknown device 00d4
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop+
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (1250ns min, 250ns max)
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at e0000000 (32-bit, prefetchable) [size=128M]
Region 2: Memory at dff80000 (32-bit, prefetchable) [size=512K]
Expansion ROM at 80000000 [disabled] [size=128K]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [44] AGP version 2.0
Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA- ITACoh- GART64-
HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW-
Rate=<none>
no DRI/FB.
David
Quoted 23 lines · Pavel Machek
Hi!
Quoted 6 lines
My setup is:
ASUS L3800C laptop, Radeon M7, i845 chipset, using DRI and radeonfb.Note that this is not specific to the kernel used, as I've been seeing similar corruption every now and then, most recently under 2.6.7 + ACPICA20040715 + swsusp2.0.0.100 (S3, S4), but also under 2.4 with S1 (but not with S4/swsusp2).
Quoted 12 lines
I have a very simple script I use to suspend (i.e. basically echo $arg >
/proc/acpi/sleep), which is usually started by acpid. Once the script is
triggered (by pressing power / sleep button) and an X session is running, various red and green patches appear on the screen (the background image and the tinted terminal emulator), followed by the VT switch the PM code
does. After resume and subsequent VT switch by the PM code the corruption
is still visible. The screen is properly restored by a manual VT switch.
The corruption is clearly related to the existing background pixmap, as
moving the windows does not change its pattern. Oddly enough, starting a GL
app such as glxgears and moving it into and out of focus also properly
restores the screen.
Quoted 6 lines
So what happens on 2.6.7 with swsusp1? Can you try vesafb (and fbdev Xserver)?
Pavel
begin:vcard
fn:David Ford
n:Ford;David
email;internet:[email protected]
title:Industrial Geek
tel;home:Ask please
tel;cell:(203) 650-3611
x-mozilla-html:TRUE
version:2.1
end:vcard
Quoted 4 lines · David Ford
Just as a side note, all of the notebooks I have owned or worked on have had suspend issues. Linux just doesn't handle it very well. The common problems on resume are:
Actually all computers I worked with functioned great with software suspend (up to solving dri issues), none of them managed to suspend properly with windows (XP was worse them w2k).
Quoted 10 lines
1. the screen is somehow switched to the external VGA port or port other than the LCD
2. the screen is 50% rolled; i.e. the whole screen has been shifted halfway down the screen with the bottom wrapping back up to the top
3. on a text console, the characters are garbage/high ascii/blocks
4. the back light is off and can't be turned back onOf these I'm currently dealing with #1, 2, and 3. I can fix #1 by using the Function-Display key to step through displays until I have selected
Thats a weird one.
Quoted 2 lines
the LCD display again. I fix #2 by ctrl-alt-f1 and then back to X tty.
If its an ATI with dri, I think it still needs a VT switch to reset the driver. There was also something with nvidia I think. You should change VT to the console and then change back on resume.
Quoted 1 line
I fix #3 by running setfont.
Strange one also.
Quoted 3 lines
I haven't had to deal with #4 in over a
year, but I no longer have that notebook.
I had such problems a lot with windows and the screen saver. With linux only when it got stuck (a over heating problem).
Quoted 96 lines
Chris root # lspci -vvv -s 0:00.0
00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 04)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-Latency: 0 Region 0: Memory at e8000000 (32-bit, prefetchable) [size=64M] Capabilities: [e4] #09 [d104] Capabilities: [a0] AGP version 2.0 Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4 Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW-Rate=<none>
Chris root # lspci -vvv -s 01:00.0
01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 440 Go] (rev a3) (prog-if 00 [VGA])
Subsystem: Dell Computer Corporation: Unknown device 00d4
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop+
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-Latency: 32 (1250ns min, 250ns max) Interrupt: pin A routed to IRQ 11 Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at e0000000 (32-bit, prefetchable) [size=128M] Region 2: Memory at dff80000 (32-bit, prefetchable) [size=512K] Expansion ROM at 80000000 [disabled] [size=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [44] AGP version 2.0
Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA- ITACoh- GART64-
HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW-Rate=<none>
no DRI/FB.
David
Quoted 27 lines · Pavel Machek
Hi!
Quoted 8 lines
My setup is:
ASUS L3800C laptop, Radeon M7, i845 chipset, using DRI and radeonfb.Note that this is not specific to the kernel used, as I've been seeing similar corruption every now and then, most recently under 2.6.7 + ACPICA20040715 + swsusp2.0.0.100 (S3, S4), but also under 2.4 with S1 (but not with S4/swsusp2).
Quoted 14 lines
I have a very simple script I use to suspend (i.e. basically echo $arg >
/proc/acpi/sleep), which is usually started by acpid. Once the script is triggered (by pressing power / sleep button) and an X session is running, various red and green patches appear on the screen (the background image and the tinted terminal emulator), followed by the VT switch the PM code does. After resume and subsequent VT switch by the PM code the corruption is still visible. The screen is properly restored by a manual VT switch. The corruption is clearly related to the existing background pixmap, as moving the windows does not change its pattern. Oddly enough, starting a GL
app such as glxgears and moving it into and out of focus also properly restores the screen.Quoted 6 lines
So what happens on 2.6.7 with swsusp1? Can you try vesafb (and fbdev Xserver)?
Pavel
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.begin:vcard
fn:David Ford
n:Ford;David
email;internet:[email protected]
title:Industrial Geek
tel;home:Ask please
tel;cell:(203) 650-3611
x-mozilla-html:TRUE
version:2.1
end:vcard
Thus wrote Pavel Machek:
Quoted 2 lines
Quoted 2 lines
My setup is:
ASUS L3800C laptop, Radeon M7, i845 chipset, using DRI and radeonfb.
[...]
Quoted 2 lines
So what happens on 2.6.7 with swsusp1? Can you try vesafb (and fbdev Xserver)?
I don't have 2.6.7-vanilla at hand, but if 2.6.7-mm6 counts then yes, swsusp1 also triggers that. Note that it doesn't seem to occur when DRI is not actively used -- the radeon driver code takes quite a long time (up to 4 secs.) to switch to a text VT depending on circumstances, namely when KDE is up. A plain windowmaker dekstop takes much shorter to switch.
As I'm leaving tomorrow, I won't have time to test with vesafb / fbdev until next week.
Best regards,
Signature · 2 lines
Karol 'sziwan' Kozimor [email protected]