Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 33628 - ALSA kernel module snd-usb-audio crashes under heavy system load
Summary: ALSA kernel module snd-usb-audio crashes under heavy system load
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: PPC Linux
: High critical (vote)
Assignee: x86-kernel@gentoo.org (DEPRECATED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-16 12:33 UTC by Lee Azzarello
Modified: 2003-11-18 21:17 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lee Azzarello 2003-11-16 12:33:47 UTC
Under heavy system load, the ALSA driver for the Emagic EMI 2|6 USB audio device
crashes in the kernel with a message:
Unable to handle kernel NULL pointer dereference at virtual address 00000050
I'm defining heavy load as ripping a CD/DVD and/or compiling ebuilds. While
reproducable, the actual load that causes the crash seems variable.

Reproducible: Sometimes
Steps to Reproduce:
1. Play audio from XMMS
2. exert heavy system load as defined above
3. watch XMMS crash and dmesg report a kernel stack trace

Actual Results:  
Unable to handle kernel NULL pointer dereference at virtual address 00000050
 printing eip:
c2a4035a
*pde = 00000000
Oops: 0000 2.4.22-aa1 #1 Tue Nov 11 00:10:44 EST 2003
CPU:    0
EIP:    0010:[<c2a4035a>]    Not tainted
EFLAGS: 00010046
eax: 00000000   ebx: 00000000   ecx: 00000000   edx: 00078280
esi: 00000000   edi: c25b3c0c   ebp: c29df400   esp: c43f5edc
ds: 0018   es: 0018   ss: 0018
Process xmms (pid: 1763, stackpage=c43f5000)
Stack: c25b3cec 00000000 c2a40928 c25b3c0c c29df400 00000000 c0105b78 c4728000 
       c26592c0 c29df400 00000000 c26592c0 c2a40b4c c25b3c0c c29df400 c2a52c63 
       c26592c0 00000001 c43f4000 c26592c0 c26592c0 423fe964 c2a55dd0 c2a5559a 
Call Trace:    [<c2a40928>] [<c0105b78>] [<c2a40b4c>] [<c2a52c63>] [<c2a55dd0>]
  [<c2a5559a>] [<c2a557a6>] [<c011d5b0>] [<c2a55dd0>] [<c014a4ac>] [<c0107287>]
Modules: [(snd-usb-audio:<c2a40060>:<c2a4a560>)] [(snd-pcm:<c2a50060>:<c2a5ef00>)]
Code: 8b 46 50 8b 50 0c 89 56 40 8b 40 04 39 d1 8b 40 04 89 46 10 

Expected Results:  
Not crashed the kernel, kepy playing audio under heavy system load.

all packages unmasked default ebuilds from portage
XMMS
XMMS ALSA driver
ALSA

bash-2.05b# emerge --info
Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.22-aa1)
=================================================================
System uname: 2.4.22-aa1 i686 AMD Athlon(tm) XP 2200+
Gentoo Base System version 1.4.3.10
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=athlon-xp -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share
/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="sandbox ccache autoaddcvs"
GENTOO_MIRRORS="ftp://ibiblio.org/pub/Linux/distributions/gentoo/ http://gentoo.
noved.org/ http://mirrors.tds.net/gentoo http://www.gtlib.cc.gatech.edu/pub/gent
oo ftp://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="x86 oss apm avi crypt cups encode foomaticdb gif jpeg libg++ libwww mad mik
mod ncurses nls pdflib png spell truetype xml2 xmms xv zlib gdbm berkdb slang re
adline svga tcltk java sdl gpm tcpd pam ssl perl python imlib oggvorbis motif op
engl mozilla cdr X gtk -gnome qt kde -arts -esd alsa jack mpeg quicktime dvd mys
ql lirc aalib"
Comment 1 Brian Jackson (RETIRED) gentoo-dev 2003-11-16 16:55:24 UTC
can you run that through ksymoops, and also try to reproduce with a vanilla kernel
Comment 2 Lee Azzarello 2003-11-16 18:39:31 UTC
As requested. I noticed that the mii module, whcih is used by via-rhine (my ethernet card) did something right before the crash, but the output of /proc/pci says it's on a sepperate IRQ.:

>>EIP; c2a4035a <[snd-usb-audio]prepare_playback_sync_urb+a/40>   <=====

>>edi; c25b3c0c <[mii].text.end+5503f6/5a084a>
>>ebp; c29df400 <[snd-seq].data.end+11677d/1573dd>
>>esp; c43f5edc <[snd]snd_sndstat_proc_entry+197e49c/18920620>

Trace; c2a40928 <[snd-usb-audio]start_urbs+68/170>
Trace; c0105b78 <__switch_to+f8/100>
Trace; c2a40b4c <[snd-usb-audio]snd_usb_pcm_trigger+3c/60>
Trace; c2a52c63 <[snd-pcm]snd_pcm_start+e3/140>
Trace; c2a55dd0 <[snd-pcm]snd_pcm_playback_ioctl+0/40>
Trace; c2a5559a <[snd-pcm]snd_pcm_common_ioctl1+16a/320>
Trace; c2a557a6 <[snd-pcm]snd_pcm_playback_ioctl1+56/350>
Trace; c011d5b0 <process_timeout+0/10>
Trace; c2a55dd0 <[snd-pcm]snd_pcm_playback_ioctl+0/40>
Trace; c014a4ac <sys_ioctl+bc/25d>
Trace; c0107287 <system_call+33/38>

Code;  c2a4035a <[snd-usb-audio]prepare_playback_sync_urb+a/40>
00000000 <_EIP>:
Code;  c2a4035a <[snd-usb-audio]prepare_playback_sync_urb+a/40>   <=====
   0:   8b 46 50                  mov    0x50(%esi),%eax   <=====
Code;  c2a4035d <[snd-usb-audio]prepare_playback_sync_urb+d/40>
   3:   8b 50 0c                  mov    0xc(%eax),%edx
Code;  c2a40360 <[snd-usb-audio]prepare_playback_sync_urb+10/40>
   6:   89 56 40                  mov    %edx,0x40(%esi)
Code;  c2a40363 <[snd-usb-audio]prepare_playback_sync_urb+13/40>
   9:   8b 40 04                  mov    0x4(%eax),%eax
Code;  c2a40366 <[snd-usb-audio]prepare_playback_sync_urb+16/40>
   c:   39 d1                     cmp    %edx,%ecx
Code;  c2a40368 <[snd-usb-audio]prepare_playback_sync_urb+18/40>
   e:   8b 40 04                  mov    0x4(%eax),%eax
Code;  c2a4036b <[snd-usb-audio]prepare_playback_sync_urb+1b/40>
  11:   89 46 10                  mov    %eax,0x10(%esi)
Comment 3 Lee Azzarello 2003-11-18 18:42:38 UTC
Again, as promised I built a vanilla kernel from my aa-sources .config with 'make oldconfig' and I cannot reproduce the crash. Playing USB audio while riping a CD, compiling an ebuild and playing television at the same time didn't crash it. Looks like it's either aa-sources or my hardware, which is a cheap VIA motherboard. I don't have any other OS on this hardware so I can't really compare, nor would I know what to look for.

-lee
Comment 4 Lee Azzarello 2003-11-18 21:17:47 UTC
Well, here I go talking to myself again but...

The crash went away when I pluged in the AC adaptor for the USB device. Looks like
the culprit is cheap hardware. I changed the resolution to UPSTREAM because while not exactly a bug in the programmer's hands, I would hope there is a better way to handle this in software besides crashing the kernel. I know there are others out
there like me that have a cheap motherboard and may not realize that plugging the device into the wall fixes some USB problems. I'm forwarding this URL to the ALSA-dev list.

Oh my god Gentoo rocks.