Bug 40866 - GeForce4 Ti 4400 (NV25) X Segfaults in nouveau_channel_alloc
Summary: GeForce4 Ti 4400 (NV25) X Segfaults in nouveau_channel_alloc
Status: RESOLVED NOTABUG
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-14 03:06 UTC by JohnDoe_71Rus
Modified: 2011-10-15 09:26 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
xorg.conf (1.48 KB, application/octet-stream)
2011-09-14 03:06 UTC, JohnDoe_71Rus
no flags Details
kernel_log (37.76 KB, text/plain)
2011-09-14 03:08 UTC, JohnDoe_71Rus
no flags Details
dmesg (37.62 KB, text/plain)
2011-09-14 03:09 UTC, JohnDoe_71Rus
no flags Details
xorg.conf plain text (1.48 KB, text/plain)
2011-09-14 03:10 UTC, JohnDoe_71Rus
no flags Details
xorg.0.log (18.11 KB, text/plain)
2011-09-22 02:00 UTC, JohnDoe_71Rus
no flags Details

Description JohnDoe_71Rus 2011-09-14 03:06:33 UTC
Created attachment 51186 [details]
xorg.conf

ubuntu 10.04
nVidia Corporation NV25 [GeForce4 Ti 4400] rev 163
3.0.4-030004-generic #201108301138 SMP Tue Aug 30 13:13:07 UTC 2011 i686 GNU/Linux
kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline/ 

add repository
http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu
http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu

Backtrace:
[    19.598] 0: /usr/bin/X (xorg_backtrace+0x3b) [0x80ad18b]
[    19.598] 1: /usr/bin/X (0x8048000+0x60685) [0x80a8685]
[    19.598] 2: (vdso) (__kernel_rt_sigreturn+0x0) [0xb77b740c]
[    19.598] 3: /usr/lib/xorg/modules/drivers/nouveau_drv.so (0xb732a000+0xc7b3) [0xb73367b3]
[    19.598] 4: /usr/lib/xorg/modules/drivers/nouveau_drv.so (0xb732a000+0xd168) [0xb7337168]
[    19.598] 5: /usr/bin/X (AddScreen+0x198) [0x808d2b8]
[    19.598] 6: /usr/bin/X (InitOutput+0x228) [0x80b17f8]
[    19.598] 7: /usr/bin/X (0x8048000+0x1eb4b) [0x8066b4b]
[    19.598] 8: /lib/tls/i686/cmov/libc.so.6 (__libc_start_main+0xe6) [0xb74d3bd6]
[    19.598] 9: /usr/bin/X (0x8048000+0x1e8f1) [0x80668f1]
[    19.598] Segmentation fault at address 0x6000
[    19.598] 
Fatal server error:
[    19.598] Caught signal 11 (Segmentation fault). Server aborting
Comment 1 JohnDoe_71Rus 2011-09-14 03:08:06 UTC
Created attachment 51187 [details]
kernel_log
Comment 2 JohnDoe_71Rus 2011-09-14 03:09:24 UTC
Created attachment 51188 [details]
dmesg
Comment 3 JohnDoe_71Rus 2011-09-14 03:10:28 UTC
Created attachment 51189 [details]
xorg.conf plain text
Comment 4 JohnDoe_71Rus 2011-09-22 02:00:28 UTC
Created attachment 51506 [details]
xorg.0.log
Comment 5 JohnDoe_71Rus 2011-10-14 13:03:24 UTC
Try 3.0.6-030006-generic #201110050043 SMP Wed Oct 5 02:07:23 UTC 2011 i686 and drm xf86-video-nouveau from git. The same situation.

http://pastebin.com/VL0PAmsh dmesg
http://pastebin.com/FhP3qty0 xorg.0.log 

gdb /usr/lib/xorg/modules/drivers/nouveau_drv.so
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/xorg/modules/drivers/nouveau_drv.so...done.
(gdb) l *0xc5c3
0xc5c3 is in NVInitDma (nv_dma.c:56).
51		NVPtr pNv = NVPTR(pScrn);
52		int ret;
53	
54		ret = nouveau_channel_alloc(pNv->dev, NvDmaFB, NvDmaTT, 24*1024,
55					    &pNv->chan);
56		if (ret) {
57			xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
58				   "Error creating GPU channel: %d\n", ret);
59			return FALSE;
60		}
(gdb)
Comment 6 maximlevitsky 2011-10-14 13:10:33 UTC
We debugged that a bit today, and found that X segfaults when it tries to open a GPU channel.

Both DDX module and libdrm are now compiled from their git branches.
kernel log is quiet in regard to errors.
Comment 7 Francisco Jerez 2011-10-15 04:26:41 UTC
This looks like an ABI issue, most likely you're running a version of libdrm different to the one your DDX module was compiled with.

Try "ldd /usr/lib/xorg/modules/drivers/nouveau_drv.so |grep libdrm" to find out which libraries are being used, and, in case they aren't what you'd expect, remove them, and make sure you're installing libdrm and the DDX to the right prefix.
Comment 8 maximlevitsky 2011-10-15 06:17:44 UTC
We did compile both libdrm and DDX. And installed both to /usr. I don't think its ABI issue (although I also suspected that first)
Comment 9 maximlevitsky 2011-10-15 06:20:10 UTC
Although, knowing that ubuntu plays games with libdrm and installs it to /lib or something crazy like that, it could be.

Also, before we compiled it, I more or less verified that stock ubbuntu packages or X and libdrm were used.
Comment 10 maximlevitsky 2011-10-15 09:26:33 UTC
It was indeed ABI problem. libdrm was pulled from /lib. Now it works


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.