From: Andrew Morton <akpm@linux-foundation.org>
To: Fengguang Wu <fengguang.wu@gmail.com>
Cc: Ken Chen <kenchen@google.com>, linux-mm@kvack.org
Subject: Re: [patch] fix periodic superblock dirty inode flushing
Date: Wed, 18 Jul 2007 20:10:18 -0700 [thread overview]
Message-ID: <20070718201018.9beb0f90.akpm@linux-foundation.org> (raw)
In-Reply-To: <384813965.25550@ustc.edu.cn>
On Thu, 19 Jul 2007 10:59:27 +0800 Fengguang Wu <fengguang.wu@gmail.com> wrote:
> On Mon, Jul 16, 2007 at 05:01:31PM -0700, Ken Chen wrote:
> > On 7/13/07, Ken Chen <kenchen@google.com> wrote:
> > >On 7/12/07, Andrew Morton <akpm@linux-foundation.org> wrote:
> > >> Was this tested in combination with check_dirty_inode_list.patch,
> > >> to make sure that the time-orderedness is being retained?
> > >
> > >I think I tested with the debug patch. And just to be sure, I ran the
> > >test again with the time-order check in place. It passed the test.
> >
> > I ran some more tests over the weekend with the debug turned on. There
> > are a few fall out that the order-ness of sb-s_dirty is corrupted. We
> > probably should drop this patch until I figure out a real solution to
> > this.
> >
> > One idea is to use rb-tree for sorting and use a in-tree dummy node as
> > a tree iterator. Do you think that will work better? I will hack on
> > that.
>
> Sorry if I'm not backgrounded.
>
> But what's the problem of a list? If we always do the two actions
> *together*:
> 1) update inode->dirtied_when
> 2) requeue inode in the correct place
> the list will be in order.
> linux-2.6.22-rc6-mm1/fs/fs-writeback.c obviously obeys this rule.
>
> I don't see how can a new data structure make life easier.
> 1) and 2) should still be safeguarded, isn't it?
Well yes, the existing implementation does its best to work, and almost
does work correctly but it was really hard to do and it is hard to maintain.
Whereas if we had a better data structure it would be cleaner and easier to
implement and to maintain, I expect.
With an indexed data structure (ie: radix-tree or rbtree) the writeback
code can remember where it was up to in the ordered list of inodes so it
can drop locks, do writeback, remember where it was up to for the next
pass, etc.
Basically, the walk of the per-superblock inodes would follow the same
model as the walk of the per-inode pages. And the latter has worked out
*really* well. It would be great if the per-sb inode traversal was as
flexible and as powerful as the page walks.
Probably it never will be, because I suspect we'd need to order the inodes
by multiple indices. I hn't thought it through, really.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-07-19 3:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-12 4:21 Ken Chen
2007-07-12 19:05 ` Andrew Morton
2007-07-13 22:17 ` Ken Chen
2007-07-17 0:01 ` Ken Chen
2007-07-17 0:15 ` Andrew Morton
[not found] ` <20070719025927.GA11874@mail.ustc.edu.cn>
2007-07-19 2:59 ` Fengguang Wu
2007-07-19 3:10 ` Andrew Morton [this message]
[not found] ` <20070719080910.GA7459@mail.ustc.edu.cn>
2007-07-19 8:09 ` Fengguang Wu
2007-07-19 8:18 ` Andrew Morton
2007-07-19 22:18 ` David Chinner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070718201018.9beb0f90.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=fengguang.wu@gmail.com \
--cc=kenchen@google.com \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox