On Wed 16-02-11 06:52:55, Tetsuo Handa wrote: > Jan Kara wrote: > > Ext3 looks innocent here. That is a standard call path for open(.., > > O_TRUNC). But apparently something broke in SLUB allocator. Adding proper > > list to CC... > > Thanks. > > Both fs/jbd/transaction.c and fs/jbd2/transaction.c provide start_this_handle() > and I don't know which one was called. > > But > > if (!journal->j_running_transaction) { > new_transaction = kzalloc(sizeof(*new_transaction), > GFP_NOFS|__GFP_NOFAIL); > if (!new_transaction) { > ret = -ENOMEM; > goto out; > } > } > > does kzalloc(GFP_NOFS|__GFP_NOFAIL) causes /proc/$PID/status to show > > State: D (disk sleep) It could. State D does not mean "disk sleep" but "uninterruptible sleep". Lots of sleeps in kernel are in D state - for example waiting for all mutex locks, waiting for IO, etc. But looking at the trace again, you're probably right that we are actually waiting somewhere in start_this_handle() (in fs/jbd/transaction.c) and __slab_alloc() is just some relict on stack. You can verify this by looking at disassembly of start_this_handle() in your kernel and finding out where offset 0x22d is in the function... But in this case - does the process (sh) eventually resume or is it stuck forever? Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html