Noticed using maseq (MainActor) application, all attempts to use audio
caused the application to crash when opening the /dev/dsp device and
generated an oops (see oops1). Based on the oops error generated
(kernel BUG at audio.c:1474!) and a posting from Rui ("Re: Oops in
emu10k1 driver", 01 Apr 2002), I upgraded to the latest CVS version of
emu10k1.
After CVS upgrade, the application now plays about a half-second of
audio then crashes again with a different Oops message (see oops2).
Strace shows the application now crashing while writing to the sound
device. Just to be experimental, I applied the 2.4 patch sitting in
the docs area of the CVS tree, recompiled, installed and re-tested -
same problem (see oops3).
Any suggestions on where to go next with this?
-Justin
----------- Oops1: 2.4.18 kernel
ksymoops 2.4.3 on i686 2.4.18-12mdk. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.18-12mdk/ (default)
-m /boot/System.map-2.4.18-12mdk (default)
Jun 16 12:24:09 stout kernel: kernel BUG at audio.c:1474!
Jun 16 12:24:09 stout kernel: invalid operand: 0000
Jun 16 12:24:09 stout kernel: CPU: 0
Jun 16 12:24:09 stout kernel: EIP: 0010:[scanner:__insmod_scanner_S.data_L2240+36132890/746806] Tainted: PF
Jun 16 12:24:09 stout kernel: EIP: 0010:[<e4e1527a>] Tainted: PF
Using defaults from ksymoops -t elf32-i386 -a i386
Jun 16 12:24:09 stout kernel: EFLAGS: 00010006
Jun 16 12:24:09 stout kernel: eax: 0000000e ebx: dc0c68c8 ecx: 0000000e edx: 00003556
Jun 16 12:24:09 stout kernel: esi: 00000002 edi: 00000007 ebp: 0000ffff esp: da215ea0
Jun 16 12:24:09 stout kernel: ds: 0018 es: 0018 ss: 0018
Jun 16 12:24:09 stout kernel: Process maseq (pid: 11607, stackpage=da215000)
Jun 16 12:24:09 stout kernel: Stack: 00018000 0001c000 00010000 00014000 bfffec00 d4987000 dc0c6880 00000202
Jun 16 12:24:09 stout kernel: e4e141a1 dc0c6880 d4987618 c5300003 df4e8000 e4e16fbd c5303400 d4987618
Jun 16 12:24:09 stout kernel: c5303400 c5303400 d4987000 dc0c68c8 00001000 dc0c6880 d4987000 c5303400
Jun 16 12:24:09 stout kernel: Call Trace: [scanner:__insmod_scanner_S.data_L2240+36128577/751119] [scanner:__insmod_scanner_S.data_L2240+36140381/739315] [sys_ioctl+129/592] [system_call+51/64]
Jun 16 12:24:09 stout kernel: Call Trace: [<e4e141a1>] [<e4e16fbd>] [<c0145941>] [<c0108b73>]
Jun 16 12:24:09 stout kernel: Code: 0f 0b c2 05 18 df e1 e4 e9 1e ff ff ff c7 43 18 00 00 00 00
>>EIP; e4e1527a <[emu10k1]calculate_ifrag+ea/1f0> <=====
Trace; e4e141a0 <[emu10k1]emu10k1_audio_ioctl+cf0/1430>
Trace; e4e16fbc <[emu10k1]emu10k1_waveout_setformat+2c/130>
Trace; c0145940 <sys_ioctl+80/250>
Trace; c0108b72 <system_call+32/40>
Code; e4e1527a <[emu10k1]calculate_ifrag+ea/1f0>
00000000 <_EIP>:
Code; e4e1527a <[emu10k1]calculate_ifrag+ea/1f0> <=====
0: 0f 0b ud2a <=====
Code; e4e1527c <[emu10k1]calculate_ifrag+ec/1f0>
2: c2 05 18 ret $0x1805
Code; e4e1527e <[emu10k1]calculate_ifrag+ee/1f0>
5: df e1 (bad)
Code; e4e15280 <[emu10k1]calculate_ifrag+f0/1f0>
7: e4 e9 in $0xe9,%al
Code; e4e15282 <[emu10k1]calculate_ifrag+f2/1f0>
9: 1e push %ds
Code; e4e15284 <[emu10k1]calculate_ifrag+f4/1f0>
a: ff (bad)
Code; e4e15284 <[emu10k1]calculate_ifrag+f4/1f0>
b: ff (bad)
Code; e4e15286 <[emu10k1]calculate_ifrag+f6/1f0>
c: ff c7 inc %edi
Code; e4e15288 <[emu10k1]calculate_ifrag+f8/1f0>
e: 43 inc %ebx
Code; e4e15288 <[emu10k1]calculate_ifrag+f8/1f0>
f: 18 00 sbb %al,(%eax)
----------------Oops 2: CVS from 15 June 02
ksymoops 2.4.3 on i686 2.4.18-12mdk. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.18-12mdk/ (default)
-m /boot/System.map-2.4.18-12mdk (default)
Jun 16 14:46:07 stout kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004
Jun 16 14:46:07 stout kernel: printing eip:
Jun 16 14:46:07 stout kernel: c0117ee6
Jun 16 14:46:07 stout kernel: *pde = 00000000
Jun 16 14:46:07 stout kernel: Oops: 0002
Jun 16 14:46:07 stout kernel: CPU: 0
Jun 16 14:46:07 stout kernel: EIP: 0010:[interruptible_sleep_on+38/80] Tainted: PF
Jun 16 14:46:07 stout kernel: EIP: 0010:[<c0117ee6>] Tainted: PF
Using defaults from ksymoops -t elf32-i386 -a i386
Jun 16 14:46:07 stout kernel: EFLAGS: 00010082
Jun 16 14:46:07 stout kernel: eax: de7df628 ebx: 00000282 ecx: d51cff34 edx: 00000000
Jun 16 14:46:07 stout kernel: esi: de7df000 edi: 00000520 ebp: d51cff40 esp: d51cff2c
Jun 16 14:46:07 stout kernel: ds: 0018 es: 0018 ss: 0018
Jun 16 14:46:07 stout kernel: Process maseq (pid: 3398, stackpage=d51cf000)
Jun 16 14:46:07 stout kernel: Stack: 00000000 d51ce000 d51cff58 e2c1b3dd 00000296 d51cff58 e2c1b46b 00000009
Jun 16 14:46:07 stout kernel: d51ce000 000012a0 d6edbbc0 000012a0 00000000 d3e8be20 ffffffea 000017c0
Jun 16 14:46:07 stout kernel: c0138701 d3e8be20 40f652a8 000017c0 d3e8be40 c010a06a ddd2b9e0 800c5012
Jun 16 14:46:07 stout kernel: Call Trace: [scanner:__insmod_scanner_S.data_L2240+506237/36373459] [scanner:__insmod_scanner_S.data_L2240+506379/36373317] [sys_write+209/240] [handle_IRQ_event+58/128] [sys_ioctl+141/592]
Jun 16 14:46:07 stout kernel: Call Trace: [<e2c1b3dd>] [<e2c1b46b>] [<c0138701>] [<c010a06a>] [<c014594d>]
Jun 16 14:46:07 stout kernel: [<c0108b73>]
Jun 16 14:46:07 stout kernel: Code: 89 4a 04 89 45 f8 89 55 f4 89 08 e8 ba f9 ff ff fa 8b 55 f8
>>EIP; c0117ee6 <interruptible_sleep_on+26/50> <=====
Trace; e2c1b3dc <[emu10k1]emu10k1_audio_write+1ac/270>
Trace; e2c1b46a <[emu10k1]emu10k1_audio_write+23a/270>
Trace; c0138700 <sys_write+d0/f0>
Trace; c010a06a <handle_IRQ_event+3a/80>
Trace; c014594c <sys_ioctl+8c/250>
Trace; c0108b72 <system_call+32/40>
Code; c0117ee6 <interruptible_sleep_on+26/50>
00000000 <_EIP>:
Code; c0117ee6 <interruptible_sleep_on+26/50> <=====
0: 89 4a 04 mov %ecx,0x4(%edx) <=====
Code; c0117ee8 <interruptible_sleep_on+28/50>
3: 89 45 f8 mov %eax,0xfffffff8(%ebp)
Code; c0117eec <interruptible_sleep_on+2c/50>
6: 89 55 f4 mov %edx,0xfffffff4(%ebp)
Code; c0117eee <interruptible_sleep_on+2e/50>
9: 89 08 mov %ecx,(%eax)
Code; c0117ef0 <interruptible_sleep_on+30/50>
b: e8 ba f9 ff ff call fffff9ca <_EIP+0xfffff9ca> c01178b0 <schedule+0/380>
Code; c0117ef6 <interruptible_sleep_on+36/50>
10: fa cli
Code; c0117ef6 <interruptible_sleep_on+36/50>
11: 8b 55 f8 mov 0xfffffff8(%ebp),%edx
------------------- Oops 3: CVS from 15 June 02 and 2.4 patch in docs
directory
ksymoops 2.4.3 on i686 2.4.18-12mdk. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.18-12mdk/ (default)
-m /boot/System.map-2.4.18-12mdk (default)
Jun 16 15:44:18 stout kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004
Jun 16 15:44:18 stout kernel: printing eip:
Jun 16 15:44:18 stout kernel: c0117ee6
Jun 16 15:44:18 stout kernel: *pde = 00000000
Jun 16 15:44:18 stout kernel: Oops: 0002
Jun 16 15:44:18 stout kernel: CPU: 0
Jun 16 15:44:18 stout kernel: EIP: 0010:[interruptible_sleep_on+38/80] Tainted: PF
Jun 16 15:44:18 stout kernel: EIP: 0010:[<c0117ee6>] Tainted: PF
Using defaults from ksymoops -t elf32-i386 -a i386
Jun 16 15:44:18 stout kernel: EFLAGS: 00010082
Jun 16 15:44:18 stout kernel: eax: de249628 ebx: 00000282 ecx: c6fcbf34 edx: 00000000
Jun 16 15:44:18 stout kernel: esi: de249000 edi: 00000524 ebp: c6fcbf40 esp: c6fcbf2c
Jun 16 15:44:18 stout kernel: ds: 0018 es: 0018 ss: 0018
Jun 16 15:44:18 stout kernel: Process maseq (pid: 3539, stackpage=c6fcb000)
Jun 16 15:44:18 stout kernel: Stack: 00000000 c6fca000 c6fcbf58 e2c1b3dd 00000296 c6fcbf58 e2c1b46b 00000009
Jun 16 15:44:18 stout kernel: c6fca000 0000129c d57adc00 0000129c 00000000 d9b40860 ffffffea 000017c0
Jun 16 15:44:18 stout kernel: c0138701 d9b40860 40f652a4 000017c0 d9b40880 c010a06a d8b75680 800c5012
Jun 16 15:44:18 stout kernel: Call Trace: [scanner:__insmod_scanner_S.data_L2240+506237/36373459] [scanner:__insmod_scanner_S.data_L2240+506379/36373317] [sys_write+209/240] [handle_IRQ_event+58/128] [sys_ioctl+141/592]
Jun 16 15:44:18 stout kernel: Call Trace: [<e2c1b3dd>] [<e2c1b46b>] [<c0138701>] [<c010a06a>] [<c014594d>]
Jun 16 15:44:18 stout kernel: [<c0108b73>]
Jun 16 15:44:18 stout kernel: Code: 89 4a 04 89 45 f8 89 55 f4 89 08 e8 ba f9 ff ff fa 8b 55 f8
>>EIP; c0117ee6 <interruptible_sleep_on+26/50> <=====
Trace; e2c1b3dc <[emu10k1]emu10k1_audio_write+1ac/270>
Trace; e2c1b46a <[emu10k1]emu10k1_audio_write+23a/270>
Trace; c0138700 <sys_write+d0/f0>
Trace; c010a06a <handle_IRQ_event+3a/80>
Trace; c014594c <sys_ioctl+8c/250>
Trace; c0108b72 <system_call+32/40>
Code; c0117ee6 <interruptible_sleep_on+26/50>
00000000 <_EIP>:
Code; c0117ee6 <interruptible_sleep_on+26/50> <=====
0: 89 4a 04 mov %ecx,0x4(%edx) <=====
Code; c0117ee8 <interruptible_sleep_on+28/50>
3: 89 45 f8 mov %eax,0xfffffff8(%ebp)
Code; c0117eec <interruptible_sleep_on+2c/50>
6: 89 55 f4 mov %edx,0xfffffff4(%ebp)
Code; c0117eee <interruptible_sleep_on+2e/50>
9: 89 08 mov %ecx,(%eax)
Code; c0117ef0 <interruptible_sleep_on+30/50>
b: e8 ba f9 ff ff call fffff9ca <_EIP+0xfffff9ca> c01178b0 <schedule+0/380>
Code; c0117ef6 <interruptible_sleep_on+36/50>
10: fa cli
Code; c0117ef6 <interruptible_sleep_on+36/50>
11: 8b 55 f8 mov 0xfffffff8(%ebp),%edx
On Sun, 16 Jun 2002, Justin S. Peavey wrote:
> Noticed using maseq (MainActor) application, all attempts to use audio
> caused the application to crash when opening the /dev/dsp device and
> generated an oops (see oops1). Based on the oops error generated
> (kernel BUG at audio.c:1474!) and a posting from Rui ("Re: Oops in
> emu10k1 driver", 01 Apr 2002), I upgraded to the latest CVS version of
> emu10k1.
This one was fixed in kernel 2.4.19-pre8.
>
> After CVS upgrade, the application now plays about a half-second of
> audio then crashes again with a different Oops message (see oops2).
> Strace shows the application now crashing while writing to the sound
> device. Just to be experimental, I applied the 2.4 patch sitting in
> the docs area of the CVS tree, recompiled, installed and re-tested -
> same problem (see oops3).
>
> Any suggestions on where to go next with this?
Can you try and install 2.4.19-pre10 with the included emu10k1?
I suspect you are just hitting a driver miscompilation problem when
compiling the module outside the kernel tree (somehow not using the
correct compile options...) since the crash is inside
interrupt_sleep_on().
Rui Sousa
This was indeed the problem, a full kernel build with 2.4.19-pre10
fixed the issue.
Many thanks,
-Justin
On Tue, Jun 18, 2002 at 01:30:31AM +0200, Rui Sousa scribed to Cc [email protected]:
>
> Can you try and install 2.4.19-pre10 with the included emu10k1?
> I suspect you are just hitting a driver miscompilation problem when
> compiling the module outside the kernel tree (somehow not using the
> correct compile options...) since the crash is inside
> interrupt_sleep_on().
>
> Rui Sousa