Re: [2.6.32 ubuntu] I/O hang at start_this_handle

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]