X does not start on Pegasos in Edgy because of broken PCI domain support

Bug #61410 reported by Matt Sealey
22
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
Medium
xorg (Ubuntu)
Invalid
Undecided
Unassigned
Declined for Edgy by Timo Aaltonen
xorg-server (Ubuntu)
Fix Released
Low
Unassigned
Declined for Edgy by Timo Aaltonen

Bug Description

Binary package hint: xorg

X 7.1.1 on the latest Edgy build breaks on Pegasos because it doesn't properly scan PCI domains for graphics cards, and therefore misses the "AGP" slot which is on domain 1.

The error log is quite short;

:
(EE) No devices detected.

Fatal server error:
no screens found
:

This is already being handled by the Fedora guys and the openSUSE guys, but Ubuntu needs to follow and cherrypick the final result. Bugtracker links below. Note the priority as this probably affects a lot more than just Pegasos :)

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=201933
https://bugzilla.novell.com/show_bug.cgi?id=202133

Changed in xorg-server:
status: Unknown → In Progress
Revision history for this message
Matt Sealey (mwsealey) wrote :
Revision history for this message
Matt Sealey (mwsealey) wrote :

This is still ridiculously broken on Pegasos on release.

Changed in xorg-server:
status: In Progress → Fix Released
Revision history for this message
Matt Sealey (mwsealey) wrote :

I just saw the bug got updated to "fix released" regarding the Novell tracker.

I would like to note that the bug itself is NOT fixed. Reverting X to it's previous implementation removes PCI domain support. It is NOT a fix, it is a workaround.

Please reinstate some kind of "still broken" state to this bug report until there is a real working PCI domain support in X11 (this would affect SPARC and ia64 if Ubuntu supported those)

Revision history for this message
Colin Watson (cjwatson) wrote :

Matt, only the upstream task has been marked as fixed, per the upstream tracker. The Ubuntu task on this bug is still open.

Revision history for this message
Christian Neumair (chris-gnome-de) wrote :

Confirming.

Changed in xorg-server:
status: Unconfirmed → Confirmed
Revision history for this message
Christian Neumair (chris-gnome-de) wrote :

The attached patch is identical to the Novell patch and fixes the issue for me.

It will disable the 2.6 PCI enumeration on PPCs, since it doesn't support multi-domain PCI properly.

Revision history for this message
Christian Neumair (chris-gnome-de) wrote :

Note that the proper fix would be multi-domain support which would possibly also fix many more of the "X doesn't start on Edgy anymore" griefs. According to https://bugs.freedesktop.org/show_bug.cgi?id=7248 this has already been included in XOrg HEAD.

Revision history for this message
Christian Neumair (chris-gnome-de) wrote :

The relevant multi-domain launchpad report is bug 54880ö.

Revision history for this message
Matt Sealey (mwsealey) wrote :

It would be fine for next Edgy release to fix it with the "don't even try multi-domain support" patch as fixed by Novell and adopted by RedHat/Fedora.

However multi-domain support should be properly there eventually and any work to fix it properly would be awesome; every architecture (ppc, sparc, ia64 especially) other than x86 has had domain-aware controllers for years and years.

Some investigation shows there is a global variable in the kernel (pci_assign_all_buses iirc) which changes PCI bus enumeration so that bus numbering is done globally across all domains (so you get bus 1, bus 2, bus 3, bus 4, and they could all be on different domains, no bus number will be duplicated in two domains) which allows the kernel to 'extract' the correct domain in order to properly support multi-domain controllers. There is some problem here, I think.

When is the next Edgy release and will this patch be pushed through for it? Can we get the other Pegasos problems (lack of install kernel..) working too? :/

Revision history for this message
Christian Neumair (chris-gnome-de) wrote :

OK, it looks generic domain support is in XOrg GIT.

commit 1d731fc54a2cf5d3f353d8ee1c7c4989df27f011
Author: Matthias Hopf <email address hidden>
Date: Thu Nov 2 18:50:15 2006 +0100

    Add domain support to linuxPciOpenFile().

    Loosely based on patch from David S. Miller <email address hidden>
    See also bug #2368.

Some other patches from Matthias may also be neccessary, including a special ia64 patch I don't understand - the code looks way more readable than the generic one.

I don't know how other pieces of XOrg interact with the domain and PCI code, so I can't judge what has to be done exactly, but when it just comes to linuxPciOpenFile(), Matthias' patch should be sufficient.

Revision history for this message
Peter Czanik (pczanik) wrote :

Xorg is still broken in 1st February daily snapshot of 7.04. Please take a look at the openSUSE 10.2 or 'factory' sources, as it's working there correctly.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

closing xorg task

Changed in xorg:
status: Unconfirmed → Rejected
Changed in xorg-server:
status: Unknown → Confirmed
Timo Aaltonen (tjaalton)
Changed in xorg-server:
importance: Undecided → Low
Revision history for this message
Bryce Harrington (bryce) wrote :

Does this issue still occur on Hardy? The patch proposed by Christian is no longer relevant (the code it patches is no longer present).

Revision history for this message
Peter Czanik (pczanik) wrote :

No, just tested today's snapshot, and Xorg works.

Changed in xorg-server:
status: Confirmed → Fix Released
Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks for confirming it's fixed.

Changed in xorg-server:
status: Confirmed → Fix Released
Changed in xorg-server:
importance: Unknown → Medium
Changed in xorg-server:
importance: Medium → Unknown
Changed in xorg-server:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.