From: Ingo Molnar <mingo@elte.hu>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Jörn Engel" <joern@logfs.org>, "David Brown" <lkml@davidb.org>,
"Phil Oester" <kernel@linuxace.com>,
"Kay Sievers" <kay.sievers@vrfy.org>,
"Phillip Lougher" <phillip@lougher.demon.co.uk>,
"Christoph Hellwig" <hch@infradead.org>,
torvalds@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org
Subject: Re: [GIT PULL] Squashfs pull request for 2.6.29
Date: Sat, 10 Jan 2009 23:15:28 +0100 [thread overview]
Message-ID: <20090110221528.GA31774@elte.hu> (raw)
In-Reply-To: <20090110101235.7ca24c44.akpm@linux-foundation.org>
* Andrew Morton <akpm@linux-foundation.org> wrote:
> More importantly, the filesystem driver has to be able to read older
> filesystem instances. This is a userspace-visible binary interface! A
> really complex one.
>
> If for some reason we wish to change the on-disk format then that could
> be done now. But once the code is merged, such changes could only be
> done in a back-compatible way.
IMHO what makes squashfs special is that:
1) it's read-only: i.e. we dont actually _generate_ this data structure.
It comes from the outside.
2) it's a the "cat is already out of the bag" situation.
It's in the field, it's used.
And as such it's pretty much an externality already to Linux: the
filesystem is in use, distros patch it in, devices ship with it, etc. etc.
So the main technical question at this stage is whether we want to support
that binary format _at all_, whether we want to support that kind of data
protocol.
Also, i think your interpretation of 'ABI' stretches it quite far: we dont
control the lowlevel bits at all - we dont generate the data, we just
interpret it in the kernel in a read-only way. We dont provide the raw
lowlevel bits to user-space either - we provide VFS bindings to it and
that is generalized and not touched by squashfs.
As such squashfs has little to no classic ABI bindings - other than the
trivial "do we support this data format" question. (which is not a classic
ABI question.)
[ Often such read-only formats can even be iterated slightly incompatibly
without much fuss, as the userspace side goes together with the kernel
anyway so it's easy to stay in touch. ]
And the thing is, i think we never before in the kernel said "no" to any
support for a data format externality. [Let me qualify that: 'unpure' data
protocols with active 'code' components were always an exception to that:
ACPI, reiser4, etc. - but read-only access to a passive medium is far more
clear-cut.]
This is a nice filesystem, and we support far, far worse data formats
already. Far, far, far, far worse data formats, formats that are less used
and were developed completely regardless of Linux. We support data formats
and physical transports that should not even be mentioned with squashfs in
the same paragraph.
And the thing is, if in the mainline kernel we were at the forefront of FS
R&D, we would and could prototype such filesystems in the mainline kernel
and we would have efficient and prompt influence over lowlevel format
decisions.
We are not at the forefront - distros tend to apply new filesystem patches
far earlier than we do and it takes forever to get stuff upstream - for
better or worse. And we (the upstream community) had little active role in
developing this thing _at all_.
( This is not a criticism it's just an observation of current reality: it
is _fundamentally hard_ to do active high-flux R&D for persistent
formats upstream and still be reasonably compatible at the same time.
So developing out-of-tree - or via FUSE - might as well be the right
model here. )
Generally when a filesystem driver comes to us, its lowlevel format is
pretty much a done deal already - it's out in the wild and we should say
'no' only as an exception mechanism for clearly unacceptable crap.
Instead of trying to flex our muscle and steer the big red firetruck way
after the fire has been put out already - by others.
Saying 'no' at this stage comes at a great and largely unnecessary cost to
everyone involved. I believe we force ourselves into the R&D flow at an
inappropriately late stage - while at the same time we are unreceptive to
early adopter projects who'd like to avoid that. We cannot have the cake
and eat it too.
At least IMHO.
( What could _perhaps_ change the picture a bit IMO is drivers/staging/ i
think - we could take a far more active role in certain types of
projects that have been done out of tree typically, with no formal
promise for compatibility - or something like that. )
Ingo
next prev parent reply other threads:[~2009-01-10 22:15 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-08 16:48 [GIT PULL] Squashfs pull request for 2.6.29 Phillip Lougher
2009-01-08 16:50 ` Christoph Hellwig
2009-01-08 17:05 ` Phillip Lougher
2009-01-08 17:11 ` Geert Uytterhoeven
2009-01-08 23:55 ` H. Peter Anvin
2009-01-09 1:53 ` Andrew Morton
2009-01-09 2:11 ` Phillip Lougher
2009-01-09 2:24 ` Kay Sievers
2009-01-09 2:36 ` Phil Oester
2009-01-09 16:54 ` Jörn Engel
2009-01-09 19:37 ` David Brown
2009-01-09 21:19 ` Jörn Engel
2009-01-10 12:43 ` Ingo Molnar
2009-01-10 16:50 ` Jörn Engel
2009-01-10 18:12 ` Andrew Morton
2009-01-10 18:30 ` Linus Torvalds
2009-01-10 19:57 ` Jeff Garzik
2009-01-10 20:16 ` Leon Woestenberg
2009-01-11 6:36 ` Valdis.Kletnieks
2009-01-10 19:19 ` Olivier Galibert
2009-01-10 22:15 ` Ingo Molnar [this message]
2009-01-11 9:30 ` Geert Uytterhoeven
2009-01-11 15:39 ` Ingo Molnar
2009-01-11 16:30 ` Greg KH
2009-01-22 21:50 ` Dave Jones
2009-01-22 21:57 ` Randy Dunlap
2009-01-22 22:15 ` Greg KH
2009-01-22 21:58 ` Greg KH
2009-01-22 22:26 ` Ingo Molnar
2009-01-22 22:50 ` Kyle McMartin
2009-01-22 23:04 ` Greg KH
2009-01-22 23:25 ` Evgeniy Polyakov
2009-01-22 23:34 ` Kyle McMartin
2009-01-22 23:41 ` Ingo Molnar
2009-01-22 23:28 ` Evgeniy Polyakov
2009-01-22 22:16 ` Ingo Molnar
2009-01-22 22:24 ` Pekka Enberg
2009-01-23 0:16 ` Andrew Morton
2009-01-23 0:30 ` Greg KH
2009-01-09 2:30 ` Harvey Harrison
2009-01-09 11:25 ` KOSAKI Motohiro
2009-01-09 12:02 ` Alan Cox
2009-01-09 21:56 ` Linus Torvalds
2009-01-09 22:08 ` Andrew Morton
2009-01-09 22:12 ` Linus Torvalds
2009-01-09 22:26 ` Alan Cox
2009-01-09 22:36 ` Harvey Harrison
2009-01-11 3:01 ` Phillip Lougher
2009-01-11 3:06 ` H. Peter Anvin
2009-01-09 16:32 ` Geert Uytterhoeven
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=20090110221528.GA31774@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=hch@infradead.org \
--cc=joern@logfs.org \
--cc=kay.sievers@vrfy.org \
--cc=kernel@linuxace.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@davidb.org \
--cc=phillip@lougher.demon.co.uk \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).