Re: 5.2-RELEASE TODO

From: Peter Schultz <pmes_at_bis.midco.net>
Date: Tue, 16 Dec 2003 11:22:17 -0600
Mathew Kanner wrote:
> On Dec 15, Munish Chopra wrote:
> 
>>On 2003-12-15 09:47 +0000, Peter Schultz wrote:
> 
> 
> ... snip ...
> 
> 
>>>This longstanding problem has now been fixed as far as I'm concerned. 
>>>Xmms hasn't played mp3s without a hicup for me on -CURRENT since at 
>>>least a year, if not two or more.  It's been so long I can't recall.
>>>
>>>I'm testing with a soundblaster live! value card:
>>>pcm0: <Creative EMU10K1> port 0xef20-0xef3f irq 17 at device 17.0 on pci0
>>>pcm0: <SigmaTel STAC9721/23 AC97 Codec>
>>>
>>>I'm running a -CURRENT SMP kernel on a Tyan S1832DL w/dual PII 350s.  I 
>>>only assume it's working with 5.2 RC1.
>>>
>>
>>They haven't been corrected in my case, or the cases of quite a few
>>other folks experiencing them (see some of the other ongoing threads).
>>

I stand corrected.  I thought I was being abusive enough, but if I make 
my SCSI hard disk (I don't think this is limited to ATA disk activity) 
really busy there is still slight glitching.  It appears as though 
sync'ing the disk is what causes the trouble.

>>I'm not personally seeing any LOR's, but audio playback slows down under
>>load, and every few seconds I hear popping noises during audio playback,
>>whether under load or not.
>>
>>I've got a simple SB16:
>>pcm0: <Creative CT5880-C> port 0xd800-0xd83f irq 5 at device 15.0 on
>>pci0
>>pcm0: <TriTech TR28602 AC97 Codec>
> 
> 
> 	Hello Munish,
> 	I would realy like to help you and others.  Please describe in
> detail the circumstances that create the problem.  Are you
> experiencing buffer overruns or underruns?  How many devices are
> sharing the IRQ? What are they?  What happens when you cat a raw file
> to the device?  Does this happen with VCHANs?  Have you tried the patch
> I posted to -current under the heading "sound patch for pop &
> crackles"?

I would like to try your patch, but hunk #3 fails on -CURRENT:
*** 113,122 ****
   chn_wakeup(struct pcm_channel *c)
   {
         struct snd_dbuf *bs = c->bufsoft;

-       CHN_LOCKASSERT(c);
-       if (SEL_WAITING(sndbuf_getsel(bs)) && chn_polltrigger(c))
-               selwakeup(sndbuf_getsel(bs));
         wakeup(bs);
   }

--- 117,133 ----
   chn_wakeup(struct pcm_channel *c)
   {
         struct snd_dbuf *bs = c->bufsoft;
+         struct pcmchan_children *pce;

+ //    CHN_LOCKASSERT(c);
+       if (SLIST_EMPTY(&c->children)) {
+               if (SEL_WAITING(sndbuf_getsel(bs)) && chn_polltrigger(c))
+                       selwakeup(sndbuf_getsel(bs));
+       } else {
+               SLIST_FOREACH(pce, &c->children, link) {
+                       chn_wakeup(pce->channel);
+               }
+       }
         wakeup(bs);
   }

I've applied it by hand for now.

Pete...
Received on Tue Dec 16 2003 - 08:22:21 UTC

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