Messages in this thread | | | Date | Sat, 22 Jul 2006 12:49:22 -0400 | From | "Christopher Montgomery" <> | Subject | Re: [linux-usb-devel] USB snd-usb-audio wedges lsusb when unplugged while playing sound. |
| |
On 7/22/06, Ian Stirling <tandra@mauve.plus.com> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |