From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: "Artem B. Bityuckiy" <dedekind@infradead.org>
Cc: Linux MTD mailing list <linux-mtd@lists.infradead.org>
Subject: Re: JFFS3 & performance
Date: Sat, 8 Jan 2005 21:14:42 +0100 [thread overview]
Message-ID: <20050108201442.GA11728@wohnheim.fh-wedel.de> (raw)
In-Reply-To: <Pine.LNX.4.58.0501060954230.5460@phoenix.infradead.org>
On Thu, 6 January 2005 10:08:16 +0000, Artem B. Bityuckiy wrote:
> On Thu, 23 Dec 2004, [iso-8859-1] Jörn Engel wrote:
>
> > NOR is pretty reliable anyway, so we could just go
> > without a checksum.
>
> Can not agree with you. Checksums are requred even for very reliable NOR
> flashes to be able to detect broken nodes which can appear after unclean
> reboots.
> My understanding is that this is the most important thing why CRCs are
> needed. The media corruption is of lesser priority. From this perspective
> we may easilly use any weaker (then CRC32) checksum, but this checksum
> must be good in detecting partially written nodes.
You win. So I'll go and recheck adler32 wrt. detecting partially
written nodes. There's always the a-priori chance of missing a
change, so we should try to cut that down as far as possible. Since
adler32 has a bit less than 32 bits of non-redundant information, we
might want to cheat a little:
static uint32_t adler32_tailcheck(const void *buf, size_t len)
{
uint32_t end = *(uint32_t*) (buf + len - 4); /* last word */
return adler32(end, buf, len);
}
By using the last word of data as initial value, we put extra emphasis
on it. For long data (full data nodes), this shouldn't make a
difference. On the 12-Byte header, it might make a big one.
> > Correct. Simple parity might be a nice reference as well. It is
> > really bad at catching even-bit errors (2,4,6,...), but it's fast.
>
> And please, bear in mind that if we encounter ECC error, this means error
> somwhere in the page. But this page may contain several JFFS3 nodes and we
> may recover some of them. So, having per-node CRC is good idea even if
> there is ECC (ECC is per-page).
> For example, the board may have been rebooted uncleanly during writing ECC
> (the data was already written, ECC is written after data). In this case we
> may have correct data but just wrong ECC. Having CRCs, we might recover
> all JFFS3 nodes.
Correct, although I don't care too much. If you pull the power while
writing, you'll lose data. Yes, with some care you lose less data,
but some extra milliseconds of power would have done the same.
Jörn
--
Victory in war is not repetitious.
-- Sun Tzu
next prev parent reply other threads:[~2005-01-08 20:14 UTC|newest]
Thread overview: 196+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-16 13:20 JFFS3 & performance 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 [this message]
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
-- strict thread matches above, loose matches on Subject: below --
2005-01-11 12:29 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
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
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=20050108201442.GA11728@wohnheim.fh-wedel.de \
--to=joern@wohnheim.fh-wedel.de \
--cc=dedekind@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox