All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Marco <marco.stornelli@gmail.com>
Cc: Linux Embedded <linux-embedded@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Linux FS Devel <linux-fsdevel@vger.kernel.org>,
	Daniel Walker <dwalker@soe.ucsc.edu>
Subject: Re: [PATCH 00/14] Pramfs: Persistent and protected ram filesystem
Date: Tue, 16 Jun 2009 16:07:50 +0100	[thread overview]
Message-ID: <20090616150750.GF29040@shareable.org> (raw)
In-Reply-To: <4A351FA9.1090808@gmail.com>

Marco wrote:
> There's the checksum, but the most important feature of this fs is the
> write protection. The page table entries that map the
> backing-store RAM are normally marked read-only. Write operations into
> the filesystem temporarily mark the affected pages as writeable, the
> write operation is carried out with locks held, and then the pte is
> marked read-only again. This feature provides protection against
> filesystem corruption caused by errant writes into the RAM due to
> kernel bugs for instance. I provided a test module for this. When the
> module is loaded tries to do a dirty write in the superblock, at this
> point you should see an error on the write.

Ok.  Random question: does it work with NOMMU? :-)  (I'm biased, my
devices are NOMMU).

Second question: what happens if the system crashing _during_ a write
to a file.  Does it mean that file will fail it's checksum when it's
read at the next boot?

Maybe files aren't so important.  What about when you write a file,
and then rename it over an existing file to replace it.  (E.g. a
config file), and the system crashes _during_ the rename?  At the next
boot, is it guaranteed to see either the old or the new file, or can
the directory be corrupt / fail it's checksum?

> > As you say PRAMFS can work with special SRAMs needing memory
> > protection (and maybe cache coherence?), if you mmap() a file does it
> > need to use the page cache then?  If so, do you have issues with
> > coherency between mmap() and direct read/write?
> 
> See my response above about my concept of protection. However the mmap
> it's a similar approach. I can "mmap" the SRAM and I can write into it
> my data, but I think the possibility to have a fs it's great. We can use
> the device as normal disk, i.e. we can use cp, mv and so on.

I meant when you mmap() a file on the filesystem, like you do when
running an executable, for example.  Does mmap() on a file work or is
it forbidden?  Just curious, I'd guess it's forbidden, and you
wouldn't want _direct_ mappings to the backing SRAM anyway so you can
keep those checksums up to date.

> >> On this point I'd like to hear other embedded guys.
> > 
> > As one, I'd like to say if it can checksum the RAM at boot as well,
> > then I might like to use a small one in ordinary SRAM (at a fixed
> > reserved address) for those occasions when a reboot happens
> > (intentional or not) and I'd like to pass a little data to the next
> > running kernel about why the reboot happened, without touching flash
> > every time.
> > 
> > -- Jamie
> 
> Yeah Jamie, the goal of this fs is exactly that!

Great :-)

-- Jamie

  reply	other threads:[~2009-06-16 15:07 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-13 13:20 [PATCH 00/14] Pramfs: Persistent and protected ram filesystem Marco
2009-06-13 13:41 ` Daniel Walker
2009-06-13 15:59 ` Jamie Lokier
2009-06-14  7:15   ` Marco
2009-06-14  7:15     ` Marco
2009-06-14 11:08     ` Artem Bityutskiy
2009-06-14 11:08       ` Artem Bityutskiy
2009-06-15 15:51       ` Bryan Henderson
2009-06-15 17:42         ` Marco
2009-06-14 11:46     ` Jamie Lokier
2009-06-14 16:04       ` Marco
2009-06-16 15:07         ` Jamie Lokier [this message]
2009-06-16 19:15           ` Marco
2009-06-24 17:41             ` Jamie Lokier
2009-06-25  6:44               ` Marco Stornelli
2009-06-25  6:44                 ` Marco Stornelli
2009-06-26 11:30                 ` Jamie Lokier
2009-06-26 11:30                   ` Jamie Lokier
2009-06-26 16:56                   ` Marco
2009-06-24 14:21                     ` Pavel Machek
2009-06-21  6:40     ` Pavel Machek
2009-06-21 17:34       ` Marco
2009-06-21 17:34         ` Marco
2009-06-21 20:52         ` Pavel Machek
2009-06-22  6:33           ` Marco Stornelli
2009-06-22 17:20             ` Pavel Machek
2009-06-22 17:31               ` Tim Bird
2009-06-22 17:37                 ` Pavel Machek
2009-06-22 18:07                   ` Marco
2009-06-22 20:40                     ` Henrique de Moraes Holschuh
2009-06-22 20:40                     ` Pavel Machek
2009-06-22 21:50                       ` Tim Bird
2009-06-22 21:57                         ` Pavel Machek
2009-06-22 22:38                           ` Pavel Machek
2009-06-22 23:26                             ` Chris Friesen
2009-06-23  1:42                               ` David VomLehn
2009-06-23 18:07                           ` Marco
2009-06-23 18:29                             ` Pavel Machek
2009-06-24 17:47                               ` Jamie Lokier
2009-06-25  6:32                                 ` Marco Stornelli
2009-06-25  6:32                                   ` Marco Stornelli
2009-06-22 18:55                   ` Tim Bird
2009-06-22 21:02                     ` Pavel Machek
2009-06-22 22:02                       ` Tim Bird
2009-06-22 18:08                 ` Marco
2009-06-15 17:15 ` Tim Bird
2009-06-15 17:44   ` Marco
2009-06-15 17:58     ` Tim Bird
2009-06-17 18:32 ` Chris Friesen
2009-06-18  6:35   ` Marco Stornelli
     [not found] <4a4254e2.09c5660a.109d.46f8@mx.google.com>
2009-06-24 16:49 ` Marco
2009-06-24 17:38   ` Marco
2009-06-24 17:59     ` Pavel Machek
2009-06-25  6:30       ` Marco Stornelli
2009-06-25  6:30         ` Marco Stornelli
2009-06-28  8:59         ` Pavel Machek
2009-06-28 16:44           ` Marco Stornelli
2009-06-28 17:33           ` Marco Stornelli
2009-07-09 23:42             ` Pavel Machek
2009-06-24 17:46   ` Pavel Machek

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=20090616150750.GF29040@shareable.org \
    --to=jamie@shareable.org \
    --cc=dwalker@soe.ucsc.edu \
    --cc=linux-embedded@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marco.stornelli@gmail.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 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.