I see the samething with linux-2.5.1-pre1, cvs alsa, alsaout-0.9beta8, 
xmms 1.25 and  via686a driver.  I can provoke xmms into the 100% thing 
by doing make dep on the linux source for example.  Then %System Time 
rises to 30-60% and 1 xmms thread takes up the rest.

Thread is doing

  0x40506812 in snd_pcm_hw_writei (pcm=0x851c618, buffer=0x81b4b28, 
size=576)    at pcm_hw.c:323
#1  0x404fc8f6 in snd_pcm_writei (pcm=0x851c618, buffer=0x81b4b28, 
size=576)    at pcm_local.h:347
#2  0x404c04f4 in alsa_write (data=0x81b4b28, length=2304) at audio.c:253
#3  0x40561948 in mpg123_do_layer3 (fr=0x40574f20) at layer3.c:2086
#4  0x4054e855 in decode_loop (arg=0x40c01418) at mpg123.c:454
#5  0x401a9e95 in pthread_start_thread (arg=0xbf3ffbe0) at manager.c:274

repeatedly.

In audio.c we have

251       while(length > 0)
252         {
253           written_frames = snd_pcm_writei(alsa_pcm, data, length / 
alsa_frame_size);
254           //    printf("Wr: %i, prop: %i, framesize: %i\n", 
written_frames, length/alsa_frame_size, alsa_frame_size);
255           if(written_frames > 0)
256             {
257               written = written_frames * alsa_frame_size;
258               alsa_total_written += written;
259               length -= written;
260               data += written;
261             }
262           else if (written_frames == -EAGAIN || (written_frames > 0 
&& written_frames < (length / alsa_frame_size)))
263             {
264               snd_pcm_wait(alsa_pcm, 1000);
265             }
266         }

snd_pcm_writei is returning -32 repeatedly.  The logic controlling the 
else if looks wrong: (written_frames > 0) will always be false.

Changed to
else if (written_frames == -EAGAIN || (-written_frames < length / 
alsa_frame_size))

This seemed to survive make dep (only tested briefly).


Miha Tomšič wrote:

>       Hello!
> 
> I am using alsaout 0.9beta8 on alsa 0.9beta10/10a. Today I noticed that
> CPU load is pretty high compared to OSS output. There is also no scope or
> analizer output in the xmms window.
> 
> And from time to time the load goes up to 100% and playback just stops and
> xmms is more or less dead but the cpu is mostly over 110%. I have to kill
> it. 
> 
> Anybody else noticed that? Any ideas?
> 
> driver ens1370
> linux 2.4.7+ll (but not enabled today)
> 
>       Miha...
> 
>  - Miha Tomšič --- C. na postajo 55 -- SI-1351 Brezovica pri Lj. --- SLOVENIA -
> 
> 
> _______________________________________________
> Alsa-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/alsa-user
> 
> 
> 




_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to