From: Phillip Lougher <phillip@lougher.demon.co.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andi Drebes <lists-receive@programmierforen.de>,
linux-fsdevel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 0/2] cramfs: Add mount option "swapendian"
Date: Thu, 15 Nov 2007 22:48:12 +0000 [thread overview]
Message-ID: <473CCCAC.5010304@lougher.demon.co.uk> (raw)
In-Reply-To: <alpine.LFD.0.9999.0711151327080.4260@woody.linux-foundation.org>
Linus Torvalds wrote:
>
>
> But it should be *trivial* to compress the metadata too if the code just
> were to put the metadata at the beginning of the image, and the real data
> at the end, and then you can build up the image from both ends and you
> *can* have a fixed starting point for the data (up at the top of the
> image) even though you are changing the size of the metadata by
> compression.
>
I decided to compress the metadata when I designed Squashfs, a read-only
filesystem which was inspired by Cramfs. Squashfs stores the data at the
front of the filesystem and puts the metadata at the end, so the data is
always at a fixed point. Doing that and a couple of other things allows
the metadata to be built up and compressed in one-pass while the
filesystem is being created. The metadata is split into an inode table
and a directory table and compressed separately because it compresses
better than way.
> But I literally designed and wrote the thing in a couple of days, and I
> really didn't think it through right. As a result, the metadata may be
> dense, but it's totally uncompressed. It would have been better to allow a
> less dense basic format (allowing bigger uid/gid values, and offsets and
> file sizes), but compress it.
>
Squashfs stores much more metadata information, but as it is compressed
it is much smaller than Cramfs. Typically the inode table compresses
to less than 40% and the directory table to less than 50%.
> So a "v2" cramfs would be a great idea.
That is what I always considered Squashfs to be. But I also made the
mistake of making Squashfs both little and big endian. That's going to
be fixed and then I'll make a second attempt at submitting it for
inclusion in the mainline kernel.
Phillip
next prev parent reply other threads:[~2007-11-15 22:47 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-15 20:29 [PATCH 0/2] cramfs: support for other endianness Andi Drebes
2007-11-15 20:35 ` [PATCH 0/2] cramfs: Add mount option "swapendian" Andi Drebes
2007-11-15 20:45 ` Linus Torvalds
2007-11-15 20:46 ` Linus Torvalds
2007-11-15 20:51 ` Christoph Hellwig
2007-11-15 20:49 ` Christoph Hellwig
2007-11-15 20:57 ` Linus Torvalds
2007-11-15 21:15 ` Andi Drebes
2007-11-15 21:37 ` Linus Torvalds
2007-11-15 22:48 ` Phillip Lougher [this message]
2007-11-16 10:28 ` Andi Drebes
2007-11-16 15:44 ` Linus Torvalds
2007-11-15 21:03 ` Jörn Engel
2007-11-15 20:37 ` [PATCH 0/2] cramfs: update README file Andi Drebes
2007-11-15 20:43 ` [PATCH 0/2] cramfs: support for other endianness Andi Drebes
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=473CCCAC.5010304@lougher.demon.co.uk \
--to=phillip@lougher.demon.co.uk \
--cc=akpm@linux-foundation.org \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=lists-receive@programmierforen.de \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.