JFFS3 & performance
Artem B. Bityuckiy
dedekind at infradead.org
Thu Jan 13 10:22:38 EST 2005
On Thu, 13 Jan 2005, [iso-8859-1] Jörn Engel wrote:
> On Thu, 13 January 2005 15:05:16 +0000, Artem B. Bityuckiy wrote:
> > On Thu, 13 Jan 2005, Artem B. Bityuckiy wrote:
> >
> > > See the benefits:
> > > 1. We are able to use weaker then CRC32 checksums and still be good in
> > > detecting wrong due to unclean reboot nodes.
> > > 2. We have principal ability to distingush between nodes corrupted due to
> > > flash problems and due to unclean reboots.
> > > This is extreemly good do be able to distinguish. (JFFS2 has no such
> > > ability).
>
> Right, very nice attributes.
>
> > > Thoughts?
> > Hmm, only one small note, putting CRC to the end does not allow us to
> > recognize unclean reboots and flash media corruptions :-) But we still may
> > do this putting some majic bitmask to the end of nodes.
>
> static uint32_t jffs3_checksum(...)
> {
> static uint32_t ret = do_jffs3_checksum(...);
> if (ret == 0xffffffff)
> return 0;
> return ret;
> }
>
> When reading the node, simply compare the checksum to 0xffffffff. If
> it matches, we know that
> a) the checksum is wrong and
> b) it was due to incomplete write, not flash corruption.
>
> Adler32 has the nice property that 0xffffffff is an impossible
> checksum by design already, so the above code wouldn't be necessary.
Yes, I thought so either. But imagine due to unclean reboot the last CRC
was not written completely. this is the problem.
>
> Jörn
>
> --
> ...one more straw can't possibly matter...
> -- Kirby Bakken
>
--
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list