multi-card breakage
Vignatti Tiago (Nokia-D/Helsinki)
tiago.vignatti at nokia.com
Wed May 19 08:09:03 PDT 2010
Hi Pierre,
On Tue, May 04, 2010 at 10:21:55PM +0200, ext Pierre-Loup A. Griffais wrote:
>
> I just reproduced something that sounds like what you're describing with two
> R520 cards (one X screen per card) and the 'radeon' driver. However, it seems
> unrelated to my change; that's what the hang looks like:
>
> 575 VGAGet();
> (gdb) bt
> #0 VGAarbiterCreateGC (pGC=0x83ebab0)
> at ../../../../hw/xfree86/common/xf86VGAarbiter.c:575
> #1 0x080777ba in CreateGC (pDrawable=0x82d8d78, mask=<value optimized out>,
> pval=0xbffff534, pStatus=0xbffff53c, gcid=0, client=0x81ffca8)
> at ../../dix/gc.c:647
> #2 0x0819e612 in miDCMakeGC (pWin=0x82b5530) at ../../mi/midispcur.c:422
> #3 0x0819e7c4 in miDCDeviceInitialize (pDev=0x83ebdf0, pScreen=0x8263688)
> at ../../mi/midispcur.c:790
> #4 0x081c48cf in miSpriteDeviceCursorInitialize (pDev=0x83ebdf0,
> pScreen=0x8263688) at ../../mi/misprite.c:949
> #5 0x08186364 in xf86DeviceCursorInitialize (pDev=0x83ebdf0,
> pScreen=0x8263688) at ../../../../hw/xfree86/ramdac/xf86Cursor.c:453
> #6 0x081672ba in VGAarbiterDeviceCursorInitialize (pDev=0x83ebdf0,
> pScreen=0x8263688) at ../../../../hw/xfree86/common/xf86VGAarbiter.c:1035
> #7 0x080a1e0c in miPointerDeviceInitialize (pDev=0x83ebdf0, pScreen=0x8263688)
> at ../../mi/mipointer.c:283
> #8 0x08087ed5 in ActivateDevice (dev=0x83ebdf0, sendevent=1 '\001')
> at ../../dix/devices.c:477
> #9 0x08088f08 in InitCoreDevices () at ../../dix/devices.c:610
> #10 0x08066d18 in main (argc=1, argv=0xbffff8a4, envp=0xbffff8ac)
> at ../../dix/main.c:255
>
> The reason my change exposes this bug is that it creates a GC attached to the
> second screen upfront. If I roll it back, I still get the same hang after trying
> to move a SW cursor to the second screen of connecting an X client to the second
> screen.
I'm still getting a very weird lock-up with your patch. I can get it even with
hw cursor. Seems not related at all with the log bellow when radeon POST bios,
so I guess your commit added a regression. Just reverting it solves the
problem - and sorry, I don't know this code in depth to start dig the reason.
BTW, Peter did you test this patch there with multiple cards? I'd revert this
patch meanwhile (attached).
> Looking at the X log, I see:
>
> (II) RADEON(1): PCIE card detected
> (II) Loading sub module "int10"
> (II) LoadModule: "int10"
> (II) Reloading /usr/lib/xorg/modules/libint10.so
> (II) RADEON(1): initializing int10
> (EE) RADEON(1): Cannot read V_BIOS (3) Input/output error
> (WW) RADEON(1): Failed to read PCI ROM!
> (II) RADEON(1): Attempting to read un-POSTed bios
>
> and in the kernel log:
>
> [ 1240.582149] pci 0000:05:00.0: Invalid ROM contents
>
> That means the VGA arbiter tried to switch VGA access to an un-posted device,
> which is presumably the cause of the hang. It seems like the X screen should
> fail ScreenInit() and get discarded after initializing int10 fails. Whatever the
> reason behind that is, the driver ought to fail more gracefully.
>
> In any case, I'm guessing you have similar spew in your logs?
no. My logs are "normal", without any apparent errors.
Thank you,
Tiago
More information about the xorg-devel
mailing list