Date: Thu, 3 Jul 2003 10:32:33 +0930 (CST) From: "Daniel O'Connor" <doconnor@gsoft.com.au> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/54049: Sound driver reports device busy and shows non-existant PID in sndstat with artsd Message-ID: <200307030102.h6312XBr004640@chowder.gsoft.com.au> Resent-Message-ID: <200307030110.h631AHNR015807@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 54049
>Category: kern
>Synopsis: Sound driver reports device busy and shows non-existant PID in sndstat with artsd
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jul 02 18:10:17 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Daniel O'Connor
>Release: FreeBSD 4.8-STABLE i386
>Organization:
>Environment:
System: FreeBSD chowder.gsoft.com.au 4.8-STABLE FreeBSD 4.8-STABLE #7: Wed Jun 25 20:29:38 CST 2003 darius@chowder.dons.net.au:/usr/src/sys/compile/CHOWDER i386
pcm0: <ESS Technology Maestro3> at io 0xdc00 irq 5 (4p/1r/0v channels duplex)
pcm0: <ESS Technology Maestro3> port 0xdc00-0xdcff mem 0xf6ffe000-0xf6ffffff irq 5 at device 3.0 on pci2
pcm0: <SigmaTel STAC9721/9723 ac97 codec>
>Description:
When restarting artsd to apply new changes, the sound driver appears to get confused and
reports a PID using the sound devices when that PID does not exist. Attempts to open the
sound devices result in EBUSY.
>How-To-Repeat:
- Install KDE :)
- Login, run artsd.
- /dev/sndstat shows arts using the device as expected.
- Play music.
- Run the 'Sound System' control centre item
- Toggle an option so that it will let you apply changes. Hit apply.
- Repeatedly cat /dev/sndstat and watch a new PID appear and use the device.
- Listen to the sound judder, then stop.
- Two dialogs pop up saying artsd cannot use the sound device as it's busy.
- cat /dev/sndstat again and note the PID is the same as previous.
- Run ps - the PID using the sound driver doesn't exist.
chowder 10:12] ~ >sysctl hw.snd
hw.snd.targetirqrate: 32
hw.snd.report_soft_formats: 1
hw.snd.verbose: 2
hw.snd.maxautovchans: 0
hw.snd.pcm0.buffersize: 4096
hw.snd.pcm0.vchans: 0
hw.snd.pcm0.hwvol_step: 5
hw.snd.pcm0.hwvol_mixer: vol
[chowder 10:13] ~ >cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <ESS Technology Maestro3> at io 0xdc00 irq 5 (4p/1r/0v channels duplex)
[pcm0:play:0]: spd 44100, fmt 0x10000010, flags 00007030, pid 4404
interrupts 2217, underruns 0, ready 57344
{userland} -> feeder_root(0x10000010) -> {hardware}
[pcm0:play:1]: spd 0, fmt 0x00000000/0x00000008, flags 00000000
interrupts 0, underruns 0, ready 0
{userland} -> feeder_root(0x00000000) -> {hardware}
[pcm0:play:2]: spd 0, fmt 0x00000000/0x00000008, flags 00000000
interrupts 0, underruns 0, ready 0
{userland} -> feeder_root(0x00000000) -> {hardware}
[pcm0:play:3]: spd 0, fmt 0x00000000/0x00000008, flags 00000000
interrupts 0, underruns 0, ready 0
{userland} -> feeder_root(0x00000000) -> {hardware}
[pcm0:record:0]: spd 44100, fmt 0x10000010, flags 00007030, pid 4404
interrupts 2217, overruns 0, hfree 4096, sfree 57344
{hardware} -> feeder_root(0x10000010) -> {userland}
[chowder 10:13] ~ >ps -lawwwp 4404
UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
1007 4404 416 0 2 0 8048 6140 poll S ?? 0:01.15 artsd -F 14 -S 4096 -d -n -s 5 -m artsmessage -l 3 -f
[ restart artsd ]
[chowder 10:14] ~ >cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <ESS Technology Maestro3> at io 0xdc00 irq 5 (4p/1r/0v channels duplex)
[pcm0:play:0]: spd 44100, fmt 0x10000010, flags 00000000
interrupts 0, underruns 0, ready 0
{userland} -> feeder_root(0x10000010) -> {hardware}
[pcm0:play:1]: spd 44100, fmt 0x10000010, flags 00007030, pid 4424
interrupts 15, underruns 0, ready 224
{userland} -> feeder_root(0x10000010) -> {hardware}
[pcm0:play:2]: spd 0, fmt 0x00000000/0x00000008, flags 00000000
interrupts 0, underruns 0, ready 0
{userland} -> feeder_root(0x00000000) -> {hardware}
[pcm0:play:3]: spd 0, fmt 0x00000000/0x00000008, flags 00000000
interrupts 0, underruns 0, ready 0
{userland} -> feeder_root(0x00000000) -> {hardware}
[pcm0:record:0]: spd 44100, fmt 0x10000010, flags 00007020, pid 4424
interrupts 15, overruns 0, hfree 4096, sfree 5312
{hardware} -> feeder_root(0x10000010) -> {userland}
[chowder 10:16] ~ >ps -lawwwp 4424
UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
[chowder 10:17] ~ >ps -axw| grep art
399 ?? I 0:00.01 /bin/sh /usr/local/bin/startkde
4427 ?? S 0:09.70 artsd -F 14 -S 4096 -d -n -s 5 -m artsmessage -l 3 -f
[ Here is is running with the null driver ]
[chowder 10:16] ~ >fstat /dev/dsp0
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W NAME
>Fix:
The vchans remain unbusy, so I can use those as a work around, or reboot.
(Although the record channel remains glued busy)
>Release-Note:
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307030102.h6312XBr004640>
