PDA

View Full Version : [ubuntu] Poor desktop performance with nVidia & four monitors



dkarnows
December 20th, 2010, 04:25 PM
I experience very poor desktop performance on my system. General clicking responsiveness is poor, taking over second or two to focus to a new window, move windows around, ... etc. The Xorg process constantly uses over 60% of the CPU even when I'm doing nothing, and when I do click around it will quickly go up near 100% usage. Performance is initially OK when I first launch into my Gnome environment, but it soon deteriorates within 30 minutes or so. Eventually, after days of being up and running, my desktop will crash.

I am running Ubuntu 10.10 with latest upgrades. I have four monitors attached to my "nVidia Corporation G98 [Quadro NVS 420]" graphics card. I am running the "NVIDIA accelerated graphics driver (version current)" recommended in the Ubuntu "Additional Drivers" app.

Any help in diagnosing or resolving my issue, or any ideas I can try is appreciated.

I get a fair number (hundreds) of these in my /var/log/Xorg.0.log:


[862923.098] (WW) NVIDIA(2): WAIT (1, 6, 0x8000, 0x0000ba04, 0x0000ba14)
[862923.099] (WW) NVIDIA(3): WAIT (1, 6, 0x8000, 0x0000ac44, 0x0000ac54)
[862923.099] (WW) NVIDIA(0): WAIT (1, 6, 0x8000, 0x0000fca0, 0x0000fcb0)
[862923.099] (WW) NVIDIA(1): WAIT (1, 6, 0x8000, 0x0000af58, 0x0000af68)
[862923.099] (WW) NVIDIA(2): WAIT (1, 6, 0x8000, 0x0000bd18, 0x0000bd28)
[862923.099] (WW) NVIDIA(3): WAIT (1, 6, 0x8000, 0x0000af58, 0x0000af68)
[862923.099] (WW) NVIDIA(0): WAIT (1, 6, 0x8000, 0x0000ffb4, 0x000004e0)
[862923.099] (WW) NVIDIA(1): WAIT (1, 6, 0x8000, 0x0000b26c, 0x0000b74c)
[862923.099] (WW) NVIDIA(2): WAIT (1, 6, 0x8000, 0x0000c02c, 0x0000c50c)

though they don't appear constantly while my desktop is running (I assume they may come in batches?). Not sure if they're relevant.

A separate issue, though possibly related, is the SpeedCrunch app (a desktop calculator) is guaranteed to crash my desktop as soon as it gets focus.

Here's the relevant output of "lspci -v" which shows my graphics card:


03:00.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 / Tesla S2050 (rev a3) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=03, secondary=04, subordinate=06, sec-latency=0
I/O behind bridge: 0000c000-0000dfff
Memory behind bridge: f0f00000-f7efffff
Prefetchable memory behind bridge: 00000000d0000000-00000000efffffff
Capabilities: <access denied>
Kernel modules: shpchp

04:00.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 / Tesla S2050 (rev a3) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=04, secondary=05, subordinate=05, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: f4000000-f7efffff
Prefetchable memory behind bridge: 00000000d0000000-00000000dfffffff
Capabilities: <access denied>
Kernel modules: shpchp

04:02.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 / Tesla S2050 (rev a3) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=04, secondary=06, subordinate=06, sec-latency=0
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: f0f00000-f3ffffff
Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
Capabilities: <access denied>
Kernel modules: shpchp

05:00.0 VGA compatible controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1) (prog-if 00 [VGA controller])
Subsystem: nVidia Corporation Device 057e
Flags: bus master, fast devsel, latency 0, IRQ 24
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at f4000000 (64-bit, non-prefetchable) [size=32M]
I/O ports at dc80 [size=128]
[virtual] Expansion ROM at f7e00000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidia-current, nvidia-173, nouveau, nvidiafb

06:00.0 3D controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1)
Subsystem: nVidia Corporation Device 057e
Flags: bus master, fast devsel, latency 0, IRQ 35
Memory at f1000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f2000000 (64-bit, non-prefetchable) [size=32M]
I/O ports at cc80 [size=128]
[virtual] Expansion ROM at f0f00000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidia-current, nvidia-173, nouveau, nvidiafb


Here's my xorg.conf:


# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 260.19.06 (buildd@palmer) Mon Oct 4 16:01:38 UTC 2010

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 1200
Screen 1 "Screen1" 0 0
Screen 2 "Screen2" 1920 1200
Screen 3 "Screen3" 1920 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection

Section "Files"
EndSection

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

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL E248WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor2"
VendorName "Unknown"
ModelName "DELL E248WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "DELL E248WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor3"
VendorName "Unknown"
ModelName "DELL E248WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 420"
BusID "PCI:5:0:0"
Screen 0
EndSection

Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 420"
BusID "PCI:5:0:0"
Screen 1
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 420"
BusID "PCI:6:0:0"
Screen 0
EndSection

Section "Device"
Identifier "Device3"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 420"
BusID "PCI:6:0:0"
Screen 1
EndSection

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

Section "Screen"
Identifier "Screen2"
Device "Device2"
Monitor "Monitor2"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-1: 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 "TwinViewXineramaInfoOrder" "DFP-0"
Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen3"
Device "Device3"
Monitor "Monitor3"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-1: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

elialbert
April 7th, 2011, 04:47 PM
Hi, did you ever fix this? Have you tried Nouveau?

dkarnows
May 2nd, 2011, 08:23 PM
No, never fixed. I just upgraded to Ubuntu 11.04 and the same problem persists. We have a standard PC build here at my office and others experience it too. The Xorg process quickly jumps to 100% CPU usage whenever I click on anything and GUI performance is poor. It is particularly bad when using LibreOffice's Calc app when you copy some cells and that animated dashed line rotates around the cells you copy from. At that point the desktop performance really drags until you stop the dashed-line from animating (by hitting escape say).

I just tried the Nouveau driver and it didn't work at all. I just basically installed it and changed all the "Driver "nvidia"" xorg.conf entries to be "Driver "noveau"". It complained about not finding the devices. I suspect Noveau may not support my card: nVidia Corporation G98 [Quadro NVS 420] (?) Either that or I need to do more to corg.conf to get it working (?). Does Noveau support four monitors off one card?

Quite annoying.

elialbert
May 2nd, 2011, 08:55 PM
I've never tried nouveau with any success either.
I just upgraded a new lab computer to 11.04, with dell's prebuilt Dual 256MB NVIDIAŽ QuadroŽ NVS 295, 4MON option.
Unity just sucked for quad monitors, since I obviously wanted xinerama, and unity and xinerama seem to crash each other more or less instantly.
I'm booting as ubuntu classic no effects and running xinerama on 4 screens with about 95% error-free graphics right now, no manipulation of xorg.conf necessary.
Just in case you have the chance to get 2 new graphics cards...

dkarnows
May 2nd, 2011, 11:52 PM
Can you post your xorg.conf elialbert? I know we've got a different hardware setup (you two dual cards, me one quad) but there might be something in your xorg.conf that works for me.

elialbert
May 2nd, 2011, 11:56 PM
sure, remind me tomorrow if I forget. I'm not at work right now and the lab computers are off.

dkarnows
May 3rd, 2011, 03:44 PM
No need. I've solved the problem. I think the key was to run two TwinView "Screen"s rather than four screens. I also turned "Composite" off (I saw it mentioned on a forum somewhere). This command created a nice xorg.conf for me that only needed to modify slightly for the physical positions (coordinates) of the Screens:


sudo nvidia-xconfig --enable-all-gpus --twinview --xinerama

For future users who struggle through this problem here is my new (fast!) xorg.conf:


# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 270.41.06 (buildmeister@swio-display-x86-rhel47-07.nvidia.com) Mon Apr 18 15:15:12 PDT 2011

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 260.19.06 (buildd@palmer) Mon Oct 4 16:01:38 UTC 2010
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
# # generated from default
# Identifier "Mouse0"
# Driver "mouse"
# Option "Protocol" "auto"
# Option "Device" "/dev/psaux"
# Option "Emulate3Buttons" "no"
# Option "ZAxisMapping" "4 5"
#EndSection
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
# # generated from default
# Identifier "Keyboard0"
# Driver "kbd"
#EndSection

Section "ServerLayout"

# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Keyboard0" "CoreKeyboard"
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Mouse0" "CorePointer"
Identifier "Layout0"
# Screen 0 "Screen0"
# Screen 1 "Screen1" RightOf "Screen0"
Screen 0 "Screen0" Absolute 0 1200
Screen 1 "Screen1" Above "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection

Section "Files"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "keyboard"
EndSection

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

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 420"
BusID "PCI:5:0:0"
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 420"
BusID "PCI:6:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "True"
Option "MetaModes" "nvidia-auto-select, nvidia-auto-select"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "True"
Option "MetaModes" "nvidia-auto-select, nvidia-auto-select"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Disable"
EndSection

elialbert
May 3rd, 2011, 04:21 PM
hey congrats. I guess you're not using unity? and it looks like you are using xinerama + twinview. Let me know how stability works out in the next few days?

dkarnows
May 3rd, 2011, 07:57 PM
Yes, no Unity. I don't particularly like it anyway so wouldn't be using it regardless of my performance issues. So far so good on TwinView plus Xinerama after half a day's working with it. You can be sure I'll be back here complaining if something goes wrong ;-).