From: Felix Fietkau <nbd@openwrt.org>
To: dedekind1@gmail.com, Brian Norris <computersforpeace@gmail.com>
Cc: "Rodrigo Freire" <rfreire@redhat.com>,
"Jörn Engel" <joern@logfs.org>,
"Herton Krzesinski" <hkrzesin@redhat.com>,
linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org,
dwmw2@infradead.org
Subject: Re: [PATCH V2] mtd: block2mtd: Present block2mtd timely on boot time
Date: Fri, 07 Nov 2014 16:20:21 +0100 [thread overview]
Message-ID: <545CE335.8020503@openwrt.org> (raw)
In-Reply-To: <1415372340.22887.23.camel@sauron.fi.intel.com>
On 2014-11-07 15:59, Artem Bityutskiy wrote:
> On Wed, 2014-11-05 at 12:23 -0800, Brian Norris wrote:
>> On Wed, Sep 17, 2014 at 04:28:03PM -0400, Rodrigo Freire wrote:
>> > From: Felix Fietkau <nbd@openwrt.org>
>> >
>> > mtd: block2mtd: Ensure that block2mtd is presented in a timely fashion
>> >
>> > Currently, a block MTD device is not presented to the system on time, in
>> > order to start mounting the filesystems. This patch ensures that block2mtd
>> > is presented at the right time, so filesystems can be mounted on boot time.
>> > This issue was seen on BCM2835 (Raspberry Pi) systems when mounting JFFS2
>> > block2mtd filesystems.
>>
>> This still seems like a bad idea (using a block device + block2mtd +
>> JFFS2). Why are you doing this? See comments here:
>>
>> http://www.linux-mtd.infradead.org/faq/jffs2.html#L_hdd_jffs2
>
> At old days it was impossible to mount character devices, only block
> devices. So people ware using mtdblock to mount jffs2. This is just a
> work-around.
>
> I did not look at this code for long time, and may have forgotten
> something, but I believe you do not need mtdblock anymore for this. You
> just mount the mtd device.
>
> This driver should not be used for this.
>
> The only usage of this driver is emulating a block device on top of NOR
> flash, and in most cases, only for debugging / research purposes. This
> is because (a) this driver does not handle bad blocks (and hence,
> NAND-incompatible) and (b) it does read-erase-write when you modify a
> block, so it is extremely slow and does not handle power cuts at all.
I think you got things mixed up a bit. This is not about emulating a
block device on top of NOR flash. This is about emulating NOR flash on
top of a regular block device - e.g. USB sticks, SD cards.
Now why would we want to use jffs2 on something that has enough storage
for running a regular file system?
It's simple: JFFS2 is very robust when dealing with sudden loss of
power. Block device based filesystems such as ext4, or even f2fs are not
nearly as good at dealing with that.
I realize that the emulation is a bit wasteful, and a lot of the things
that jffs2 was designed for are useless here - but the end result is
still much more reliable this way than with the alternative solutions.
In OpenWrt we've been using this approach for some x86 routers and for
the Raspberry Pi for a long time now, and it has served us quite well.
- Felix
next prev parent reply other threads:[~2014-11-07 15:20 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <371358190.34795877.1410204429882.JavaMail.zimbra@redhat.com>
2014-09-08 20:04 ` [PATCH] block2mtd: mtd: Present block2mtd timely on boot time Rodrigo Freire
2014-09-09 17:02 ` Jörn Engel
2014-09-17 20:18 ` Rodrigo Freire
2014-09-17 20:28 ` [PATCH V2] mtd: block2mtd: " Rodrigo Freire
2014-09-17 21:21 ` Ezequiel Garcia
2014-09-17 21:41 ` Rodrigo Freire
2014-10-09 15:07 ` [RESEND PATCH " Rodrigo Freire
2014-11-01 13:33 ` Rodrigo Freire
2014-11-07 9:44 ` Artem Bityutskiy
2014-11-07 20:05 ` Brian Norris
2014-11-05 20:01 ` Brian Norris
2014-11-05 20:23 ` [PATCH " Brian Norris
2014-11-07 14:59 ` Artem Bityutskiy
2014-11-07 15:20 ` Felix Fietkau [this message]
2014-11-07 15:30 ` Artem Bityutskiy
2014-11-09 12:18 ` Rodrigo Freire
2014-11-26 3:33 ` Brian Norris
2014-11-26 13:32 ` Rodrigo Freire
2015-02-11 15:09 ` Rodrigo Freire
2014-11-09 12:18 ` [PATCH v3 0/3] mtd: block2mtd: wait for device enumeration, add name support Rodrigo Freire
2014-11-09 12:21 ` [PATCH v3 1/3] mtd: block2mtd: Ensure that block2mtd is triggered after block devices are presented Rodrigo Freire
2015-02-24 7:45 ` Brian Norris
2014-11-09 12:22 ` [PATCH v3 2/3] mtd: block2mtd: Adds a mtd name and a block device timeout option Rodrigo Freire
2015-02-24 8:05 ` Brian Norris
2014-11-09 12:23 ` [PATCH v3 3/3] mtd: block2mtd: Removes PAGE_MASK as a index to partition size Rodrigo Freire
2014-11-26 7:21 ` Brian Norris
2014-11-26 13:19 ` Rodrigo Freire
2015-02-24 8:07 ` Brian Norris
2015-02-24 8:20 ` Felix Fietkau
2015-02-24 8:27 ` Brian Norris
2015-02-24 8:30 ` Felix Fietkau
2015-02-24 8:40 ` Brian Norris
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=545CE335.8020503@openwrt.org \
--to=nbd@openwrt.org \
--cc=computersforpeace@gmail.com \
--cc=dedekind1@gmail.com \
--cc=dwmw2@infradead.org \
--cc=hkrzesin@redhat.com \
--cc=joern@logfs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=rfreire@redhat.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