From: Jared Hulbert <jaredeh@gmail.com>
To: "Artem B. Bityuckiy" <dedekind@infradead.org>
Cc: David Woodhouse <dwmw2@infradead.org>,
MTD List <linux-mtd@lists.infradead.org>
Subject: Re: JFFS3 & performance
Date: Wed, 12 Jan 2005 08:41:04 -0800 [thread overview]
Message-ID: <6934efce050112084111ef438c@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0501120913180.10617@phoenix.infradead.org>
Clarification on NOR technology. Remember that the ability to run
code XIP is effectively a requirement for a NOR chip. This means no
read errors can leave the chip. I don't see this changing in the
foreseeable future. Any read errors that do occur would probably be
caused by a failed/incomplete program.
We probably do want to be able to easily retire, reprogram, and/or
test those blocks/pages that get read errors. That would have to be
done in the filesystem and the chip driver needs to be able report a
read error occured.
Any chance of being able store special files XIP in JFFS3?
Uncompressed aligned page sized chunks, etc.
,Jared
On Wed, 12 Jan 2005 09:15:42 +0000 (GMT), Artem B. Bityuckiy
<dedekind@infradead.org> wrote:
> Hi Joern,
>
> please, read the paper
> http://www.semicon.toshiba.co.jp/eng/prd/memory/doc/pdf/nand_applicationguide_e.pdf
> I like this paper. I've just reread it and now I have no doubts that CRCs
> are required on NAND. :-)
>
> Shortly: errors are normal phenomena on NAND devices. Errors are mostly
> handled by NAND ECCs, but
> JFFS[23] MUST take care about failures and handle them properly. There
> are permanent and occasional
> errors exist. Blocks with permanent errors must be marked bad and it is
> good to recover data...
>
> On Tue, 11 Jan 2005, [iso-8859-1] Jörn Engel wrote:
> > On Tue, 11 January 2005 12:29:33 +0000, Artem B. Bityuckiy wrote:
> > > Ferenc Havasi:
> > > >If I am right CRCs are not only against the effect of unclean reboots
> > > >but also to handle flash errors. On NAND flashes the ECC handles this
> > > >problem but NOR doesn't have any error detection system.
> > >
> > > Joern Engel wrote:
> > > >So either we can make sure this case never happens, or we can't. It
> > > >depends on the type of flash, for sure, and it may be pretty hard with
> > > >some types. But if it doesn't work at all, the flash is broken,
> > > >period.
> > >
> > > Hi, that is really interesting, *why* do we need CRCs in JFFS2?
> > >
> > > Do we need CRC *only* to handle unclean reboots? If so, we may possibly
> > > handle it another way, just putting some magic word at the end of node.
> > > Possibly, no need for CRC at all.
> > >
> > > Joern stands that if Flash got rotten, we *do not need* to do something
> > > special trying to recover data. Am I right?
> >
> > Pretty much. Detecting the breakage is still a good thing, so we can
> > report an error. There are non-embedded devices with flash and users
> > want to see the problem and replace their flash. But apart from that,
> > don't try too hard to fix something that cannot be fixed.
> >
> > > I still think we need to do recovery in case of NAND, mark the rotten
> > > block bad and keep working, so we still need CRC. In case of NOR, we
> > > possibly should just report error and do nothing (we can't mark block bad
> > > there). Do not know about ECC NOR.
> > >
> > > Comments?
> >
> > Ok, here is my approach.
> >
> > Claim: No mtd has problems with lost data due to bad blocks. This is
> > a complete non-issue and jffs[23] doesn't care.
> >
> > "No" means that less than .001% (add or remove some digits, depending
> > on your needs) of all devices have this problem. In those cases, the
> > system just won't work and will be replaced. Business as usual.
> >
> > Now, if any particular flash doesn't match this requirement, the mtd
> > driver is supposed to mirror all blocks. If either copy rots away,
> > the data can still be read back from the other block. After GC, the
> > block can be marked as bad and everyone lives on happily ever after.
> >
> > Capacity is half the original, but that's better than losing
> > /sbin/init now and then, right? And maybe the flash is cheap enough
> > that noone cares.
> >
> > Sane?
> >
> > > P.S. By the way, we could put CRCs at the end of blocks (*after* data) -
> > > in this case CRC well be extremely strong detecting unclean reboots, isn't
> > > it?
> >
> > Interesting idea. Will make the code slightly messy, but it should be
> > worth it.
> >
> > Jörn
> >
> > --
> > Do not stop an army on its way home.
> > -- Sun Tzu
> >
>
> --
> Best Regards,
> Artem B. Bityuckiy,
> St.-Petersburg, Russia.
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
next prev parent reply other threads:[~2005-01-12 16:41 UTC|newest]
Thread overview: 196+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-11 12:29 JFFS3 & performance Artem B. Bityuckiy
2005-01-11 14:37 ` Josh Boyer
2005-01-11 21:51 ` Jörn Engel
2005-01-12 0:06 ` Thomas Gleixner
2005-01-12 16:59 ` Jörn Engel
2005-01-12 17:37 ` Thomas Gleixner
2005-01-12 18:17 ` Jörn Engel
2005-01-12 9:15 ` Artem B. Bityuckiy
2005-01-12 16:41 ` Jared Hulbert [this message]
2005-01-12 17:02 ` Jörn Engel
2005-01-12 17:06 ` David Woodhouse
2005-01-12 17:11 ` Jörn Engel
2005-01-12 17:22 ` Jared Hulbert
2005-01-12 17:28 ` Artem B. Bityuckiy
2005-01-12 17:34 ` David Woodhouse
2005-01-12 17:45 ` Dan Post
2005-01-12 17:52 ` David Woodhouse
2005-01-12 17:14 ` Artem B. Bityuckiy
2005-01-12 22:30 ` Jared Hulbert
2005-01-12 22:43 ` Josh Boyer
2005-01-12 22:55 ` Jared Hulbert
2005-01-13 15:50 ` Josh Boyer
2005-01-13 18:30 ` Jared Hulbert
2005-01-13 18:36 ` David Woodhouse
2005-01-13 19:06 ` Jörn Engel
2005-01-13 19:22 ` Josh Boyer
2005-01-13 18:55 ` Artem B. Bityuckiy
2005-01-13 19:10 ` Brian Fox
2005-01-13 19:23 ` Artem B. Bityuckiy
2005-01-28 6:08 ` Eric W. Biederman
2005-01-13 7:54 ` David Woodhouse
2005-01-13 8:25 ` Artem B. Bityuckiy
2005-01-13 15:09 ` Jörn Engel
2005-01-12 18:10 ` Jörn Engel
2005-01-12 18:27 ` Thomas Gleixner
2005-01-12 18:40 ` Jörn Engel
2005-01-12 18:42 ` David Woodhouse
2005-01-12 18:43 ` Artem B. Bityuckiy
2005-01-12 19:16 ` Thomas Gleixner
2005-01-12 19:44 ` Jörn Engel
2005-01-12 19:53 ` Thomas Gleixner
2005-01-12 20:06 ` Jörn Engel
2005-01-12 18:33 ` Artem B. Bityuckiy
2005-01-12 18:43 ` Jörn Engel
2005-01-12 18:45 ` Artem B. Bityuckiy
2005-01-12 18:58 ` Artem B. Bityuckiy
2005-01-12 19:50 ` Jörn Engel
2005-01-13 14:49 ` Artem B. Bityuckiy
2005-01-13 15:05 ` Artem B. Bityuckiy
2005-01-13 15:17 ` Jörn Engel
2005-01-13 15:22 ` Artem B. Bityuckiy
2005-01-13 15:40 ` Jörn Engel
2005-01-13 15:49 ` David Woodhouse
2005-01-13 15:53 ` Artem B. Bityuckiy
2005-01-13 16:13 ` Jörn Engel
2005-01-13 16:16 ` Artem B. Bityuckiy
2005-01-13 16:21 ` Jörn Engel
2005-01-13 16:22 ` Artem B. Bityuckiy
2005-01-13 16:21 ` Artem B. Bityuckiy
2005-01-14 13:46 ` Jamey Hicks
2005-01-14 14:16 ` Artem B. Bityuckiy
2005-01-18 15:50 ` Joakim Tjernlund
2005-01-19 13:07 ` Artem B. Bityuckiy
2005-01-19 15:24 ` Jörn Engel
2005-01-19 15:27 ` Artem B. Bityuckiy
2005-01-19 15:32 ` Jörn Engel
2005-01-19 15:51 ` Artem B. Bityuckiy
2005-01-19 16:31 ` Jörn Engel
2005-01-19 19:58 ` Artem B. Bityuckiy
2005-01-20 14:35 ` Jörn Engel
2005-01-20 14:37 ` David Woodhouse
2005-01-20 14:40 ` Jörn Engel
2005-01-20 15:05 ` Artem B. Bityuckiy
2005-01-20 15:27 ` Jörn Engel
2005-01-20 15:37 ` Artem B. Bityuckiy
2005-01-20 16:13 ` Jörn Engel
2005-01-20 16:31 ` Artem B. Bityuckiy
2005-01-20 16:41 ` Jörn Engel
2005-01-20 17:08 ` Artem B. Bityuckiy
2005-01-20 17:33 ` Jörn Engel
2005-01-20 17:57 ` Artem B. Bityuckiy
2005-01-21 12:44 ` Jörn Engel
2005-01-21 13:13 ` Artem B. Bityuckiy
2005-01-21 13:42 ` Jörn Engel
2005-01-21 13:52 ` Artem B. Bityuckiy
2005-01-21 14:00 ` Jörn Engel
2005-01-21 14:04 ` Artem B. Bityuckiy
2005-01-25 10:51 ` Jörn Engel
2005-01-25 10:56 ` David Woodhouse
2005-01-25 11:13 ` Jörn Engel
2005-01-21 14:30 ` Josh Boyer
2005-01-21 22:33 ` Jared Hulbert
2005-01-21 22:46 ` Jared Hulbert
2005-01-21 23:54 ` Josh Boyer
2005-01-22 13:03 ` Artem B. Bityuckiy
2005-01-22 22:04 ` David Woodhouse
2005-01-23 10:03 ` Artem B. Bityuckiy
2005-01-23 10:08 ` Artem B. Bityuckiy
2005-01-23 11:04 ` David Woodhouse
2005-01-23 11:55 ` Artem B. Bityuckiy
-- strict thread matches above, loose matches on Subject: below --
2004-12-16 13:20 Joakim Tjernlund
2004-12-16 14:27 ` Artem B. Bityuckiy
2004-12-16 14:45 ` Joakim Tjernlund
2004-12-16 14:50 ` Artem B. Bityuckiy
2004-12-16 15:00 ` Joakim Tjernlund
2004-12-16 17:53 ` Jörn Engel
2004-12-16 18:42 ` Artem B. Bityuckiy
2004-12-16 19:15 ` Jörn Engel
2004-12-16 19:49 ` Jörn Engel
2004-12-16 19:58 ` Joakim Tjernlund
2004-12-16 20:46 ` Jörn Engel
2004-12-16 20:02 ` Joakim Tjernlund
2004-12-16 20:37 ` Thomas Gleixner
2004-12-16 20:51 ` Jörn Engel
2004-12-16 21:02 ` Thomas Gleixner
2004-12-16 21:06 ` Joakim Tjernlund
2004-12-16 21:22 ` Jörn Engel
2004-12-16 22:06 ` Joakim Tjernlund
2004-12-17 10:25 ` Jörn Engel
2004-12-17 10:44 ` Joakim Tjernlund
2004-12-17 10:56 ` Artem B. Bityuckiy
2004-12-17 10:46 ` jasmine
2004-12-17 11:01 ` Artem B. Bityuckiy
2004-12-17 11:19 ` Joakim Tjernlund
2004-12-18 16:09 ` Jörn Engel
2004-12-18 16:26 ` Joakim Tjernlund
2004-12-18 16:52 ` Jörn Engel
2004-12-17 11:10 ` Joakim Tjernlund
2004-12-17 11:20 ` Artem B. Bityuckiy
2004-12-22 13:36 ` Artem B. Bityuckiy
2004-12-22 14:03 ` Jörn Engel
2004-12-22 14:44 ` Artem B. Bityuckiy
2004-12-22 15:14 ` Jörn Engel
2004-12-22 15:25 ` Artem B. Bityuckiy
2004-12-22 16:08 ` Jörn Engel
2004-12-22 20:22 ` xemc
2004-12-22 20:43 ` xemc
2004-12-22 20:49 ` Jasmine Strong
2004-12-22 15:30 ` Joakim Tjernlund
2004-12-22 15:37 ` Artem B. Bityuckiy
2004-12-22 15:47 ` Joakim Tjernlund
2004-12-22 15:56 ` Artem B. Bityuckiy
2004-12-22 16:09 ` Jörn Engel
2004-12-22 16:17 ` Artem B. Bityuckiy
2004-12-22 16:43 ` Joakim Tjernlund
2004-12-22 16:46 ` Artem B. Bityuckiy
2004-12-22 17:26 ` Jörn Engel
2004-12-22 18:14 ` xemc
2004-12-22 18:20 ` Artem B. Bityuckiy
2004-12-23 13:52 ` Jörn Engel
2004-12-23 17:02 ` Artem B. Bityuckiy
2005-01-07 11:10 ` Artem B. Bityuckiy
2005-01-07 11:09 ` David Woodhouse
2005-01-07 11:27 ` jasmine
2005-01-07 11:43 ` Artem B. Bityuckiy
2005-01-07 14:23 ` Artem B. Bityuckiy
2005-01-07 14:27 ` jasmine
2005-01-07 14:33 ` Artem B. Bityuckiy
2005-01-07 14:37 ` jasmine
2005-01-07 14:43 ` Artem B. Bityuckiy
2005-01-07 14:55 ` jasmine
2005-01-07 15:20 ` Artem B. Bityuckiy
2005-01-07 15:24 ` jasmine
2005-01-07 15:28 ` Artem B. Bityuckiy
2005-01-07 15:31 ` jasmine
2005-01-07 15:32 ` Artem B. Bityuckiy
2005-01-07 17:57 ` Artem B. Bityuckiy
2005-01-07 14:50 ` Artem B. Bityuckiy
2005-01-07 14:31 ` Artem B. Bityuckiy
2005-01-06 10:08 ` Artem B. Bityuckiy
2005-01-08 20:14 ` Jörn Engel
2005-01-09 11:39 ` Artem B. Bityuckiy
2005-01-10 14:24 ` Jörn Engel
2004-12-22 15:59 ` jasmine
2004-12-22 16:19 ` Jörn Engel
2004-12-22 16:21 ` Artem B. Bityuckiy
2004-12-22 15:56 ` Jörn Engel
2004-12-22 16:39 ` Joakim Tjernlund
2004-12-22 17:33 ` Jörn Engel
2004-12-17 11:20 ` Jörn Engel
2004-12-18 12:23 ` Artem B. Bityuckiy
2004-12-21 14:45 ` Artem B. Bityuckiy
2004-12-21 16:03 ` Jörn Engel
2004-12-17 11:33 ` David Vrabel
2004-12-17 15:34 ` Joakim Tjernlund
2004-12-18 16:14 ` Jörn Engel
2004-12-18 16:25 ` Joakim Tjernlund
2004-12-18 16:39 ` Jörn Engel
2004-12-18 17:10 ` Joakim Tjernlund
2004-12-18 17:19 ` Jörn Engel
2004-12-18 17:51 ` Joakim Tjernlund
2004-12-18 17:59 ` Jörn Engel
2004-12-18 18:13 ` Joakim Tjernlund
2004-12-19 3:05 ` Jörn Engel
2004-12-18 18:09 ` Joakim Tjernlund
2004-12-21 14:38 ` Jörn Engel
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=6934efce050112084111ef438c@mail.gmail.com \
--to=jaredeh@gmail.com \
--cc=dedekind@infradead.org \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.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.