Re: write(2) lc_r problem

From: Don Lewis <truckman_at_FreeBSD.org>
Date: Sat, 24 Jan 2004 13:18:04 -0800 (PST)
On 24 Jan, Stefan Ehmann wrote:
> On Sat, 2004-01-24 at 21:03, Mathew Kanner wrote:
>> On Jan 24, Stefan Ehmann wrote:
>> > On Sat, 2004-01-24 at 20:15, Mathew Kanner wrote:
>> > > On Jan 24, Stefan Ehmann wrote:
>> > > > I'm trying to write a small sound application and run across a problem
>> > > > on CURRENT.
>> > > > 
>> > > > It's very basic at the moment. It simply reads pcm data from a file and
>> > > > uses write(2) on /dev/dsp.
>> > > > 
>> > > > But as soon as I link the program with -lc_r there's always about 1
>> > > > second delay before a write call - which makes it pretty unusable for
>> > > > playing sound.
>> > > > 
>> > > > It should be easy reproducable if you link audio/waveplay with -lc_r.
>> > > > 
>> > > > This doesn't happen in either FreeBSD 4.9, Knoppix or CURRENT if linked
>> > > > with -lkse or -lthr.
>> > > > 
>> > > > Am I'm missing something basic when using write together with lc_r or
>> > > > ist this a bug in CURRENT?
>> > > 
>> > > 	There is definetly a bug with the sound code when using vchans
>> > > and select.  Make sure that  (using sysctl)
>> > > 
>> > > 	hw.snd.maxautovchans=0
>> > > 	hw.snd.pcmX.vchans=0
>> > 
>> > You're right, that fixed it. That's also the reason why it worked on
>> > stable (vchans was disabled there).
>> 
>> 	Please try this untested patch with vchans enabled.
>> 
> 
> Great, now it also works with vchans enabled.
> 
> I'm also testing a pcm patch by truckman_at_ at the moment. Unfortunately
> those two combined don't run nicely.
> 
> Panicstring: mutex pcm0:virtual:0 not owned at /usr/src/sys/dev/sound/pcm/channel.c:90

Uncomment the CHN_LOCKASSERT(c) in chn_wakeup, and bracket the
chn_wakeup() call in the SLIST_FOREACH() loop with
	CHN_LOCK(pce->channel);
	CHN_UNLOCK(pce->channel);
Received on Sat Jan 24 2004 - 12:19:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:39 UTC