From: Daniel Phillips <phillips@bonn-fries.net>
To: Chris Mason <mason@suse.com>, linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, torvalds@transmeta.com
Subject: Re: [RFC] using writepage to start io
Date: Wed, 1 Aug 2001 16:57:35 +0200 [thread overview]
Message-ID: <01080116573506.00303@starship> (raw)
In-Reply-To: <233400000.996606471@tiny>
On Tuesday 31 July 2001 21:07, Chris Mason wrote:
> This has been tested a little more now, both ext2 (1k, 4k) and
> reiserfs. dbench and iozone testing don't show any difference, but I
> need to spend a little more time on the benchmarks.
It's impressive that such seemingly radical surgery on the vm innards
is a) possible and b) doesn't make the system perform noticably worse.
> The idea is that using flush_dirty_buffers to start i/o under memory
> pressure is less than optimal. flush_dirty_buffers knows the oldest
> dirty buffer, but has no page aging info, so it might not flush a
> page that we actually want to free.
Note that the fact that buffers dirtied by ->writepage are ordered by
time-dirtied means that the dirty_buffers list really does have
indirect knowledge of page aging. There may well be benefits to your
approach but I doubt this is one of them.
It's surprising that 1K buffer size isn't bothered by being grouped by
page in their IO requests. I'd have thought that this would cause a
significant number of writes to be blocked waiting on the page lock
held by an unrelated buffer writeout.
The most interesting part of your patch to me is the anon_space_mapping.
It's nice to make buffer handling look more like page cache handling,
and get rid of some special cases in the vm scanning. On the other
hand, buffers are different from pages in that, once buffers heads are
removed, nobody can find them any more, so they can not be rescued.
Now, if I'm reading this correctly, buffer pages *will* progress on to
the inactive_clean list from the inactive_dirty list instead of jumping
that queue and being directly freed by the page_cache_release. Maybe
this is good because it avoids the expensive-looking __free_pages_ok.
This looks scary:
+ index = atomic_read(&buffermem_pages) ;
Because buffermem_pages isn't unique. This must mean you're never
doing page cache lookups for anon_space_mapping, because the
mapping+index key isn't unique. There is a danger here of overloading
some hash buckets, which becomes a certainty if you use 0 or some other
constant for the index. If you're never doing page cache lookups, why
even enter it into the page hash?
That's all for now. It's a very interesting patch.
--
Daniel
--
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/
next prev parent reply other threads:[~2001-08-01 14:57 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <76740000.996336108@tiny>
2001-07-31 19:07 ` Chris Mason
2001-08-01 1:01 ` Daniel Phillips
2001-08-01 2:05 ` Chris Mason
2001-08-01 14:57 ` Daniel Phillips [this message]
2001-08-05 18:34 Chris Mason
2001-08-05 22:38 ` Daniel Phillips
2001-08-05 23:32 ` Chris Mason
2001-08-06 5:39 ` Daniel Phillips
2001-08-06 13:24 ` Chris Mason
2001-08-06 16:13 ` Daniel Phillips
2001-08-06 16:51 ` Chris Mason
2001-08-06 19:45 ` Daniel Phillips
2001-08-06 20:12 ` Chris Mason
2001-08-06 21:18 ` Daniel Phillips
2001-08-07 11:02 ` Stephen C. Tweedie
2001-08-07 11:39 ` Ed Tomlinson
2001-08-07 12:07 ` Anton Altaparmakov
2001-08-07 18:36 ` Daniel Phillips
2001-08-07 12:02 ` Anton Altaparmakov
2001-08-07 13:29 ` Daniel Phillips
2001-08-07 13:31 ` Alexander Viro
2001-08-07 15:52 ` Daniel Phillips
2001-08-07 14:23 ` Stephen C. Tweedie
2001-08-07 15:51 ` Daniel Phillips
2001-08-08 14:49 ` Stephen C. Tweedie
2001-08-06 15:13 ` Eric W. Biederman
2001-08-07 15:19 Chris Mason
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=01080116573506.00303@starship \
--to=phillips@bonn-fries.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mason@suse.com \
--cc=torvalds@transmeta.com \
/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