Bug 24370

Summary: nouveau and xorg-server-1.7 does not work without NoAccel
Product: xorg Reporter: Peter Hjalmarsson <xake>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg | grep drm
none
Xorg.log
none
backtrace of gdb X none

Description Peter Hjalmarsson 2009-10-07 02:52:49 UTC
Created attachment 30137 [details]
dmesg | grep drm

I am using gentoo with the nouveau-kernel, libdrm from git, xf86-video-nouveau from git all updated today.
If I use org-server-1.6 it seems to work as it should but because of the slowness with gnome-terminal I wanted to take a look at xorg-server-1.7.

The problem:
I upgraded to xorg-server-1.7, and have also (for other reasons) rebuilt everything in my system, so every X-component are rebuilt with the latest versions installed, including all the drivers.
If I tri to startx, then everything start to loads, except that things does not look like they should. There are no characters what so ever. Windows borders are drawn, the background are drawn. The nouspointer are drawn. Some content fof the windows are particially drawn. Then lockup. No response from keyboard, no response from mouse.

The system responds to ssh, and with NoAccel everything works as is should, just a bit more slow.

Attaching Xorg.log and "dmesg | grep drm".
Will see if I can get out a backtrace also if that would be helpful.

$ sudo lspci -s 02: -nnvv
02:00.0 VGA compatible controller [0300]: nVidia Corporation GT200b [GeForce GTX 285] [10de:05e3] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: nVidia Corporation Device [10de:065b]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 24
	Region 0: Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at d0000000 (64-bit, prefetchable) [size=256M]
	Region 3: Memory at f8000000 (64-bit, non-prefetchable) [size=32M]
	Region 5: I/O ports at ac00 [size=128]
	Expansion ROM at fba80000 [disabled] [size=512K]
	Capabilities: [60] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [78] Express (v1) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <1us, L1 <4us
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <1us, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100] Virtual Channel <?>
	Capabilities: [128] Power Budgeting <?>
	Capabilities: [600] Vendor Specific Information <?>
	Kernel driver in use: nouveau
Comment 1 Peter Hjalmarsson 2009-10-07 02:59:02 UTC
Created attachment 30138 [details]
Xorg.log
Comment 2 Peter Hjalmarsson 2009-10-07 03:45:09 UTC
Created attachment 30139 [details]
backtrace of gdb X

Ok, this starts to get more fun.... When I startx it it runs for nearly a minute, but then (more comment in the bottom).

Over ssh:

$ startx
xauth:  creating new authority file /home/xake/.serverauth.5061


X.Org X Server 1.7.0
Release Date: 2009-10-2
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.31-rc9 x86_64 
Current Operating System: Linux lillen 2.6.31-rc9 #1 SMP Wed Oct 7 12:18:32 CEST 2009 x86_64
Kernel command line: BOOT_IMAGE=/kernel root=/dev/mapper/System-root quiet dolvm splash=verbose console=tty1
Build Date: 04 October 2009  01:27:35AM
 
Current version of pixman: 0.16.2
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Oct  7 12:21:01 2009
(==) Using config file: "/etc/X11/xorg.conf"
Setting master 
record: RECORD extension enabled at configure time.
record: This extension is known to be broken, disabling extension now..
record: http://bugs.freedesktop.org/show_bug.cgi?id=20500
(EE) AIGLX error: dlopen of /usr/lib64/dri/nouveau_dri.so failed (/usr/lib64/dri/nouveau_dri.so: cannot open shared object file: No such file or directory)
(EE) AIGLX: reverting to software rendering
resize called 1680 1050
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
>                   Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
X: nouveau_pushbuf.c:289: nouveau_pushbuf_flush: Assertion `ret == 0' failed.
xinit:  connection to X server lost.

waiting for X server to shut down 


After this I did gdb X and it was stable.
I started xterm on this display, and it showed up and worked like it should.
I started gnome-session in this xterm.
The xterm-window stayed working, and gnome started to show up. Same problems as before for the gnome apps. gnome-panel shows patilly some white rectangles, with black dots in, same with the windows, the borders are all fine, but of the rest there is not much drawn.

And then it crashes. I will attach a backtrace.
Comment 3 Peter Hjalmarsson 2009-10-13 01:09:58 UTC
I redid this today when I relised that somehow CONFIG_CC_STACKPROTECT (or what the config option for gcc flag -fstack-protector is called) probably was enabled last time and I wanted to see if disabling made things work.

The nouveau linux-2.6 kernel freshly pulled (commit 2e68b1d4775b7b773334a4a9c6ef2358bfa85d42).
libdrm (commit a107e5b12960f64722bff424502a4fc0ad33dc8f) and xf86-video-nouveau (commit 9cbc139176ae991150bd9ddf66b61db471b391f2) freshly pulled from git, rebuild and installed.
with xorg-server-1.6 it works, with xorg-server-1.7.0{,.901} it fails

X dies with Assert (ret==0) error message.

This time I did it like this.

I have a file in /etc/modprobe.d that blacklists nouveau so I can control when it will be loaded, adds modeset=1 to it, and adds debug=1 to the drm module.
I also did an [MARK] in the kernl log every time I did something.

I ssh into the machine.
modprobe nouveau
X &
(waited for the machine to settle) gdb --pid=`pidof X`

from another ssh:
DISPLAY=":0" gnome-session


and then I waited for X to crash.
It seems like every gtk+ app has problem displaying stuff. If I start xterm instead of gnome-session xterm works as it should. No gtk+ apps show stuff it should. And something gnom-session loads crashes nouveau.

kern.log, Xorg.log and gbd.txt will be find at this address since they are too big for bugzilla.
http://xake.rymdraket.net/nouveau/
Comment 4 Peter Hjalmarsson 2009-10-13 01:10:51 UTC
Comment on attachment 30139 [details]
backtrace of gdb X

obsoleted by http://xake.rymdraket.net/nouveau/gdb.txt
Comment 5 Peter Hjalmarsson 2009-10-13 01:11:28 UTC
Comment on attachment 30137 [details]
dmesg | grep drm

obsoleted by http://xake.rymdraket.net/nouveau/kern.log
Comment 6 Peter Hjalmarsson 2009-10-13 01:11:55 UTC
Comment on attachment 30138 [details]
Xorg.log

obsoleted by http://xake.rymdraket.net/nouveau/Xorg.0.log
Comment 7 Peter Hjalmarsson 2009-10-18 11:05:14 UTC
I tried getting vanilla kernel sources, and applying
http://cvs.fedoraproject.org/viewvc/rpms/kernel/F-12/drm-nouveau.patch?revision=1.64
and
http://cvs.fedoraproject.org/viewvc/rpms/kernel/F-12/drm-next-d4ac6a05.patch?revision=1.2
to get the former to compile.

Then I applied 
http://cvs.fedoraproject.org/viewvc/rpms/xorg-x11-drv-nouveau/F-12/nouveau-tile7000.patch?revision=1.7
to my xf86-video-nouveau.

And after this gtk+ applications were working like they should in xorg-server-1.7.

By disabling the semi-transparent background on gnome-panels also the Assert (ret==0) crash went away.
Comment 8 Peter Hjalmarsson 2010-03-23 01:25:18 UTC
The biggest part of this bug is fixed.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.