[Jackit-devel] Re: [linux-audio-dev] 2.4.20 + lowlat +preempt + alsa + jack = dead computer

Fernando Pablo Lopez-Lezcano nando at ccrma.Stanford.EDU
Tue Jan 7 21:14:01 UTC 2003


> >I browsed the Kernel Source and there is only one mark_inode_dirty in
> >pipe_write (in fs/pipe.c). So we know where it is hanging...
> >
> >And in __mark_inode_dirty (in fs/inode.c) there is one  
> >   spin_lock(&inode_lock)
> >call, and I guess that is where the whole thing is hanging. So something
> >is holding that lock... how do I find out who is doing that? Apparently
> >the handling of inode_lock is confined to inode.c. I'll keep reading. 

[Andrew Morton had suggested that the stack traces did not show problems
with stuck locks in the kernel...]

> >Maybe the pipe in question is one of the pipes that jack uses for ipc?
> 
> seems *damn* likely ... sorry to just be chiming in with a useless comment!

One more (small) datapoint. Roger Larsson sent me off the list a couple
of small utilities (VERY nice tools!) that monitors the cpu usage of
SCHED_FIFO processes and after a timeout actually downgrades the
persistent hogs to SCHED_OTHER. 

So I run that in a terminal and after playing around with a bunch of
jack apps got the machine to lockup... and then, after a little bit,
suddenly, it came back to life! (you could see that the monitor had
changed the priority of the hogs to SCHED_OTHER). 

So I guess that somehow jack has a hard to trigger race condition that
locks up the machine when running SCHED_FIFO.

Now I have to figure out how to trace the thing so as to determine where
the whole thing is locking. Help from the jack gurus appreciated. 

-- Fernando





More information about the Linux-audio-dev mailing list