System will not allow direct rendering under XFree86 4.3.0.1. When sis-agp and agpgart are in memory (either compiled into kernel or loaded as modules) and either the xfree-drm (radeon, from the 2.6 kernel) or ati-driver (fglrx) modules are loaded, the system will lock up when starting X. Here is /var/log/messages right before the lockup: Mar 13 17:56:17 linuxbox Debug: sleeping function called from invalid context at mm/slab.c:1856 Mar 13 17:56:17 linuxbox in_atomic():1, irqs_disabled():0 Mar 13 17:56:17 linuxbox Call Trace: Mar 13 17:56:17 linuxbox [<c0119e9b>] __might_sleep+0xab/0xd0 Mar 13 17:56:17 linuxbox [<c013d92c>] kmem_cache_alloc+0x6c/0x70 Mar 13 17:56:17 linuxbox [<e0a40c88>] __ke_alloc_wait_queue_head_struct+0x18/0x3 0 [fglrx] Mar 13 17:56:17 linuxbox [<e0a52f9f>] firegl_open_helper+0x15f/0x190 [fglrx] Mar 13 17:56:17 linuxbox [<e0a444c6>] firegl_setup_dev+0x126/0x1d0 [fglrx] Mar 13 17:56:17 linuxbox [<e0a43ad4>] firegl_open+0x194/0x260 [fglrx] Mar 13 17:56:17 linuxbox [<c015b2ef>] exact_lock+0xf/0x20 Mar 13 17:56:17 linuxbox [<e0a40a02>] firegl_stub_open+0x102/0x1b0 [fglrx] Mar 13 17:56:17 linuxbox [<e0a40900>] firegl_stub_open+0x0/0x1b0 [fglrx] Mar 13 17:56:17 linuxbox [<c015b0d6>] chrdev_open+0xe6/0x210 Mar 13 17:56:17 linuxbox [<c01d69bf>] devfs_open+0xef/0x100 Mar 13 17:56:17 linuxbox [<c01510d2>] dentry_open+0x142/0x210 Mar 13 17:56:17 linuxbox [<c0150f82>] filp_open+0x62/0x70 Mar 13 17:56:17 linuxbox [<c015141b>] sys_open+0x5b/0x90 Mar 13 17:56:17 linuxbox [<c010ab1b>] syscall_call+0x7/0xb Mar 13 17:56:17 linuxbox Mar 13 17:56:17 linuxbox [fglrx] AGP detected, AgpState = 0x1f004e1b (hardware caps of chipset) Mar 13 17:56:17 linuxbox agpgart: Found an AGP 3.5 compliant device at 0000:00:0 0.0. Mar 13 17:56:17 linuxbox agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode Mar 13 17:56:17 linuxbox agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode Mar 13 17:56:17 linuxbox [fglrx] AGP enabled, AgpCommand = 0x1f004312 (selected caps) Mar 13 17:56:17 linuxbox [fglrx] free AGP = 54800384 Mar 13 17:56:17 linuxbox [fglrx] max AGP = 54800384 Mar 13 17:56:17 linuxbox [fglrx] free LFB = 116391936 Mar 13 17:56:17 linuxbox [fglrx] max LFB = 116391936 Mar 13 17:56:17 linuxbox [fglrx] free Inv = 0 Mar 13 17:56:17 linuxbox [fglrx] max Inv = 0 Mar 13 17:56:17 linuxbox [fglrx] total Inv = 0 Mar 13 17:56:17 linuxbox [fglrx] total TIM = 0 Mar 13 17:56:17 linuxbox [fglrx] total FB = 0 Mar 13 17:56:17 linuxbox [fglrx] total AGP = 16384 Mar 13 17:56:17 linuxbox CPU 0: Machine Check Exception: 0000000000000007 Mar 13 17:56:17 linuxbox Bank 3: b400000000000833 at 00000000d000103c I have tried the SiS648 patch found here: http://lwn.net/Articles/67888/ changing the if(pdev->device==PCI_DEVICE_ID_SI_648) line to if(pdev->device==PCI_DEVICE_ID_SI_741). In this case, X will start and glxinfo will report direct rendering is enabled, but the system will crash shortly after running glxgears for a minute or two. I have also tried the gentoo 2.2.24 sources with emerge xfree-drm, and the same lockup occurs (X will not even start.) Reproducible: Always Steps to Reproduce: 1. have either "radeon" or "fglrx" modules loaded with "agpgart" and "sis-agp" 2. startx Actual Results: "radeon" (xfree-drm driver) causes monitor to go into power saving mode. "fglrx" (ati-drivers) causes monitor to stay on, but screen is black. Complete lockup, machine cannot be remotely logged into, Ctrl-Alt key commands at local console do nothing. Machine must be reset with reset button. Expected Results: Started X with direct rendering. SiS 741GX Chipset Radeon 9200SE w/128MB, generic brand Athlon XP 2000+ 2.6.3-gentoo-r1 kernel source XFree86 4.3.0.1 ati-drivers 3.2.8r1 and 3.7.6 Portage 2.0.50-r1 (default-x86-2004.0, gcc-3.3.2, glibc-2.3.2-r9, 2.6.3-gentoo-r1) ================================================================= System uname: 2.6.3-gentoo-r1 i686 AMD Athlon(tm) XP 2000+ Gentoo Base System version 1.4.3.13 Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://mirrors.tds.net/gentoo http://open-systems.ufl.edu/mirrors/gentoo http://gentoo.mirrors.pair.com/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X alsa apm arts avi berkdb crypt cups dvd encode foomaticdb gdbm gif gpm gtk2 imlib jpeg kde libg++ libwww mad mikmod mmx motif mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcltk tcpd truetype x86 xml2 xmms xv zlib"
Created attachment 27934 [details, diff] Patch for SiS 741GX AGP bridge This is Oliver Heilmann's SiS 648 patch. All I changed were the IF statements to look for a 741, not a 648.
Looks like it's working? I reinstalled from a stage 3 this time (earlier was stage 2) and emerged vanilla 2.6.3 sources. Applied the attached patch (a slightly modified version of Oliver Heilmann's 648 patch from the kernel mailing list) and compiled the kernel. testgart now passes all tests and XFree reports direct rendering enabled using radeon_drv. This bug probably has NOTHING to do with XFree, it seems like a kernel issue.
Dont know if this still is an issue, but its not an X11 bug. Kernel team see comment #3
Kernel's agp stuff has changed loads since 2.6.3, please reopen if this still needs fixing on 2.6.9