From: "Stephen C. Tweedie" <sct@redhat.com>
To: Alexander Viro <viro@math.psu.edu>
Cc: Linus Torvalds <torvalds@transmeta.com>,
"Stephen C. Tweedie" <sct@redhat.com>,
Russell Cattelan <cattelan@thebarn.com>,
linux-kernel@vger.kernel.org
Subject: Re: Test12 ll_rw_block error.
Date: Fri, 15 Dec 2000 10:51:48 +0000 [thread overview]
Message-ID: <20001215105148.E11931@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.10.10012142208420.1308-100000@penguin.transmeta.com> <Pine.GSO.4.21.0012150150570.11106-100000@weyl.math.psu.edu>
In-Reply-To: <Pine.GSO.4.21.0012150150570.11106-100000@weyl.math.psu.edu>; from viro@math.psu.edu on Fri, Dec 15, 2000 at 02:00:19AM -0500
Hi,
On Fri, Dec 15, 2000 at 02:00:19AM -0500, Alexander Viro wrote:
> On Thu, 14 Dec 2000, Linus Torvalds wrote:
>
> Just one: any fs that really cares about completion callback is very likely
> to be picky about the requests ordering. So sync_buffers() is very unlikely
> to be useful anyway.
>
> In that sense we really don't have anonymous buffers here. I seriously
> suspect that "unrealistic" assumption is not unrealistic at all. I'm
> not sufficiently familiar with XFS code to say for sure, but...
Right. ext3 and reiserfs just want to submit their own IOs when it
comes to the journal. (At least in ext3, already-journaled buffers
can be written back by the VM freely.) It's a matter of telling the
fs when that should start.
> What we really need is a way for VFS/VM to pass the pressure on filesystem.
> That's it. If fs wants unusual completions for requests - let it have its
> own queueing mechanism and submit these requests when it finds that convenient.
There is a very clean way of doing this with address spaces. It's
something I would like to see done properly for 2.5: eliminate all
knowledge of buffer_heads from the VM layer. It would be pretty
simple to remove page->buffers completely and replace it with a
page->private pointer, owned by whatever address_space controlled the
page. Instead of trying to unmap and flush buffers on the page
directly, these operations would become address_space operations.
We could still provide the standard try_to_free_buffers() and
unmap_underlying_metadata() functions to operate on the per-page
buffer_head lists, and existing filesystems would only have to point
their address_space "private metadata" operations at the generic
functions. However, a filesystem which had additional ordering
constraints could then intercept the flush or writeback calls from the
VM and decide on its own how best to honour the VM pressure.
This even works both for hashed and unhashed anonymous buffers, *if*
you allow the filesystem to attach all of its hashed buffers buffers
to an address_space of its own rather than having the buffer cache
pool all such buffers together.
--Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2000-12-15 11:26 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3A398F84.2CD3039D@thebarn.com>
2000-12-15 6:20 ` Test12 ll_rw_block error Linus Torvalds
2000-12-15 7:00 ` Alexander Viro
2000-12-15 9:14 ` Chris Mason
2000-12-17 0:54 ` Russell Cattelan
2000-12-17 12:20 ` Chris Mason
2000-12-15 10:51 ` Stephen C. Tweedie [this message]
2000-12-15 19:04 ` Linus Torvalds
2000-12-17 1:08 ` Russell Cattelan
2000-12-18 11:44 ` Stephen C. Tweedie
2000-12-17 2:38 ` Marcelo Tosatti
2000-12-18 11:46 ` Stephen C. Tweedie
2000-12-19 14:05 ` Marcelo Tosatti
2000-12-19 16:43 ` Daniel Phillips
2000-12-19 17:18 ` Marcelo Tosatti
2000-12-19 17:40 ` Christoph Hellwig
2000-12-21 23:25 ` [RFC] changes to buffer.c (was Test12 ll_rw_block error) Chris Mason
2000-12-22 0:19 ` Marcelo Tosatti
2000-12-22 2:20 ` Andreas Dilger
2000-12-22 0:38 ` Marcelo Tosatti
2000-12-22 13:56 ` Chris Mason
2000-12-22 16:45 ` Daniel Phillips
2000-12-22 19:35 ` Chris Mason
2000-12-22 15:07 ` Chris Mason
2000-12-22 19:52 ` Marcelo Tosatti
2000-12-22 23:18 ` Chris Mason
2000-12-22 23:26 ` Marcelo Tosatti
2000-12-23 18:21 ` Chris Mason
2000-12-23 19:02 ` Linus Torvalds
2000-12-23 19:25 ` Chris Mason
2000-12-23 15:47 ` Daniel Phillips
2000-12-27 0:57 ` Chris Mason
2000-12-26 23:18 ` Marcelo Tosatti
2000-12-27 20:26 ` Daniel Phillips
2000-12-27 20:49 ` Chris Mason
2000-12-28 15:49 ` Daniel Phillips
2000-12-28 19:19 ` Chris Mason
2000-12-28 19:29 ` Linus Torvalds
2000-12-29 16:03 ` Chris Mason
2000-12-29 16:21 ` Marcelo Tosatti
2000-12-29 18:33 ` Alexander Viro
2001-01-05 15:54 ` Chris Mason
2001-01-05 15:43 ` Marcelo Tosatti
2001-01-05 17:49 ` Daniel Phillips
2001-01-05 17:52 ` Chris Mason
2001-01-05 19:51 ` Chris Mason
2001-01-05 18:32 ` Marcelo Tosatti
2001-01-05 20:29 ` Rik van Riel
2001-01-05 18:43 ` Marcelo Tosatti
2001-01-05 20:37 ` Rik van Riel
2001-01-05 21:08 ` Chris Mason
2001-01-05 18:09 ` Juergen Schneider
2000-12-29 17:58 ` Daniel Phillips
2001-01-02 15:49 ` Chris Mason
2000-12-22 1:54 ` Alexander Viro
2000-12-22 13:49 ` Chris Mason
2000-12-17 0:51 ` Test12 ll_rw_block error Russell Cattelan
2000-12-17 0:21 ` Russell Cattelan
2000-12-16 0:58 Jeff Chua
2000-12-16 1:12 ` Linus Torvalds
2000-12-16 17:13 ` Chris Mason
2000-12-16 19:07 ` Linus Torvalds
2000-12-16 19:35 ` Chris Mason
[not found] <3A398D58.92BBC9A4@thebarn.com>
2000-12-15 3:28 ` Linus Torvalds
-- strict thread matches above, loose matches on Subject: below --
2000-12-15 2:02 Russell Cattelan
2000-12-15 2:48 ` Linus Torvalds
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=20001215105148.E11931@redhat.com \
--to=sct@redhat.com \
--cc=cattelan@thebarn.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.edu \
/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