Bug 3228

Summary: Segfault or hang initializing second radeon card in AMD 64 bit mode
Product: xorg Reporter: Craig Milo Rogers <rogers>
Component: Driver/RadeonAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: high CC: erik.andren
Version: 6.8.2Keywords: want-backtrace
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Craig Milo Rogers 2005-05-07 02:46:34 UTC
Given:  an AMD64 system in 64-bit mode with two ATI Radeon 9200 SE (RV280)
boards, one AGP and one PCI.  My BIOS assigns the PCI as the primary controller
(can't override).  When trying to start in the two-headed configuration, Xopen
gets a signal 11 during execution of the int10 code to initialize the secondary
(AGP) board.

Apparently the sig11 occurs after the secondary board has been sufficiently
initialized that if I run Xorg a second time with noint10 specified, Xorg
successfully brings up the duel-headed configuration.

Running the exact same hardware and configuration files in 32-bit mode gives a
normal startup (no int10 crash).
Comment 1 Craig Milo Rogers 2005-05-07 14:42:48 UTC
I've confirmed this behavior using combinations of Radeon 9200 PRO and Radeon
7000/VE (RV280 and RV100, respectively), as well as the 9200 SE boards. 
Attempting to initialize a secondary board with int10 under AMD64 kills the
server, usually very rudely.  These same combinations work in the same system
when booted into a 32-bit SUSE 9.3 installation.

Motherboards used in testing are an MSI K8T Neo and an Elitegroup 755-A2.
Comment 2 Craig Milo Rogers 2005-05-07 14:46:31 UTC
By rudely, Imean that the server hangs (instead of a sig 11). I haven't tried
accessing a hung system over the net to see how bad the hangup is.
Comment 3 FreeDesktop Bugzilla Database Corruption Fix User 2005-06-01 11:24:38 UTC
I can confirm this problem. It happens only in 64-bit mode, it does not happen 
in 32-bit mode (i.e. run the opteron as if it were a plain pentium, with a 32-
bit kernel and a 32-bit linux distribution and it works!). I have a matrox G550 
AGP card as primary card, and a radeon 9200SE PCI card as secondary.

This problem prevents me from running a two-user setup in 64-bit mode.  It works 
fine in 32-bit mode.  The bug is old, xfree86 also had it. 

I can compile and test patches if someone with a clue to what's going on have 
some test code. I tested with the xserver 6.8.2-10 from ubuntu. I alwyas get a 
signal11, no crash.

The logfile Xorg.4.log, always ends like this:
(II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
(II) Loading sub module "int10"
(II) LoadModule: "int10"
(II) Reloading /usr/X11R6/lib/modules/linux/libint10.a
(II) RADEON(0): initializing int10
(**) RADEON(0): Option "InitPrimary" "on"
(II) Truncating PCI BIOS Length to 53248

   *** If unresolved symbols were reported above, they might not
   *** be the reason for the server aborting.

Fatal server error:
Caught signal 11.  Server aborting

The normal case (when using 32 bit) is that "Truncating PCI Bios" is 
followed by more log lines, like this:

(II) Truncating PCI BIOS Length to 53248
(--) RADEON(0): Chipset: "ATI Radeon 9200SE 5964 (AGP)" (ChipID = 0x5964)
(--) RADEON(0): Linear framebuffer at 0xe0000000
(--) RADEON(0): VideoRAM: 131072 kByte (64 bit DDR SDRAM)
(II) RADEON(0): PCI card detected

And much more.
Comment 4 FreeDesktop Bugzilla Database Corruption Fix User 2005-06-04 02:56:17 UTC
See bug 3459 for the solution that worked for me.  X tries to use /usr/X11R6/
lib/modules/linux/libint10.a which doesn't work on amd64.  Get rid of it, and X 
will fall back on /usr/X11R6/lib/modules/libint10.a instead, which work.  

Problem solved, now to get either xorg to distribute a working setup, or make 
the distros do that. 
Comment 5 Adam Jackson 2005-07-03 14:46:05 UTC
starting with the 6.8.99.14 snapshot, on linux systems, the X server can print
its own backtrace when it crashes.  please confirm that these bugs are still
valid with 6.8.99.14 or later, and if they are please attach a the server log
from the crash.
Comment 6 Benjamin Herrenschmidt 2005-10-24 16:30:37 UTC
fixed for now
Comment 7 Benjamin Herrenschmidt 2005-10-24 16:38:17 UTC
Oops, sorry, manipulated the wrong bug... "unfixing"... (though we hadn't have
any feedback for some time ...)
Comment 8 Craig Milo Rogers 2005-10-24 17:15:04 UTC
Sence you mention not getting feedback:  This might be a distribution (e.g. Red
Hat or SuSE rather than xorg) problem.  It is still present in the
recently-release SuSE Linux 10.0. I found a solution on the Web once:  there are
two into10a handlers on PATH in 64-bit mode, and removing one of them (the right
one!) allows the second Radeon to initialize.  I'll provide more precise details
soon.
Comment 9 Erik Andren 2006-04-23 06:47:15 UTC
Craig, how are those details going?
Comment 10 Erik Andren 2006-05-31 13:13:51 UTC
Ping!
Comment 11 Erik Andren 2006-07-28 10:12:53 UTC
Closing due to the lack of activity from the bug poster.

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.