multi-card breakage

Vignatti Tiago (Nokia-D/Helsinki) tiago.vignatti at nokia.com
Mon May 24 08:42:10 PDT 2010


Hi,

On Thu, May 20, 2010 at 12:04:37AM +0200, ext Pierre-Loup A. Griffais wrote:
> 
> Multiple cards work fine on my end. All this change does is create a few GCs
> and Pictures upfront on each X screen; I don't believe it sits at a level where 
> we can consider it's directly the cause of a system hang.
> Can you provide more information regarding the issues you're having? What driver 
> are you using? Try single-stepping through miDCDeviceInitialize() when the 
> server starts and progressively break into more functions to determine where it 
> hangs with more accuracy. Also, if X is hung in the kernel because of an 
> interaction problem with the VGA-arbiter (as I still think that's the problem 
> you're having), using an SMP-capable setup should allow you to keep interacting 
> with the system after X hangs.

It turned out to be a problem with VGA arbiter and nothing related with your
actual changes. Sorry for the noise :(


The arbiter inside the kernel has a bug that transfers to some random card
which is owning the arbitration when other stop to decoding VGA legacy
address. So X server had to wait inside the kernel because the arbiter was
owning this random card while X was trying to access another one. I have a
hack to fix it in my environment [0].  
 
Anyway, I guess that Aaron is currently investigating this things there (at
least we exchanged some privates messages regarding).

BTW, we _really_ should skip the arbitration after POST the cards. Right now
xf86VGAarbiterWrapFunctions is a total failure. It's totally prone to
deadlocks everywhere. In theory all screen procedures inside ScreenRec should
have a 1:1 mapping with the ones in VGAarbiterScreenRec. What you guys think
about disable it by default? I have a patch working fine here [1].


Thanks,

[0] http://people.freedesktop.org/~vignatti/tmp/0003-vgaarb-HACK-assume-safe-state-if-only-one-card-dec.patch
[1] http://people.freedesktop.org/~vignatti/tmp/0001-xfree86-vgaarb-disable-VGA-decoding-after-POST.patch

            Tiago


More information about the xorg-devel mailing list