Re: oops while loading snd-seq-oss (was: Re: 2.6.18-rc4-mm1 BUG, drm related)

Andrew Morton
2006-08-18T15:52:57Z

On Fri, 18 Aug 2006 11:11:18 +0000
Frederik Deweerdt <deweerdt@free.fr> wrote:

> > CONFIG_DEBUG_PAGEALLOC might tell us more.
> I've tried enabling it, at it appears that we catch an earlier error:
> [ 34.988000] [drm:drm_unlock] *ERROR* Process 8826 using kernel context 0
> [ 35.644000] BUG: unable to handle kernel paging request at virtual address 00716573
> [ 35.644000] printing eip:
> [ 35.644000] c01aeacb
> [ 35.644000] *pde = 00000000
> [ 35.644000] Oops: 0000 [#1]
> [ 35.644000] PREEMPT DEBUG_PAGEALLOC
> [ 35.644000] last sysfs file: /devices/pci0000:00/0000:00:1d.7/usb5/5-0:1.0/bInterfaceProtocol
> [ 35.644000] Modules linked in: snd_seq snd_seq_device ohci_hcd parport_pc parport pcspkr ipw2200 yenta_socket rsrc_nonstatic pcmcia_core snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd soundcore snd_page_alloc ehci_hcd uhci_hcd usbcore cpufreq_stats cpufreq_powersave cpufreq_ondemand cpufreq_conservative speedstep_centrino freq_table processor ac battery i915 drm tg3 joydev tsdev
> [ 35.644000] CPU: 0
> [ 35.644000] EIP: 0060:[<c01aeacb>] Not tainted VLI
> [ 35.644000] EFLAGS: 00210246 (2.6.18-rc4-def01 #18)
> [ 35.644000] EIP is at sysfs_dirent_exist+0x4b/0x70
> [ 35.644000] eax: 00716573 ebx: f36f263c ecx: f71962a0 edx: f36f263c
> [ 35.644000] esi: 00716573 edi: c03b4177 ebp: f711fe90 esp: f711fe7c
> [ 35.644000] ds: 007b es: 007b ss: 0068
> [ 35.644000] Process modprobe (pid: 8864, ti=f711e000 task=c193b540 task.ti=f711e000)
> [ 35.644000] Stack: f36f263c f36f26a0 f36bf120 c03b4177 ffffffef f711feb0 c01afb95 f36f2694
> [ 35.644000] c03b4177 f7ba4108 00000000 f7ba4000 f7ba4108 f711fed8 c027ece1 f7ba4108
> [ 35.644000] f74b5d08 c03b4177 f7ba416c f7ba4000 f71962a0 f7ba4000 f7ba4108 f711ff08
> [ 35.644000] Call Trace:
> [ 35.644000] [<c01afb95>] sysfs_create_link+0x4d/0xa2
> [ 35.644000] [<c027ece1>] device_add_class_symlinks+0xb0/0x14d
> [ 35.644000] [<c027eff1>] device_add+0x1a0/0x37e
> [ 35.644000] [<c027f1e9>] device_register+0x1a/0x20
> [ 35.644000] [<c027f52f>] device_create+0xaa/0xc4
> [ 35.644000] [<f8a0e472>] snd_register_device+0xcf/0x104 [snd]
> [ 35.644000] [<f8abd0c2>] snd_sequencer_device_init+0x4e/0x7c [snd_seq]
> [ 35.644000] [<f8abd02f>] alsa_seq_init+0x2f/0x51 [snd_seq]
> [ 35.644000] [<c0141ab9>] sys_init_module+0x163/0x221
> [ 35.644000] [<c0103139>] sysenter_past_esp+0x56/0x8d
> [ 35.644000] [<b7fcd410>] 0xb7fcd410
> [ 35.644000] [<c0104205>] show_stack_log_lvl+0x98/0xb2
> [ 35.644000] [<c0104434>] show_registers+0x1b7/0x22f
> [ 35.644000] [<c0104616>] die+0x12a/0x232
> [ 35.644000] [<c0377042>] do_page_fault+0x38c/0x616
> [ 35.644000] [<c0103cad>] error_code+0x39/0x40
> [ 35.644000] [<c01afb95>] sysfs_create_link+0x4d/0xa2
> [ 35.644000] [<c027ece1>] device_add_class_symlinks+0xb0/0x14d
> [ 35.644000] [<c027eff1>] device_add+0x1a0/0x37e
> [ 35.644000] [<c027f1e9>] device_register+0x1a/0x20
> [ 35.644000] [<c027f52f>] device_create+0xaa/0xc4
> [ 35.644000] [<f8a0e472>] snd_register_device+0xcf/0x104 [snd]
> [ 35.644000] [<f8abd0c2>] snd_sequencer_device_init+0x4e/0x7c [snd_seq]
> [ 35.644000] [<f8abd02f>] alsa_seq_init+0x2f/0x51 [snd_seq]
> [ 35.644000] [<c0141ab9>] sys_init_module+0x163/0x221
> [ 35.644000] [<c0103139>] sysenter_past_esp+0x56/0x8d
> [ 35.644000] Code: f0 eb 12 8b 53 04 8d 42 fc 89 c3 8b 40 04 0f 18 00 90 3b 55 f0 74 2f 8b 43 14 85 c0 74 e5 89 1c 24 e8 39 f0 ff ff 8b 7d 0c 89 c6 <ac> ae 75 08 84 c0 75 f8 31 c0 eb 04 19 c0 0c 01 85 c0 75 c4 b8
> [ 35.644000] EIP: [<c01aeacb>] sysfs_dirent_exist+0x4b/0x70 SS:ESP 0068:f711fe7c
> [ 35.644000]
> It looks like %eax is in fact a sort of "seq" string, but I couldn't
> figure out why we ended with this pointer :(

These sorts of crashes down in sysfs often are hard to diagnose. What did
the driver do to cause this? Dunno. But it continues to look like an ALSA
thing.

If you had CONFIG_PCI_MULTITHREAD_PROBE enabled, please try disabling it.