On Mon, May 31, 2004 at 03:15:05PM -0700, Andrew Morton wrote: > Marcelo Tosatti wrote: > > > > Proc; loop2 > > >>EIP; e5d145c0 <===== > > Trace; c0189ec8 > > Trace; c0189fa2 > > Trace; c0107b92 <__down+82/d0> > > Trace; c0107d2c <__down_failed+8/c> > > Trace; c01845fe <.text.lock.transaction+4/246> > > Trace; c018204a > > Trace; c0182114 > > Trace; c017bc3c > > Trace; c01795ec > > Trace; c013349e > > Trace; c01d6f84 > > Trace; c01d7408 > > Trace; c01d7b84 > > Trace; c0109172 > > Trace; c01d7960 > > Trace; c010740e > > Trace; c01d7960 > > You've run out of memory and the loop thread is looping in > journal_alloc_journal_head(), waiting for memory to come free. > > Meanwhile, kswapd and bdflush are blocked waiting for I/O which requires > loop thread services to complete. Deadlock. > > A proper fix for this might be fairly complex. A kludgey fix like the > below might work though. Andrew, Attached is output of task backtraces, decoded by ksymoops, if you care. We are in the process of moving this box to v2.6.