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

Fernando Pablo Lopez-Lezcano nando at ccrma.Stanford.EDU
Fri Jan 3 18:14:00 UTC 2003


[brief description of problem: jack + several other jack clients + disk
activity - a tar process, for example - hangs the machine]

> This is what I'm currently testing:
> 
>   2.4.20 + capabilities + preempt + lowlat +
>   [from Con Koliva's page]
>   Read latency2 disk hack (Andrew Morton) + ACPI + variable HZ (1000) +
>   [from an older jl patch]
>   drm low latency +
>   [from ext3 page]
>   ext3 patches for 2.4.20
> 
> I built the icebox kernel debugger to try to get some info on where the
> program is hanging and this is what I get in terms of what's happening
> (four instances of breaking into the debugger with the Sysrq-d key),
> this is the list of tasks:
> 
> 4) [other 3 erased for brevity]
> schedule +1ab
> sleep_on +45
> bread +20
> __mark_inode_dirty +d9
> pipe_write +1b9
> poll_freewait +44
> sys_write +9f
> system_call +33
> 
> So the system seems to be stuck in __mark_inode_dirty

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. 

Maybe the pipe in question is one of the pipes that jack uses for ipc?
-- Fernando





More information about the Linux-audio-dev mailing list