From: Andrea Arcangeli <andrea@suse.de>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Roman Zippel <zippel@fh-brandenburg.de>,
"Eric W. Biederman" <ebiederman@uswest.net>,
Alexander Viro <viro@math.psu.edu>,
Daniel Phillips <phillips@innominate.de>,
linux-kernel@vger.kernel.org
Subject: Re: [RFC] Generic deferred file writing
Date: Sun, 31 Dec 2000 15:38:49 +0100 [thread overview]
Message-ID: <20001231153849.B17728@athlon.random> (raw)
In-Reply-To: <Pine.GSO.4.10.10012310241300.8887-100000@zeus.fh-brandenburg.de> <Pine.LNX.4.10.10012301816410.1743-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.10.10012301816410.1743-100000@penguin.transmeta.com>; from torvalds@transmeta.com on Sat, Dec 30, 2000 at 06:28:39PM -0800
On Sat, Dec 30, 2000 at 06:28:39PM -0800, Linus Torvalds wrote:
> There are only two real advantages to deferred writing:
>
> - not having to do get_block() at all for temp-files, as we never have to
> do the allocation if we end up removing the file.
>
> NOTE NOTE NOTE! The overhead for trying to get ENOSPC and quota errors
> right is quite possibly big enough that this advantage is possibly very
> questionable. It's very possible that people could speed things up
> using this approach, but I also suspect that it is equally (if not
> more) possible to speed things up by just making sure that the
> low-level FS has a fast get_block().
get_block for large files can be improved using extents, but how can we
implement a fast get_block without restructuring the on-disk format of the
filesystem? (in turn using another filesystem instead of ext2?)
get_block needs to walk all level of inode metadata indirection if they
exists. It has to map the logical page from its (inode) address space to the
physical blocks. If those indirection blocks aren't in cache it has to block
to read them. It doesn't matter how it is actually implemented in core. And
then later as you say those allocated blocks could never get written because
the file may be deleted in the meantime.
With allocate on flush we can run the slow get_block in parallel
asynchronously using a kernel daemon after the page flushtime timeout
triggers. It looks nicer to me. The in-core overhead of the reserved
blocks for delayed allocation should be not relevant at all (and it also
should not need the big kernel lock making the whole write path big lock
free).
Andrea
-
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-31 15:11 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-12-30 0:25 test13-pre6 Linus Torvalds
2000-12-30 0:49 ` test13-pre6 Alexander Viro
2000-12-30 1:03 ` test13-pre6 Linus Torvalds
2000-12-30 18:09 ` test13-pre6 Alexander Viro
2000-12-30 2:25 ` test13-pre6 Daniel Phillips
2000-12-30 3:16 ` test13-pre6 Linus Torvalds
2000-12-30 18:58 ` [RFC] Generic deferred file writing Daniel Phillips
2000-12-30 20:05 ` Linus Torvalds
2000-12-30 20:06 ` Alexander Viro
2000-12-30 20:21 ` Linus Torvalds
2000-12-30 21:10 ` Andreas Dilger
2000-12-30 21:46 ` Alexander Viro
2000-12-30 23:12 ` Daniel Phillips
2000-12-30 22:00 ` Eric W. Biederman
2000-12-30 22:44 ` Linus Torvalds
2000-12-31 0:26 ` Eric W. Biederman
2000-12-31 1:02 ` Andrea Arcangeli
2000-12-31 1:13 ` Chris Wedgwood
2000-12-31 1:50 ` Alexander Viro
2000-12-31 2:34 ` Andrea Arcangeli
2000-12-31 2:09 ` Roman Zippel
2000-12-31 2:28 ` Linus Torvalds
2000-12-31 12:58 ` Roman Zippel
2001-04-21 20:06 ` Races in affs_unlink(), affs_rmdir() and affs_rename() Alexander Viro
2001-04-21 22:16 ` Roman Zippel
2001-04-22 5:53 ` Alexander Viro
2001-04-22 12:57 ` Roman Zippel
2001-04-22 13:15 ` Alexander Viro
2000-12-31 14:38 ` Andrea Arcangeli [this message]
2000-12-31 16:33 ` [RFC] Generic deferred file writing Linus Torvalds
2000-12-31 16:50 ` Andrea Arcangeli
2000-12-31 16:51 ` Alexander Viro
2000-12-31 17:12 ` Linus Torvalds
2000-12-31 18:30 ` Daniel Phillips
2000-12-31 18:44 ` Linus Torvalds
2000-12-31 19:10 ` Daniel Phillips
2000-12-31 19:31 ` Linus Torvalds
2000-12-31 21:03 ` Roman Zippel
2000-12-31 21:32 ` Linus Torvalds
2001-01-02 18:27 ` Chris Mason
2000-12-30 3:08 ` test13-pre6 (Fork Bug with Athlons? Temporary Fix) Byron Stanoszek
2000-12-30 3:36 ` Linus Torvalds
2000-12-30 5:55 ` Andi Kleen
2000-12-30 5:13 ` Linus Torvalds
2000-12-30 8:13 ` Graham Murray
2000-12-30 4:21 ` test13-pre6 Dan Aloni
2001-01-04 20:23 ` test13-pre6 Stephen C. Tweedie
2001-01-04 22:15 ` test13-pre6 stewart
[not found] <Pine.LNX.4.10.10012311726230.1671-100000@penguin.transmeta.com>
2001-01-01 2:50 ` [RFC] Generic deferred file writing Roman Zippel
2001-01-01 3:47 ` Alexander Viro
2001-01-01 12:44 ` Roman Zippel
2001-01-01 15:16 ` Alexander Viro
2001-01-02 3:00 ` Roman Zippel
2001-01-02 5:00 ` Alexander Viro
2001-01-02 16:53 ` Roman Zippel
2001-01-01 20:00 ` Daniel Phillips
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=20001231153849.B17728@athlon.random \
--to=andrea@suse.de \
--cc=ebiederman@uswest.net \
--cc=linux-kernel@vger.kernel.org \
--cc=phillips@innominate.de \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.edu \
--cc=zippel@fh-brandenburg.de \
/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