Re: writeout stalls in current -git

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: David Chinner
Date: Tuesday, November 6, 2007 - 7:13 pm

On Wed, Nov 07, 2007 at 10:31:14AM +1100, David Chinner wrote:

Ok, so it's not synchronous writes that we are doing - we're just
submitting bio's tagged as WRITE_SYNC to get the I/O issued quickly.
The "synchronous" nature appears to be coming from higher level
locking when reclaiming inodes (on the flush lock). It appears that
inode write clustering is failing completely so we are writing the
same block multiple times i.e. once for each inode in the cluster we
have to write.

This must be a side effect of some other change as we haven't
changed anything in the reclaim code recently.....

/me scurries off to run some tests 

Indeed it is. The patch below should fix the problem - the inode
clusters weren't getting set up properly when inodes were being
read in or allocated. This is a regression, introduced by this
mod:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da353b0d64...

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

---
 fs/xfs/xfs_iget.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: 2.6.x-xfs-new/fs/xfs/xfs_iget.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/xfs_iget.c	2007-11-02 13:44:46.000000000 +1100
+++ 2.6.x-xfs-new/fs/xfs/xfs_iget.c	2007-11-07 13:08:42.534440675 +1100
@@ -248,7 +248,7 @@ finish_inode:
 	icl = NULL;
 	if (radix_tree_gang_lookup(&pag->pag_ici_root, (void**)&iq,
 							first_index, 1)) {
-		if ((iq->i_ino & mask) == first_index)
+		if ((XFS_INO_TO_AGINO(mp, iq->i_ino) & mask) == first_index)
 			icl = iq->i_cluster;
 	}
 
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: writeout stalls in current -git, Peter Zijlstra, (Fri Nov 2, 3:15 am)
Re: writeout stalls in current -git, Fengguang Wu, (Fri Nov 2, 3:33 am)
Re: writeout stalls in current -git, Torsten Kaiser, (Fri Nov 2, 12:22 pm)
Re: writeout stalls in current -git, David Chinner, (Fri Nov 2, 1:43 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Fri Nov 2, 2:02 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Sun Nov 4, 4:19 am)
Re: writeout stalls in current -git, David Chinner, (Sun Nov 4, 6:45 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Mon Nov 5, 12:01 am)
Re: writeout stalls in current -git, Torsten Kaiser, (Mon Nov 5, 11:27 am)
Re: writeout stalls in current -git, Andrew Morton, (Mon Nov 5, 4:57 pm)
Re: writeout stalls in current -git, David Chinner, (Mon Nov 5, 9:25 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Tue Nov 6, 12:10 am)
Re: writeout stalls in current -git, Fengguang Wu, (Tue Nov 6, 2:17 am)
Re: writeout stalls in current -git, Peter Zijlstra, (Tue Nov 6, 3:20 am)
Re: writeout stalls in current -git, Peter Zijlstra, (Tue Nov 6, 12:01 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Tue Nov 6, 1:26 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Tue Nov 6, 2:53 pm)
Re: writeout stalls in current -git, David Chinner, (Tue Nov 6, 4:31 pm)
Re: writeout stalls in current -git, David Chinner, (Tue Nov 6, 7:13 pm)
Re: writeout stalls in current -git, Torsten Kaiser, (Wed Nov 7, 12:15 am)
Re: writeout stalls in current -git, David Chinner, (Wed Nov 7, 5:38 pm)
Re: writeout stalls in current -git, Damien Wyart, (Tue Nov 20, 6:16 am)
Re: writeout stalls in current -git, David Chinner, (Tue Nov 20, 2:09 pm)