Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Feb 2003 19:51:17 +0100 (CET)
From:      Jean-Yves Lefort <jylefort@brutele.be>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/48338: pcm audio driver hogs /dev/dsp?.?
Message-ID:  <20030216185117.47EE922E35@jsite.lefort.net>

next in thread | raw e-mail | index | archive | help

>Number:         48338
>Category:       kern
>Synopsis:       pcm audio driver hogs /dev/dsp?.?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 16 11:00:03 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Jean-Yves Lefort
>Release:        FreeBSD 4.7-RELEASE-p3 i386
>Organization:
>Environment:
The problem has been experienced on:

$ uname -a
FreeBSD jsite.lefort.net 4.7-RELEASE-p3 FreeBSD 4.7-RELEASE-p3 #0: Tue Jan  7 23:46:56 CET 2003     jylefort@jsite.lefort.net:/usr/obj/usr/src/sys/JSITE  i386
$ cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <AudioPCI ES1373-8> at io 0x9000 irq 11 (1p/1r/4v channels duplex)
$

and:

$ uname -a
FreeBSD noname 5.0-CURRENT FreeBSD 5.0-CURRENT #1: Sat Feb  1 00:57:38 EST 2003 refugee@noname:/usr/obj/usr/src/sys/NONAME  i386
$ cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <CMedia CMI8738> at io 0xd800 irq 10 (1p/1r/0v channels duplex default)
$

>Description:
Under certain conditions, the pcm audio device driver hogs /dev/dsp?.?
("Device Busy").

It seems that the problem happens when a process tries to open a dsp
device shortly after the same device has been opened by another
process.

This might be related to the vchan code, as the hw.snd.pcm0.vchans
sysctl knob was set to 4 during my tests.

"fstat | grep dsp" gives nothing.

	
>How-To-Repeat:
$ while :; do play somesoundfile & done

This will quickly lock /dev/dsp0.0. Of course, be prepared to hit ^C,
since the & is not a typo. :)
	
>Fix:
If multiple virtual channels are in use when the problem first
appears, setting sysctl hw.snd.pcm0.vchans to locked_dsp_# - 1 and
then back to the original number unlocks the dsp device.

However, after locking the dsp device a second time, reducing
hw.snd.pcm0.vchans gives "Invalid argument" and the device is locked
for good: then, only a reboot helps.
	
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030216185117.47EE922E35>