From: Theodore Tso <tytso@mit.edu>
To: Steven Whitehouse <steve@chygwyn.com>
Cc: Christoph Hellwig <hch@infradead.org>,
npiggin@suse.de, Andrew Morton <akpm@linux-foundation.org>,
Mikulas Patocka <mpatocka@redhat.com>,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
linux-ext4@vger.kernel.org
Subject: Re: [patch 4/8] mm: write_cache_pages type overflow fix
Date: Fri, 10 Oct 2008 10:05:35 -0400 [thread overview]
Message-ID: <20081010140535.GD16353@mit.edu> (raw)
In-Reply-To: <1223646482.25004.13.camel@quoit>
On Fri, Oct 10, 2008 at 02:48:02PM +0100, Steven Whitehouse wrote:
> I've not looked at ext4's copy of write_cache_pages, but there is also a
> copy in GFS2. Its used only for journaled data, and it is pretty much a
> direct copy of write_cache_pages except that its split into two so that
> a transaction can be opened in the "middle".
>
> Perhaps it would be possible to make some changes so that we can both
> share the "core" version of write_cache_pages. My plan was to wait until
> Nick's patches have made it to Linus, and then to look into what might
> be done,
To be clear; ext4 doesn't have its own copy of write_cache_pages (at
least not yet); there is a patch that creates our own copy, mainly to
disable updates to writeback_index, range_start, and nr_to_write in
the wbc structure.
Christoph has suggested a patch which modifies write_cache_pages() so
that a filesystem could set a flag which disables those updates,
instead of just making a copy of write_cache_pages. (Maybe eventually
we would get rid of those updates unconditionally; it's not clear to
me though that this makes sense for all filesystems.)
So we have three choices as far as getting the 10x for (large)
streaming write performance into 2.6.28:
1) Aneesh's first patch, which called write_cache_pages()
and then undid the effects of the updates to the relevant wbc fields.
(http://lkml.org/lkml/2008/10/6/61)
2) Aneesh's second version of the patch, which copied
write_cache_pages() into ext4_write_cache_pages() and then removed the
updates; resulting in a large patch, but one that might be easier to
understand, although harder to maintain in the long term.
(http://lkml.org/lkml/2008/10/7/52)
3) A version which (optionally via a flag in the wbc structure)
instructs write_cache_pages() to not pursue those updates. This has
not been written yet.
For why we need to do this, see Aneesh's explanation here:
http://lkml.org/lkml/2008/10/7/78
If we don't think the Nick's patches are going to be stable enough for
merging in time for 2.6.28, it's possible we could pursue (1) or (2),
and if there's -mm concurrence, even (3). (1) might be the best if
the goal is to wait for Nick's patches to hit mainline first, and then
we can try to sort and merge our per-filesystems unique hacks (or
copies of write_cache_pages or whatever) back to the upstream version.
All of this being said, I'll confess that I have *not* had time to
look deeply at Nick's full patchset yet. Which has been another
reason why I haven't queued up any of Aneesh's patches in this area
yet; all of this hit just right before the merge window opened up, and
I've been insanely busy as of late.
- Ted
--
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:[~2008-10-10 14:05 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-09 15:50 [patch 0/8] write_cache_pages fixes npiggin
2008-10-09 15:50 ` [patch 1/8] mm: write_cache_pages cyclic fix npiggin
2008-10-09 15:50 ` [patch 2/8] mm: write_cache_pages AOP_WRITEPAGE_ACTIVATE fix npiggin
2008-10-10 16:00 ` Miklos Szeredi
2008-10-10 18:29 ` Hugh Dickins
2008-10-11 4:05 ` Nick Piggin
2008-10-09 15:50 ` [patch 3/8] mm: write_cache_pages writepage error fix npiggin
2008-10-09 15:50 ` [patch 4/8] mm: write_cache_pages type overflow fix npiggin
2008-10-09 8:23 ` Christoph Hellwig
2008-10-09 8:33 ` Nick Piggin
2008-10-10 13:10 ` Theodore Tso
2008-10-10 13:13 ` Christoph Hellwig
2008-10-10 13:37 ` Theodore Tso
2008-10-10 13:48 ` Steven Whitehouse
2008-10-10 14:05 ` Theodore Tso [this message]
2008-10-10 14:08 ` Christoph Hellwig
2008-10-10 15:54 ` Aneesh Kumar K.V
2008-10-10 15:59 ` Chris Mason
2008-10-10 16:10 ` Theodore Tso
2008-10-10 16:34 ` Christoph Hellwig
2008-10-10 13:56 ` Chris Mason
2008-10-09 15:50 ` [patch 5/8] mm: write_cache_pages integrity fix npiggin
2008-10-09 12:52 ` Chris Mason
2008-10-09 13:27 ` Nick Piggin
2008-10-09 13:35 ` Chris Mason
2008-10-09 13:55 ` Nick Piggin
2008-10-09 14:12 ` Chris Mason
2008-10-09 14:21 ` Nick Piggin
2008-10-09 14:39 ` Chris Mason
2008-10-09 14:50 ` Nick Piggin
2008-10-09 15:16 ` Chris Mason
2008-10-10 2:40 ` Nick Piggin
2008-10-09 15:50 ` [patch 6/8] mm: write_cache_pages cleanups npiggin
2008-10-09 14:37 ` Artem Bityutskiy
2008-10-09 15:50 ` [patch 7/8] mm: write_cache_pages optimise page cleaning npiggin
2008-10-09 15:50 ` [patch 8/8] mm: write_cache_pages terminate quickly npiggin
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=20081010140535.GD16353@mit.edu \
--to=tytso@mit.edu \
--cc=akpm@linux-foundation.org \
--cc=hch@infradead.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mpatocka@redhat.com \
--cc=npiggin@suse.de \
--cc=steve@chygwyn.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