On Tue, Jan 15, 2008 at 09:51:49PM -0800, Andrew Morton wrote: > On Wed, 16 Jan 2008 12:55:07 +0800 Fengguang Wu <[EMAIL PROTECTED]> wrote: > > > On Tue, Jan 15, 2008 at 08:42:36PM -0800, Andrew Morton wrote: > > > On Wed, 16 Jan 2008 12:25:53 +0800 Fengguang Wu <[EMAIL PROTECTED]> wrote: > > > > > > > list_heads are OK if we use them for one and only function. > > > > > > Not really. They're inappropriate when you wish to remember your > > > position in the list while you dropped the lock (as we must do in > > > writeback). > > > > > > A data structure which permits us to interate across the search key rather > > > than across the actual storage locations is more appropriate. > > > > I totally agree with you. What I mean is to first do the split of > > functions - into three: ordering, starvation prevention, and blockade > > waiting. > > Does "ordering" here refer to ordering bt time-of-first-dirty?
Ordering by dirtied_when or i_ino, either is OK. > What is "blockade waiting"? Some inodes/pages cannot be synced now for some reason and should be retried after a while. > > Then to do better ordering by adopting radix tree(or rbtree > > if radix tree is not enough), > > ordering of what? Switch from time to location. > > and lastly get rid of the list_heads to > > avoid locking. Does it sound like a good path? > > I'd have thaought that replacing list_heads with another data structure > would be a simgle commit. That would be easy. s_more_io and s_more_io_wait can all be converted to radix trees. -- 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/