Bug 553569 - nouveau KMS blocks X11 server access to GPU
Summary: nouveau KMS blocks X11 server access to GPU
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 12
Hardware: i686
OS: Linux
low
urgent
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-01-08 09:48 UTC by Bruce vaNorman
Modified: 2010-12-04 00:42 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2010-12-04 00:42:50 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Bruce vaNorman 2010-01-08 09:48:16 UTC
Description of problem:
nouveau KMS does not share resources with X11 - an oxymoron?
This problem has a 75% compatibility with over a dozen other bug reports.
- I use two single head GPU's (DVI & DVI), no VGA. VGA is smeary at the native resolution of 1920x1200 (A pair of SOYO Topaz S 24" LCD's)
- Hybrid SLI is enabled in the BIOS with the shared frame buffer set to 256mB. Less does not work in either Fedora or Windows
- If I permit KMS to run (absent nomodeset & vesa) lspci can see the second GPU but "nvidia-xconfig --probe-all-gpus --query-gpu-info" can only see the one nouveau KMS did not use - capture?
- If I block KMS, then both can be seen by nvidia-xconfig
- If, in BIOS, I make the KMS GPU (0) "primary" then I always get ... GPU lockup ...
- The first GPU (0) is part of the ASUS M3N78-VM south bridge (NVIDIA MCP78S) and the second GPU (1) is in the ASUS EN8400GS
- vmalloc=256M, but =192M works as well (less fails)
- when I run with "nomodeset vesa", I do get both screens, but the system hangs the moment I try to get the cursor to move from one X client (screen) to the other. The "reset" and "power" buttons are the only ways out.
- when I run with KMS I get log messages of:
 "screens found, but none useable"
 "failed to initialize the nvidia graphics device"
 "no screens found"
just like a lot of other bug reports.

Version-Release number of selected component (if applicable):
kernel: 2.6.30.10-105.fc11.i686.PAE with akmod-nvidia

How reproducible: see above

Steps to Reproduce: see above
  
Actual results: see above

Expected results: dual X11 client screens, just like I got with FC9, 10, and 11

Additional info: /etc/X11/xorg.conf as used successfully in FC9, FC10, & FC11
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 1.0  (buildmeister@builder63)  Tue May 12 12:47:54 PDT 2009

# Xorg configuration created by livna-config-display

Section "ServerLayout"
    Identifier     "single head configuration"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    ModulePath      "/usr/lib/xorg/modules/extensions/nvidia"
    ModulePath      "/usr/lib/xorg/modules"
EndSection

Section "ServerFlags"
    Option         "AIGLX" "on"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

# keyboard added by rhpxl
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "us"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "XXX M24EI5"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 61.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "XXX M24EI5"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 61.0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8200"
    Option         "AddARGBGLXVisuals" "True"
    BusID          "PCI:2:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400 GS"
    Option         "AddARGBGLXVisuals" "True"
    BusID          "PCI:3:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection

Comment 1 Bruce vaNorman 2010-01-08 10:12:35 UTC
Note: the kernel version listed is FC11 - which works, sort of. I cannot remember which version of FC12, but it was the latest available from yum from 5.Jan to 8.Jan. I think it was 2.6.31.9-174 i686 PAE with akmod-nvidia. I spent about 30 hours with FC12 before giving up.
---
I don't know if it is important, but I am using a dual core 2.7gHz AMD X64 processor, 4gB of DRAM, & no swap space.
---
I replaced FC12 with FC11 as FC12 is not usable on this machine. I do use FC12 on my ASUS eeePC-1000, IBM T40 thinkpad, and a house server.
---
As noted elsewhere S3 (suspend) is less than graceful on FC11. I believe I read that this would not be fixed in FC11. I am contemplating upgrading to FC10.
---
This is my software development machine (eclipse: C, Python, TCL, Lua, SVN, and Google-code) and if I could afford the iron, I would have more large screens - each with 4 or more workspaces.

Comment 2 Jonathan 2010-02-24 08:17:43 UTC
Bruce if you have hybrid sli enabled in bios then the hardware has to work like this... It wants to give one of the cards the frame buffer and let the other card fetch back and forth from the frame buffer. This means one card locks the frame buffer and hence the screen.
So we have 2 problems here. X and nouveau don't work with the 8400GS either the G86 or the G98 version. You have them working in SLI mode which disabled their ability to work as dual independant gpu's. Hence you are confusing any attempt X has at trying to arbitrate them into seperate gpu's.
Until g86 and g98 gpu is working you're stuck from trying nouveau.
Since you are using the nvidia driver though you should be able to get this to work. You do have to set SLI to disable though.

Comment 3 Bruce vaNorman 2010-05-23 20:08:48 UTC
Roger that. Will test as FC12 doesn't even boot beyond "Starting udev". I now have 2 OS multiboot in place and soon as I can reorganize my HDD, it will be 3 OS's.
---
my video config is best described as dual - single head (both DVI - no VGA {too fuzzy})
lspci bus info:
00: nVidia Corporation MCP78S [GeForce 8200] (rev a2)
01: Multimedia audio controller: Creative Labs SB Audigy (rev 04) 
02: VGA compatible controller: nVidia Corporation GeForce 8200 (rev a2) 
03: VGA compatible controller: nVidia Corporation GeForce 8400 GS (rev a1)

Comment 4 Bruce vaNorman 2010-05-23 21:06:08 UTC
Ugh :-(. This is what BIOS looks like:
Advanced Settings | Chipset settings | South Bridge
- video priority: PCI card first, Internal VGA first, PCIe card first.
- Hybrid SLI mode: mGPU auto, mGPU enable
- Hybrid SLI frame buffer size: 64 ... 512 MB
---
My original settings (works with FC11 kmod-nvidia): Internal VGA first, mGPU enabled, FB size= 256MB.
---
Revised settings: PCIe card first, mGPU auto. FB size is greyed out. FC11 boots. BIOS messages go to the other screen, but X11 hangs. Booted to run level 3. lspci has the 8400 GS on bus 02: and no 8200 defined. Sort of defeats the purpose of two monitors, don't it?
---
Revised settings: Internal VGA first. FB size no longer greyed out. Set to 256 MB (defaults to 512 MB, and X11 hangs at less than 256MB). Left mode at mGPU auto. FC11 boots normally with the above PCIe bus values. FYI GRUB KERNEL line has "vmalloc=256M" without which I get "no screen found for ...."
---
Conclusion: No dual single-head support without SLI aka mGPU, at least for FC11 - my production guest OS. I can test the lspci assignments of FC12 with current config. Will report on lspci assignments.
---
Background: I do software development and typically have 30 or so windows open. The development frameworks and test stuff are on the left screen and the documentation (html, pdf, and odt) are on the right screen. Each screen is 1920 x 1200, 24" LCD DVI with 4 Gnome workspaces. Typically 7 Gnome workspaces are in use. VGA connection is too fuzzy and dual DVI cards were too expensive. I see that there are some below $75 now.
---
I have 4 LCD monitors on my desk (3 physical hosts) and there isn't any room for more. Boo hoo :-)

Comment 5 Bruce vaNorman 2010-05-23 21:29:47 UTC
Same PCIe bus assignment behaviour in FC12 as in FC11. Clearly, I can never migrate to FC12. But, with FC13 coming out, hope lives on.
---
I have other FC12 video problems with kmod-nvidia and the downloaded drivers from nVidia (v 195). The FC12 kernel will not boot beyond "Starting udev". See bug #594542. I have become much too practiced with installing FC-12 from scratch :-).

Comment 6 Bruce vaNorman 2010-05-23 21:34:29 UTC
One last note: when I switch BIOS video settings I cannot restart. The physical host hangs in BIOS. A full power down, wait, boot from front panel button fixes the problem. I not not have to turn the power supply off, as I have to do with some FC12 video (xorg.conf) configurations.

Comment 7 Bruce vaNorman 2010-05-30 22:33:40 UTC
FC-13 works! Yea!!!
kernel 2.6.33.5-112.fc13.i686.PAE
More importantly, it works with the stock nouveau drivers and does not require the vmalloc=256M
---
The only problem was the lack of documentation on how to create a harmless xorg.conf that functioned exactly like the installation default (no xorg.conf). A sort of baseline to modify from.
---
I have attached the xorg.conf that worked.
---
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 1.0  (buildmeister@builder63)  Tue May 12 12:47:54 PDT 2009

# Xorg configuration created by livna-config-display

Section "ServerLayout"
    Identifier     "single head configuration"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

# Section "Files"
#     ModulePath      "/usr/lib/xorg/modules/extensions/nvidia"
#     ModulePath      "/usr/lib/xorg/modules"
# EndSection

Section "ServerFlags"
    Option         "AIGLX" "on"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

# keyboard added by rhpxl
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "us"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "XXX M24EI5"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 61.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "XXX M24EI5"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 61.0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nouveau"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8200"
    Option         "AddARGBGLXVisuals" "True"
    BusID          "PCI:2:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nouveau"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400 GS"
    Option         "AddARGBGLXVisuals" "True"
    BusID          "PCI:3:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
#    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
#    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection

Comment 8 Bug Zapper 2010-11-04 01:34:04 UTC
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '12'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 12's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 12 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 9 Bug Zapper 2010-12-04 00:42:50 UTC
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.