linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Jared Hulbert" <jaredeh@gmail.com>
To: "Christoph Hellwig" <hch@infradead.org>,
	"Jared Hulbert" <jaredeh@gmail.com>,
	carsteno@de.ibm.com, "Nick Piggin" <nickpiggin@yahoo.com.au>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	richard.griffiths@windriver.com,
	"Richard Griffiths" <res07ml0@verizon.net>,
	Linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.6.21] cramfs: add cramfs Linear XIP
Date: Thu, 7 Jun 2007 15:59:00 -0700	[thread overview]
Message-ID: <6934efce0706071559j24978c15kc42914677dc8408e@mail.gmail.com> (raw)
In-Reply-To: <20070607211519.GA22348@infradead.org>

> If if were actually talking about complex filesystem I'd agree.  But
> the cramfs xip patch posted here touches about 2/3 of the number of
> lines that cramfs has in total.

Fair enough.  But look at the complexity rather than number of lines.
It adds tedium to the cramfs_fill_super and one extra level of
indirection to a hand full of ops like mmap() and cramfs_read().  But
the changes to the real meat of cramfs, cramfs_readpage(), are limited
to the XIP changes, which I want on block devices anyway.

So if we did fork cramfs I would submit a simple patch to cramfs for
XIP support on block devices and I would submit a patch for a new
filesystem, cramfs-linear.  Cramfs-linear would have an exact copy of
1/3 of the cramfs code such as cramfs_readpage(), it would use the
same headers, and it would use the same userspace tools.

This fork is what the community wants?  Speak up!

>And cramfs is not exactly the best base to start with..

This is a moot point, there is a significant installed base issue.
There are lots of cramfs-linear-xip based systems in existance with
can't be easily ported to newer kernel because of a lack of support.

> > This is nirvana.   But it is not the goal of the patches in question.
> > In fact there are several use cases that don't need and don't value
> > the writeability and don't need therefore the overhead.  It is a long
> > term goal never the less.
>
> With the filemap_xip.c helpers adding xip support to any filesystem
> is pretty trivial for the highlevel filesystem operations.  The only
> interesting bit is the lowlevel code (the get_xip_page method and
> the others Carsten mentioned), but we need to do these lowlevel
> code in a generic and proper way anyway.

It's not that trivial.  The filesystem needs to meet several
requirements such as, having data nodes that are page aligned.
Anytime any changes are made to any page in the underlying Flash block
or if the Flash physical partition goes out of read mode you've got to
hide that from userspace or otherwise deal with it.  A filesystem that
doesn't understand these subtle hardware requirements would either not
work at all, have lots of deadlock issues, or at least have terrible
performance problems.  Nevertheless I supose a simple, but invasive,
hack could likely produce a worthwhile proof of concept.

I think this is worthy of it's own thread....

> I'll try to hack up an xip prototype for jffs2 next week.

Very cool.  I can't wait to see what you have in mind.  But remember
this doesn't solve the problem of the huge installed base of
cramfs-linear-xip images.

Gee I think it seems logfs would be a better choice.  Jffs2 and
ubifs(jffs3) for that matter combine node and node header in series
which means your data nodes aren't aligned to page boundarys. Logfs
nodes could be more easily aligned.

  reply	other threads:[~2007-06-07 22:59 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-22 22:09 [PATCH 2.6.21] cramfs: add cramfs Linear XIP Richard Griffiths
2007-05-22 22:49 ` Andrew Morton
2007-05-22 22:58   ` Richard Griffiths (wrs)
2007-05-23  7:51   ` Carsten Otte
2007-05-23 15:25     ` Richard Griffiths (wrs)
2007-05-24  6:46       ` Carsten Otte
2007-05-23 17:21     ` Jared Hulbert
2007-05-24  6:57       ` Carsten Otte
2007-05-29  5:10     ` Nick Piggin
2007-06-02  0:48       ` Jared Hulbert
2007-06-02  8:42         ` Nick Piggin
2007-06-04 13:32           ` Carsten Otte
2007-06-06 11:13             ` Jared Hulbert
2007-06-06 11:33               ` Christoph Hellwig
2007-06-06 15:17                 ` Richard Griffiths
2007-06-06 15:50                   ` Christoph Hellwig
2007-06-06 16:09                     ` Jared Hulbert
2007-06-06 16:07                 ` Jared Hulbert
2007-06-06 16:16                   ` Christoph Hellwig
2007-06-06 18:26                     ` Jared Hulbert
2007-06-07 19:37                       ` Christoph Hellwig
2007-06-07 19:40                         ` Christoph Hellwig
2007-06-07 20:27                           ` Jared Hulbert
2007-06-08  7:39                           ` Carsten Otte
2007-06-07 21:11                         ` Jared Hulbert
2007-06-07 21:15                           ` Christoph Hellwig
2007-06-07 22:59                             ` Jared Hulbert [this message]
2007-06-08 13:19                               ` Jörn Engel
2007-06-08 13:10                             ` Jörn Engel
2007-06-06 16:15                 ` Carsten Otte
2007-06-06 16:23                   ` Christoph Hellwig
2007-06-06 18:40                     ` Jared Hulbert
2007-06-06 22:59                       ` Matt Mackall
2007-06-07 17:07                     ` Carsten Otte
2007-06-07 19:38                       ` Christoph Hellwig
2007-06-07 20:34                         ` Jared Hulbert
2007-06-08  7:28                           ` Christoph Hellwig
2007-06-08 16:02                             ` Jared Hulbert
2007-06-08  7:17                         ` Carsten Otte
2007-06-08  7:26                           ` Christoph Hellwig
2007-06-08  7:50                             ` Carsten Otte
2007-06-08  7:57                               ` Christoph Hellwig
2007-06-08  7:59                                 ` Carsten Otte
2007-06-08  8:04                                   ` Christoph Hellwig
2007-06-08 16:05                                     ` Jared Hulbert
2007-06-08 16:09                                       ` Christoph Hellwig
2007-06-08 16:11                                         ` Jared Hulbert
2007-06-08 16:15                                           ` Christoph Hellwig
2007-06-08 17:51                                             ` Jörn Engel
2007-06-08 19:04                                               ` Carsten Otte
2007-06-08 19:06                                                 ` Carsten Otte
2007-06-08 19:36                                                 ` Jörn Engel
2007-06-09  7:55                                                   ` Carsten Otte
2007-06-09 10:37                                                     ` Jörn Engel
2007-06-08 23:02                                                 ` Jared Hulbert
2007-06-07 21:19                       ` Jared Hulbert
2007-06-06 12:05               ` Carsten Otte
2007-06-06 19:01                 ` Jared Hulbert
2007-06-07  1:00                   ` Justin Treon
2007-06-13  0:11             ` Jared Hulbert
2007-06-14 13:57               ` Carsten Otte
2007-06-14 16:53                 ` Jared Hulbert
2007-06-15  9:22                   ` Carsten Otte
2007-06-15 11:49                     ` Heiko Carstens
2007-06-15 17:30                       ` Jared Hulbert
2007-06-18  7:38                         ` Carsten Otte
2007-06-15 13:53       ` Carsten Otte
2007-06-15 21:46         ` Jared Hulbert
2007-05-23  8:21 ` Alistair John Strachan
2007-05-24 20:22 ` Jared Hulbert
2007-05-24 20:52   ` Richard Griffiths
2007-05-24 21:21     ` Jared Hulbert
     [not found] <337240.79058.qm@web59309.mail.re1.yahoo.com>
2007-06-09  8:09 ` Carsten Otte

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=6934efce0706071559j24978c15kc42914677dc8408e@mail.gmail.com \
    --to=jaredeh@gmail.com \
    --cc=Linux-kernel@vger.kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=carsteno@de.ibm.com \
    --cc=hch@infradead.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=res07ml0@verizon.net \
    --cc=richard.griffiths@windriver.com \
    /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).