[CM] Re: Re: DAC Size (Snd-8.5)
Kjetil S. Matheussen
k.s.matheussen@notam02.no
Wed, 15 Nov 2006 07:12:04 +0100 (CET)
Esben Stien:
>
> "Kjetil S. Matheussen" <k.s.matheussen@notam02.no> writes:
>
>> Did you by any chance upgrade snd the last two weeks?
>
> No, that's the strange part.
>
>> can you try an earlier version?
>
> I even went back to Snd-8.1, but still the same. It's so weird, cause
> all my other JACK applications runs fine and I run almost the whole
> list;). The even weirder part is the Snd-8.1 used to work fine, but
> now, whenever I try to play anything in Snd, it freezes the whole
> system up while playing and the sound filled with dropouts.
>
>> I did a very small change in the jack code for about two weeks ago
>
> It can't be that;).
>
>> ask on the linux-audio-user list.
>
> The message indicates that Snd is asking for a priority higher than
> what I'm allowed to set it to, according to Paul Davis. He also
If you are using pam, rtprio should be 100 in /etc/security/limits.conf
I don't know whats the point of setting it lower which I have seen at
least one distribution do.
> wonders why Snd is running its own watchdog.
>
When playing, the jack code sets snd to run with realtime priority.
Its an imorral thing to do, but it sometimes does a wonderful job of
avoiding dropouts.
> I've seen this message before, I believe, and I don't really think
> it's related, but what realtime priority is Snd asking for?.
Reading the code, I think Snd runs at 1 and the watchdog at 99. (That
should probably be changed, I guess, the watcdog only needs to run at 2)
Now I also see that snd will not run realtime unless the watchdog is
running, so thats probably your problem.
So as a quick fix, apply the following patch:
--- audio_old.c 2006-11-15 07:09:00.000000000 +0100
+++ audio.c 2006-11-15 07:09:32.000000000 +0100
@@ -8512,7 +8512,7 @@
static void *jack_mus_audio_watchdog(void *arg){
struct sched_param par;
- par.sched_priority = sched_get_priority_max(SCHED_RR);
+ par.sched_priority = sched_get_priority_min(SCHED_RR)+2;
if(sched_setscheduler(0,SCHED_RR,&par)==-1){
fprintf(stderr,"SNDLIB: Unable to set SCHED_RR realtime priority for the watchdog thread. No watchdog.\n");
goto exit;
(You should fix your pam settings as well though...)
>
> I've now tested with ALSA, but I don't think I've ever run Snd with
> ALSA. It gives me:
>
> Illegal argument: default: cannot set buffer size to 3 periods of 1
> frames; total requested buffer size is 3 frames, minimum allowed is 7,
> maximum is -2095944041
>
> I have RME Multiface II.
>
> This is an unrelated problem, however.
>
> Only thing I can think of now, that I've upgraded, is the kernel, but
> I doubt it. I'm running 2.6.18-rt1
>
Well, its likely that you get the dropouts because you don't run realtime
anymore, and that could be because of something with the new kernel.