[Nouveau] [Bug 61731] Nouveau not working on second monitor

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Feb 25 08:34:05 PST 2015


https://bugs.freedesktop.org/show_bug.cgi?id=61731

--- Comment #16 from Kyle Auble <kyle.auble at zoho.com> ---
(In reply to Tobias Klausmann from comment #15)
> Is this still a problem with a recent kernel? (3.17/3.18)

I was actually trying to debug this driver-loading problem on & off for a
while, and while I won't be running any more tests, I'd still like to see it
resolved, if only for a sense of closure.

The last test I ran was with v3.17-rc2 of the PAE kernel on Ubuntu 12.04, and
the problem was still there at that point in time. I can't vouch for more
recent changes though. One thing I eventually found out is that there's an even
simpler workaround than unplugging the laptop during boot: try passing the
"pci=bios" boot parameter to the kernel.

I was keeping track of the tests at a Launchpad account, and I eventually sent
a couple emails to the linux-pci mail list. You can tell I'm an amateur at
systems debugging, especially in the beginning, but all those records are here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1009312
http://thread.gmane.org/gmane.linux.kernel.pci/33181
http://thread.gmane.org/gmane.linux.kernel.pci/34437

As for what causes it, I made several guesses that all eventually turned out
wrong. It's just one more guess, but based on everything I figured out through
the tests, I think there's some kind of race happening in or between the kernel
& the BIOS pci initialization code. The earliest symptom in the logs is that
there will be a ~30 ms gap between these two lines in dmesg (from the original
reporter's in this thread):
> [    0.379459] pci 0000:01:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
> [    0.408041] pci 0000:00:01.0: PCI bridge to [bus 01-01]

I think that's due to a timeout in pci link-retraining, but using an initscript
to dump the GPU's pci config, I was able to find out that something is
accidentally resetting or turning off the GPU prior to that. A race condition
in the pci initialization might explain why the bug is intermittent and also
why it's much more common in the x32 kernel (the smaller word length leading to
more machine instructions something could wedge between?) I think the
unplugging trick works by putting the PCI bus into a power-saving mode, which
slows down the initialization enough to avoid a race.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20150225/8fdd7fae/attachment-0001.html>


More information about the Nouveau mailing list