Oops when reading /proc/dri/0/vm with r128 on Inspiron 4000

From: Dagfinn Ilmari Mannsåker (ilmari@ilm.nlc.no)
Date: Sun Sep 09 2001 - 07:39:32 EST


Hi,

DRI won't work on my Dell Inspiron 4000 with an ATI Rage Mobility M3 graphics
chip. I've tried both 2.4.9 and -ac6, both the stock DRM and from CVS today.
The kernel seems to find the card just fine, according to dmesg, but
/dev/dri/0/ is not created (I'm running devfs).

The dmesg output for the card is:

[drm] AGP 0.99 on Intel 440BX @ 0xf0000000 64MB
[drm] Initialized r128 2.1.6 20010405 on minor 0

X on the other hand, says:

(II) R128(0): Direct rendering disabled

When cat'ing /proc/dri/0/vm I get a NULL pointer dereference oops, after which all
reading from any file (except name) in /proc/dri/0/ hangs in uninterruptible
sleep until I reboot. On 2.4.9-ac6 with drm from cvs (no agpgart loaded), the
decoded oops is as follows (I ran ksymoops immediately after the oops, so the
warnings can be ignored):

ksymoops 2.4.2 on i686 2.4.9-ac6. Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.9-ac6/ (default)
     -m /boot/System.map-2.4.9-ac6 (default)

Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.

Warning (compare_maps): mismatch on symbol zeroes , ipsec says d09144c0, /lib/modules/2.4.9-ac6/kernel/net/ipsec/ipsec.o says d09143c0. Ignoring /lib/modules/2.4.9-ac6/kernel/net/ipsec/ipsec.o entry
Unable to handle kernel NULL pointer dereference at virtual address 00000000
d09ae907
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<d09ae907>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010287
eax: 00000000 ebx: 00000032 ecx: c035c000 edx: c7502000
esi: c03a1f98 edi: c035c000 ebp: c035c000 esp: c03a1ee4
ds: 0018 es: 0018 ss: 0018
Process cat (pid: 2416, stackpage=c03a1000)
Stack: c7502000 c03a1f98 c035c000 c7502020 c0c966e0 c03a1f34 00000000 c7502000
       d09b8214 d09b8217 d09b821b d09b821f c0c96660 00000000 cd901000 d09aea5b
       c035c000 c03a1f98 00000000 00000400 c03a1f94 c7502000 00000282 c021de84
Call Trace: [<d09b8214>] [<d09b8217>] [<d09b821b>] [<d09b821f>] [<d09aea5b>]
   [<c014571a>] [<c012e1c6>] [<c0106aeb>]
Code: 8b 38 8b 07 0f 18 00 8b 44 24 1c 8b 90 4c 01 00 00 39 d7 0f

>>EIP; d09ae906 <[r128]r128__vm_info+9a/1b4> <=====
Trace; d09b8214 <[r128].rodata.start+2274/46be>
Trace; d09b8216 <[r128].rodata.start+2276/46be>
Trace; d09b821a <[r128].rodata.start+227a/46be>
Trace; d09b821e <[r128].rodata.start+227e/46be>
Trace; d09aea5a <[r128]r128_vm_info+3a/54>
Trace; c014571a <proc_file_read+f2/194>
Trace; c012e1c6 <sys_read+96/cc>
Trace; c0106aea <system_call+32/38>
Code; d09ae906 <[r128]r128__vm_info+9a/1b4>
00000000 <_EIP>:
Code; d09ae906 <[r128]r128__vm_info+9a/1b4> <=====
   0: 8b 38 mov (%eax),%edi <=====
Code; d09ae908 <[r128]r128__vm_info+9c/1b4>
   2: 8b 07 mov (%edi),%eax
Code; d09ae90a <[r128]r128__vm_info+9e/1b4>
   4: 0f 18 00 prefetchnta (%eax)
Code; d09ae90c <[r128]r128__vm_info+a0/1b4>
   7: 8b 44 24 1c mov 0x1c(%esp,1),%eax
Code; d09ae910 <[r128]r128__vm_info+a4/1b4>
   b: 8b 90 4c 01 00 00 mov 0x14c(%eax),%edx
Code; d09ae916 <[r128]r128__vm_info+aa/1b4>
  11: 39 d7 cmp %edx,%edi
Code; d09ae918 <[r128]r128__vm_info+ac/1b4>
  13: 0f 00 00 sldt (%eax)

2 warnings issued. Results may not be reliable.

lspci -vvv says this about the card:

01:00.0 VGA compatible controller: ATI Technologies Inc Mobility M3 AGP 2x
(rev 02) (prog-if 00 [VGA])
        Subsystem: Dell Computer Corporation: Unknown device 00b0
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping+ SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 (2000ns min), cache line size 08
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at f4000000 (32-bit, prefetchable) [size=64M]
        Region 1: I/O ports at ec00 [size=256]
        Region 2: Memory at fdffc000 (32-bit, non-prefetchable) [size=16K]
        Expansion ROM at <unassigned> [disabled] [size=128K]
        Capabilities: [50] AGP version 2.0
                Status: RQ=31 SBA+ 64bit- FW- Rate=x1,x2
                Command: RQ=0 SBA+ AGP- 64bit- FW- Rate=<none>
        Capabilities: [5c] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

My kernel config and relvant parts of XF86Config-4 are attached.

-- 
Dagfinn I. Mannsåker
GPG Public Key ID: 0x51ECFAC6
Fingerprint:  48BB A64D CE9B 9A06 65DF  395C D42E CDC4 51EC FAC6




- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 15 2001 - 21:00:18 EST