Bug 25326

Summary: the radeon driver crash when resuming from changing vt
Product: xorg Reporter: roberto previdi <hariseldon78>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: hariseldon78
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
crash backtrace none

Description roberto previdi 2009-11-27 22:06:14 UTC
Created attachment 31522 [details]
crash backtrace

when i try to switch the virtual terminal pressing ctrl+alt+f1 or similar it correctly switch to the console, but when i press ctrl+alt+f7 to go back it crashes every time. 


i use Gentoo linux on an Acer TravelMate 6460, i report here some information. 

------------------------------------------------------


radeon driver version: 6.12.4
xorg server version: 1.6.3.901-r2
kernel version: Linux roby-laptop 2.6.30-tuxonice-r6 #1 SMP PREEMPT Thu Nov 12 22:45:25 CET 2009 i686 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz GenuineIntel GNU/Linux 

(but i have seen the bug since many versions of each package)
------------------------------------------------------


graphic card: VGA compatible controller: ATI Technologies Inc M52 [Mobility Radeon X1300]

------------------------------------------------------


xorg.conf:
Section "Monitor"
	Identifier   	"HANNS-G_HW191D"
	VendorName   	"HANNS-G"
	ModelName    	"HW191D"
	HorizSync 	28.0 - 51.0
	VertRefresh 	43.0 - 60.0
	Option 		"DPMS"
	Modeline 	"1440x900_60.00" 	106.47 	1440 1520 1672 1904 	900 901 904 932 -HSync +Vsync
	Modeline 	"1440x900_75.00"  	136.49  1440 1536 1688 1936  	900 901 904 940 -HSync +Vsync
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth	24
		Modes	"1440x900"
	EndSubSection
EndSection

Section "Extensions"
	Option  "Composite" "on"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
	Option 	    "CoreKeyboard"
	Option	    "XkbLayout"	"it"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "CorePointer"
EndSection

Section "ServerLayout"
	Identifier     "X.org Configured"
	Option "AllowEmptyInput" "false" 
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Device"
	Identifier  	"Card0"
	Driver      	"radeon"
	VendorName  	"ATI Technologies Inc"
	BusID       	"PCI:1:0:0"
	Option 		"SWcursor" 	"on"
	Option		"DRI"		"on"
EndSection

------------------------------------------------------

roby-laptop roby # lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: ATI Technologies Inc M52 [Mobility Radeon X1300]
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)
05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
09:04.0 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)
09:04.1 CardBus bridge: O2 Micro, Inc. Device 7175 (rev 21)
09:04.2 SD Host controller: O2 Micro, Inc. Integrated MMC/SD Controller (rev 01)
09:04.3 Mass storage controller: O2 Micro, Inc. Integrated MS/xD Controller (rev 01)
09:05.0 CardBus bridge: O2 Micro, Inc. OZ601/6912/711E0 CardBus/SmartCardBus Controller (rev 40)
09:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)

------------------------------------------------------

Please tell me which additional informations you need. if needed i can recompile the radeon driver with debug info (through the 'debug' useflag in gentoo).
Comment 1 roberto previdi 2009-11-27 22:09:26 UTC
i forgotted to say that the crash happens even when resuming from hibernation and when starting a game in wine which forces a video mode change (starcraft) so it seems that the crash is when setting a video mode. 
Comment 2 roberto previdi 2009-11-28 06:06:55 UTC
i recompiled the driver with 'debug' use flag, but the stacktrace is still the same, it doesn't contain source file's row numbers. is there a way to obtain a more useful stack trace? maybe using gdb?
Comment 3 Alex Deucher 2009-11-28 16:53:50 UTC
(In reply to comment #2)
> is there a way to obtain a
> more useful stack trace? maybe using gdb?
> 

http://wiki.x.org/wiki/Development/Documentation/ServerDebugging
Comment 4 roberto previdi 2009-11-29 08:00:53 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > is there a way to obtain a
> > more useful stack trace? maybe using gdb?
> > 
> 
> http://wiki.x.org/wiki/Development/Documentation/ServerDebugging
> 

ok! i followed the wiki and finally solved the problem. i put here the details for the benefit of google searches:

roby-laptop ~ # gdb /usr/bin/Xorg $(pidof X)
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)
Attaching to program: /usr/bin/Xorg, process 14287
Reading symbols from /usr/lib/libpciaccess.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpciaccess.so.0
Reading symbols from /lib/libpthread.so.0...(no debugging symbols found)...done.
[Thread debugging using libthread_db enabled]
[New Thread 0xb79576e0 (LWP 14287)]
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /usr/lib/libXfont.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXfont.so.1
Reading symbols from /usr/lib/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libfontenc.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfontenc.so.1
Reading symbols from /usr/lib/libpixman-1.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpixman-1.so.0
Reading symbols from /usr/lib/libhal.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libhal.so.1
Reading symbols from /usr/lib/libdbus-1.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libdbus-1.so.3
Reading symbols from /usr/lib/libXdmcp.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXdmcp.so.6
Reading symbols from /usr/lib/libssl.so.0.9.8...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libssl.so.0.9.8
Reading symbols from /usr/lib/libcrypto.so.0.9.8...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.8
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libz.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /lib/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/librt.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc_s.so.1
Reading symbols from /lib/libc.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/libfreetype.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /lib/libbz2.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libbz2.so.1
Reading symbols from /usr/lib/libgssapi_krb5.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgssapi_krb5.so.2
Reading symbols from /usr/lib/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5.so.3
Reading symbols from /lib/libcom_err.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/libcom_err.so.2
Reading symbols from /usr/lib/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libk5crypto.so.3
Reading symbols from /lib/libresolv.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /usr/lib/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5support.so.0
Reading symbols from /usr/lib/xorg/modules/extensions/libextmod.so...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libextmod.so
Reading symbols from /usr/lib/xorg/modules/extensions/libdbe.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libdbe.so
Reading symbols from /usr/lib/xorg/modules/extensions/libglx.so...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libglx.so
Reading symbols from /usr/lib/xorg/modules/extensions/librecord.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/xorg/modules/extensions//librecord.so
Reading symbols from /usr/lib/xorg/modules/extensions/libdri.so...
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libdri.so
Reading symbols from /usr/local/lib/libdrm.so.2...done.
Loaded symbols for /usr/local/lib/libdrm.so.2
Reading symbols from /usr/lib/xorg/modules/extensions/libdri2.so...done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libdri2.so
Reading symbols from /usr/lib/xorg/modules/drivers/radeon_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/drivers//radeon_drv.so
Reading symbols from /usr/lib/xorg/modules/input/mouse_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/input//mouse_drv.so
Reading symbols from /usr/lib/xorg/modules/input/kbd_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/input//kbd_drv.so
Reading symbols from /usr/lib/xorg/modules/libvgahw.so...done.
Loaded symbols for /usr/lib/xorg/modules//libvgahw.so
Reading symbols from /usr/lib/xorg/modules/libint10.so...done.
Loaded symbols for /usr/lib/xorg/modules//libint10.so
Reading symbols from /usr/lib/xorg/modules/libfb.so...done.
Loaded symbols for /usr/lib/xorg/modules//libfb.so
Reading symbols from /usr/lib/xorg/modules/libxaa.so...done.
Loaded symbols for /usr/lib/xorg/modules//libxaa.so
Reading symbols from /usr/lib/dri/r300_dri.so...done.
Loaded symbols for /usr/lib/dri/r300_dri.so
Reading symbols from /usr/lib/libexpat.so.1...done.
Loaded symbols for /usr/lib/libexpat.so.1
Reading symbols from /usr/lib/xorg/modules/input/synaptics_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/input//synaptics_drv.so
0xb7ee6424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

[ctrl+alt+f1 on the server]

Program received signal SIGUSR1, User defined signal 1.
[Switching to Thread 0xb79576e0 (LWP 14287)]
0xb7ee6424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

[ctrl+alt+f7 on the server]

Program received signal SIGUSR1, User defined signal 1.
0xb7ee6424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x0810f558 in xf86_reload_cursors ()
(gdb) bt f
#0  0x0810f558 in xf86_reload_cursors ()
No symbol table info available.
#1  0xb7866dd2 in ?? () from /usr/lib/xorg/modules/drivers//radeon_drv.so
No symbol table info available.
#2  0x08281888 in ?? ()
No symbol table info available.
#3  0x00000001 in ?? ()
No symbol table info available.
#4  0xbfe04318 in ?? ()
No symbol table info available.
#5  0x081090bd in xf86CrtcSetModeTransform ()
No symbol table info available.
Backtrace stopped: frame did not save the PC
(gdb) cont
Continuing.

Program received signal SIGABRT, Aborted.
0xb7ee6424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb) quit

---------------------------------------------------------------

so searching google for xf86_reload_cursors () i found this page: 
http://lists.x.org/archives/xorg-driver-ati/2009-May/009609.html
.

so i removed the SWCursor option and the bug is gone!

thank you for the link and sorry for the duplication, but maybe someone will come across this from a search and it can save some debug time...

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.