Re: [linux-usb-devel] USB snd-usb-audio wedges lsusb when unplugged while playing sound.

From: Christopher Montgomery
Date: Sat Jul 22 2006 - 12:47:49 EST


On 7/22/06, Ian Stirling <tandra@xxxxxxxxxxxxxx> wrote:
Config/... as my earlier message on USB - though with the bandwidth
enforcement
turned off so it actually plays sound, when plugged into the USB1 port.

2.6.17.

Basically - playing sound with
mplayer -ao alsa:device=hw=1 or whatever - and then unplugging the
soundcard completely wedges lsusb/usb configuration, until the mplayer
process is killed.

This sounds like the well known EPIPE problem in usb-audio and one I
intended to fix after dealing with the ehci scheduler.

It boils down to this: although the low-level usb code is properly
reporting and distinguishing error conditions, usb-audio translates
just about everything that goes wrong into 'EPIPE'. Because an
application has no way to distinguish temporary from permanent errors
(and the coding docs specify that the app resubmit), it immediately
retries and gets another EPIPE. This infinite retry loop places
enough system load on the machine that it may well even stop pinging.
Although the *machine* is not wedged, if this happens in a realtime
thread (eg, jack using a usb-audio device), it may well be hosed
enough to become unrecoverable.

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