On Thu, Nov 29, 2007 at 12:16:36PM -0800, Michael Rubin wrote: > Due to my faux pas of top posting (see > http://www.zip.com.au/~akpm/linux/patches/stuff/top-posting.txt) I am > resending this email. > > On Nov 28, 2007 4:34 PM, Fengguang Wu <[EMAIL PROTECTED]> wrote: > > Could you demonstrate the situation? Or if I guess it right, could it > > be fixed by the following patch? (not a nack: If so, your patch could > > also be considered as a general purpose improvement, instead of a bug > > fix.) > > > > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c > > index 0fca820..62e62e2 100644 > > --- a/fs/fs-writeback.c > > +++ b/fs/fs-writeback.c > > @@ -301,7 +301,7 @@ __sync_single_inode(struct inode *inode, struct > > writeback_control *wbc) > > * Someone redirtied the inode while were writing > > back > > * the pages. > > */ > > - redirty_tail(inode); > > + requeue_io(inode); > > } else if (atomic_read(&inode->i_count)) { > > /* > > * The inode is clean, inuse > > > > By testing the situation I can confirm that the one line patch above > fixes the problem. > > I will continue testing some other cases to see if it cause any other > issues but I don't expect it to.
One major concern could be whether a continuous writer dirting pages at the 'right' pace will generate a steady flow of write I/Os which are _tiny_hence_inefficient_. I have gathered some timing info about writeback speed in http://lkml.org/lkml/2007/10/4/468. For ext3, it takes wb_kupdate() ~15ms to submit 4MB. Whereas one disk I/O typically takes ~5ms. So if there are too many tiny write I/Os, they will simply get delayed and merged into bigger ones. So it's not a problem in *theory* :-) > I will post this change for 2.6.24 and list Feng as author. If that's > ok with Feng. Thank you. > As for the original patch I will resubmit it for 2.6.25 as a general > purpose improvement. There are some discussions and patches on inode number based writeback clustering which you may want to reference/compare with: http://lkml.org/lkml/2007/8/21/396 http://lkml.org/lkml/2007/8/27/45 Cheers, Fengguang - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/