i810 1.7.4 driver lockups
Thomas Hellström
thomas at tungstengraphics.com
Thu Feb 1 10:19:32 PST 2007
Andrew J. Barr wrote:
>On Thu, 2007-02-01 at 14:04 -0330, Roderick Greening wrote:
>
>
>>I went back trough my logs, and I located this in /var/log/messages:
>>
>>Feb 1 11:26:59 prometheus BUG: unable to handle kernel NULL pointer
>>dereference at virtual address 00000029
>>Feb 1 11:26:59 prometheus printing eip:
>>Feb 1 11:26:59 prometheus f9080503
>>Feb 1 11:26:59 prometheus *pde = 00000000
>>Feb 1 11:26:59 prometheus Oops: 0002 [#1]
>>Feb 1 11:26:59 prometheus PREEMPT SMP
>>Feb 1 11:26:59 prometheus Modules linked in: i915 drm snd_rtctimer
>>snd_pcm_oss snd_mixer_oss snd_seq_oss snd_seq_midi_event snd_seq
>>snd_usb_audio snd_usb_lib snd_rawmidi snd_seq_device snd_hwdep video thermal
>>processor fan button battery ac sbs i2c_ec acerhk usbhid ipw3945(F)
>>ieee80211 ieee80211_crypt yenta_socket rsrc_nonstatic r8169 firmware_class
>>pcmcia_core snd_hda_intel snd_hda_codec psmouse snd_pcm snd_timer snd pcspkr
>>i2c_i801 intel_agp agpgart soundcore snd_page_alloc
>>Feb 1 11:26:59 prometheus CPU: 1
>>Feb 1 11:26:59 prometheus EIP: 0060:[<f9080503>] Tainted: GF VLI
>>Feb 1 11:26:59 prometheus EFLAGS: 00210246 (2.6.19-gentoo-r5 #1)
>>Feb 1 11:26:59 prometheus EIP is at drm_agp_bind_ttm+0x83/0xb0 [drm]
>>Feb 1 11:26:59 prometheus eax: 00000001 ebx: f5ae21c0 ecx: 00000000
>>edx: 0000e000
>>Feb 1 11:26:59 prometheus esi: 00000000 edi: c223ebe0 ebp: 00000000
>>esp: f74bdd78
>>Feb 1 11:26:59 prometheus ds: 007b es: 007b ss: 0068
>>Feb 1 11:26:59 prometheus Process glxgears (pid: 10103, ti=f74bc000
>>task=f760a560 task.ti=f74bc000)
>>Feb 1 11:26:59 prometheus Stack: f9084301 00000001 0000e000 00000000
>>00000100 f51539c0 f5ae21c0 f90843a9
>>Feb 1 11:26:59 prometheus f731b0c0 f71d0800 0000e000 00000000 f71d0c98
>>00000000 f71d081c f731b0c0
>>Feb 1 11:26:59 prometheus f71d0800 f9086621 00000000 f9081d38 f713b8c0
>>03000000 f731b0c0 00000000
>>Feb 1 11:26:59 prometheus Call Trace:
>>Feb 1 11:26:59 prometheus [<f9084301>] drm_set_caching+0xa1/0xf0 [drm]
>>Feb 1 11:26:59 prometheus [<f90843a9>] drm_bind_ttm+0x59/0x1f0 [drm]
>>Feb 1 11:26:59 prometheus [<f9086621>] drm_bo_move_buffer+0xc1/0x190 [drm]
>>Feb 1 11:26:59 prometheus [<f9081d38>] drm_ht_find_item+0x8/0x20 [drm]
>>Feb 1 11:26:59 prometheus [<f9086976>]
>>drm_buffer_object_validate+0x286/0x2e0 [drm]
>>Feb 1 11:26:59 prometheus [<f9085dee>] drm_lookup_buffer_object+0x1e/0x90
>>[drm]
>>Feb 1 11:26:59 prometheus [<f9087497>] drm_bo_ioctl+0x837/0x870 [drm]
>>Feb 1 11:26:59 prometheus [<c011bab0>] default_wake_function+0x0/0x10
>>Feb 1 11:26:59 prometheus [<f9086c60>] drm_bo_ioctl+0x0/0x870 [drm]
>>Feb 1 11:26:59 prometheus [<f907b12e>] drm_ioctl+0xae/0x210 [drm]
>>Feb 1 11:26:59 prometheus [<c030fdaa>] schedule+0x32a/0x910
>>Feb 1 11:26:59 prometheus [<c030fddc>] schedule+0x35c/0x910
>>Feb 1 11:26:59 prometheus [<f9086c60>] drm_bo_ioctl+0x0/0x870 [drm]
>>Feb 1 11:26:59 prometheus [<c0177a48>] do_ioctl+0x78/0x90
>>Feb 1 11:26:59 prometheus [<c0177abc>] vfs_ioctl+0x5c/0x2b0
>>Feb 1 11:26:59 prometheus [<c0177d82>] sys_ioctl+0x72/0x90
>>Feb 1 11:26:59 prometheus [<c01032c1>] sysenter_past_esp+0x56/0x79
>>Feb 1 11:26:59 prometheus =======================
>>Feb 1 11:26:59 prometheus Code: f9 89 44 24 04 c7 04 24 30 9f 08 f9 e8 47
>>2d 0a c7 89 d8 8b 74 24 10 8b 5c 24 0c 8b 7c 24 14 8b 6c 24 18 83 c4 1c c3
>>90 89 43 08 <c6> 46 29 01
>>8b 47 10 eb b4 8d 74 26 00 b8 53 80 08 f9 89 44 24
>>Feb 1 11:26:59 prometheus EIP: [<f9080503>] drm_agp_bind_ttm+0x83/0xb0
>>[drm] SS:ESP 0068:f74bdd78
>>
>>I assume this will help someone determine where the problem lies.
>>
>>
>
>Just a simple sanity check, but you could check to see what patches
>Gentoo applies to that version of the kernel. See if they touch any of
>the DRM code or drivers.
>
>Andrew
>
>
>
The error is caused by the fact that the new drm memory manager is used
with the wrong agpgart
version. Newer drm versions detect this and abort without an oops, but
it is quite tricky to
make the i810 xorg driver detect this early enough and revert to legacy 3D.
The correct agpgart version to use (0.102) can be found in the latest
-mm kernel or at
git://git.freedesktop.org/git/mesa/linux-agp-compat.
/Thomas
More information about the xorg
mailing list