From: Andreas Dilger <adilger@clusterfs.com>
To: "Theodore Ts'o" <tytso@mit.edu>,
Takashi Sato <sho@bsd.tnes.nec.co.jp>,
cmm@us.ibm.com, linux-kernel@vger.kernel.org,
ext2-devel@lists.sourceforge.net,
Laurent Vivier <Laurent.Vivier@bull.net>
Subject: Re: [Ext2-devel] [PATCH 1/2] ext2/3: Support 2^32-1 blocks(Kernel)
Date: Thu, 16 Mar 2006 15:59:13 -0700 [thread overview]
Message-ID: <20060316225913.GV30801@schatzie.adilger.int> (raw)
In-Reply-To: <20060316212632.GA21004@thunk.org>
On Mar 16, 2006 16:26 -0500, Theodore Ts'o wrote:
> On Thu, Mar 16, 2006 at 11:35:49AM -0700, Andreas Dilger wrote:
> > Beyond that, we need a format change and may as well have something
> > like extents, but even extents still need to allow a larger i_blocks,
>
> As a side note, one of the things that we've been talking about doing
> is bundling a number of small changes together into a single INCOMPAT
> flag. Changing i_blocks so its units are in blocks rather than
> 512-byte sectors was one such change.
> Another was guaranteeing that for large inodes (> 128 bytes) that at
> least some number of bytes (probably on the order of 32 bytes or so)
> would be reserved for things like the high resolution portion of
> ctime/mtime/atime, high watermark, and other inode extensions. (One
> of the problems with doing high res timestamps right is how to handle
> the case where you can't make room for the high res timestamps, due to
> too much space being taken up by extended attributes. The make(1)
> program gets really confused unless all files are either using or not
> using high res timestamps.)
>
> The idea was to do a quick easy strike of all of the ideas which could
> be implemented quickly, and perhaps try to get them done before RHEL 5
> snapshots. Even if RHEL5 doesn't enable use of these features by
> default, having it supported by RHEL5 would be extremely convenient.
While I agree with that in theory, in practise we never end up doing
this and it just ends up delaying the acceptance of the trivial patches.
It may also be a burden later on when some of the features that could
be e.g. ROCOMPAT are bundled with an INCOMPAT change and we then
make the filesystem gratuitously INCOMPAT.
In the end, I don't think having a couple of separate flags is any more
effort than having a single one. As yet we only have about 6 of each 32
feature bits used, and if we get close to running out we can make an
EXT3_FEATURE_{,RO,IN}COMPAT_NEXT_WORD flag to continue it on.
Note that I'm not against this in practise, but I wouldn't hold up any
feature for this reason. How long has large i_blocks been pending,
and usecond timestamps? Many years already, even though they are trivial
to implement, so I'm hesitant to tie them together and delay further.
I think i_blocks can be considered an ROCOMPAT feature, and the large
inode reservation for usecond timestamps could be COMPAT I think (since
an unsupporting kernel would still update all the timestamps consistently
even if the useconds on disk would be some constant instead of 0.
> > so that patch would be useful in any case... though it needs some
> > cleanup to remove all users of i_frag and i_faddr (which have never
> > ever been used).
>
> One of the things which we need to consider is whether we think we
> will never support tail packing or other forms of fragments, which is
> related to whether we think we will ever support large blocks (i.e.,
> 32k, 64k, and up). If we do, we might want to keep those fields
> around.
I thought the long-term plan for small files was to just store them
in an EA? That way, we can efficiently pack them inside the inode
or up to blocksize (space willing) without any usage of inode fields
(maybe with a flag to indicate that there is such a fragment to avoid
gratuitous EA searching). This would be a net win on performance since
it avoids an IO for the in-inode case at least.
I think testing with reiserfs showed that tail packing was a net loss in
most cases, since basically every benchmark I've ever seen with reiserfs
disables tail packing or suffers. For space constrained systems (if
there ever exists such a thing again ;-) it would probably be better to
go to compressed files.
Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.
next prev parent reply other threads:[~2006-03-16 22:59 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-15 12:39 Takashi Sato
2006-03-15 12:56 ` [Ext2-devel] " Laurent Vivier
2006-03-16 2:19 ` Mingming Cao
2006-03-16 12:11 ` Takashi Sato
2006-03-16 13:53 ` Theodore Ts'o
2006-03-16 18:35 ` Andreas Dilger
2006-03-16 21:26 ` Theodore Ts'o
2006-03-16 22:59 ` Andreas Dilger [this message]
2006-03-18 17:07 ` Theodore Ts'o
2006-03-20 6:36 ` Andreas Dilger
2006-03-20 22:38 ` Stephen C. Tweedie
2006-03-20 23:48 ` Andreas Dilger
2006-03-21 17:05 ` Stephen C. Tweedie
2006-03-21 18:38 ` Theodore Ts'o
2006-03-21 19:47 ` Stephen C. Tweedie
2006-03-21 20:40 ` Andreas Dilger
2006-03-21 20:16 ` Alfred M. Szmidt
2006-03-21 23:05 ` Olivier Galibert
2006-03-21 23:35 ` Alfred M. Szmidt
2006-03-25 14:51 ` cascardo
2006-03-26 16:27 ` Andreas Dilger
2006-03-27 19:59 ` Stephen C. Tweedie
2006-03-27 20:36 ` Alfred M. Szmidt
2006-03-27 19:55 ` Stephen C. Tweedie
2006-03-27 20:05 ` Alfred M. Szmidt
2006-03-27 20:40 ` Stephen C. Tweedie
2006-03-28 0:14 ` cascardo
2006-03-21 20:26 ` Andreas Dilger
2006-03-21 4:03 ` Theodore Ts'o
2006-03-17 9:35 ` Laurent Vivier
2006-03-19 2:20 ` Theodore Ts'o
2006-03-20 10:11 ` Takashi Sato
2006-03-26 3:01 ` Theodore Ts'o
2006-03-26 22:15 Chuck Ebbert
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=20060316225913.GV30801@schatzie.adilger.int \
--to=adilger@clusterfs.com \
--cc=Laurent.Vivier@bull.net \
--cc=cmm@us.ibm.com \
--cc=ext2-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=sho@bsd.tnes.nec.co.jp \
--cc=tytso@mit.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
all inboxes | Powered by JetHome®