From: llandre <r&d2@dave-tech.it>
To: "Korolev, Alexey" <alexey.korolev@intel.com>
Cc: linux-mtd@lists.infradead.org, jamie@shareable.org,
mattjreimer@gmail.com
Subject: Re: JFFS2: file contents in case of data CRC error
Date: Sat, 02 Feb 2008 17:32:57 +0100 [thread overview]
Message-ID: <47A49B39.5010903@dave-tech.it> (raw)
In-Reply-To: <523F3D8D8C97554AA47E53DF1A05466A01880BCA@nnsmsx411.ccr.corp.intel.com>
> Ahh. The temperature tests. That explains a lot.
> Probably device worked improperly in the test but test did not turn off
> device when NAND become unworkable. As result JFFS2 did not detect the
> problem of broken CRC on mount but did it on attempt to read the broken
> data and printed error message.
I was told by the customer that before starting the temperature test
several files have been copied on NAND. During the temperature test the
processor never accessed these files on NAND. Once the test has been
completed, the files on NAND have been read back and compared to the
original ones.
> So JFFS2 performed scan on read - found CRC error in node
> -> JFFS2 marked node to be obsolete
Sure. This is the code snippet in function jffs2_get_inode_nodes:
if (crc != je32_to_cpu(node.i.data_crc)) {
printk(KERN_NOTICE "jffs2_get_inode_nodes(): Data CRC failed on node
at 0x%08x: Read 0x%08x, calculated 0x%08x\n",
ref_offset(ref), je32_to_cpu(node.i.data_crc), crc);
jffs2_mark_node_obsolete(c, ref);
spin_lock(&c->erase_completion_lock);
continue;
...
> -> As result hole in the file has been formed.
> -> You read 0x0 in the middle of the file.
I can't find the function that, in case of obsolete node, zeroes the
chunk of data passed to user space. Can you?
> I think nobody considered such tests before. I am not sure if any file
> system may be reliable in such a case with temperature tests.
Hmm ... I don't think the environmental condition may influence JFFS2
behaviour. The NAND used in the test is industrial grade so it is
guaranteed by manufacturer that it works in -40/+85 degC range. JFFS2
clearly does not anything about environment temperature. On the other
hand I'm wondering if temperature variation caused multiple bit flipping
in one NAND block that MTD was not able to correct and this led to the
problem we are talking about.
--
llandre
DAVE Electronics System House - R&D Department
web: http://www.dave.eu
email: r&d2@dave-tech.it
next prev parent reply other threads:[~2008-02-02 16:33 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-31 16:54 JFFS2: file contents in case of data CRC error llandre
2008-01-31 19:19 ` Korolev, Alexey
2008-02-01 14:00 ` llandre
2008-02-01 15:53 ` Korolev, Alexey
2008-02-01 17:43 ` Jamie Lokier
2008-02-02 17:11 ` llandre
2008-02-04 21:32 ` Jamie Lokier
2008-02-02 16:32 ` llandre [this message]
2008-02-04 14:25 ` Korolev, Alexey
2008-01-31 19:22 ` Jffss2_write_super erasing all the blocks Nikhil Bansal (nikbansa)
2008-02-02 19:30 ` SV: " Joakim Tjernlund
2008-01-31 19:42 ` JFFS2: file contents in case of data CRC error Matt Reimer
2008-01-31 22:57 ` Jamie Lokier
2008-02-01 14:01 ` llandre
2008-02-01 14:01 ` llandre
2008-02-02 17:03 ` llandre
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=47A49B39.5010903@dave-tech.it \
--to=r&d2@dave-tech.it \
--cc=alexey.korolev@intel.com \
--cc=jamie@shareable.org \
--cc=linux-mtd@lists.infradead.org \
--cc=mattjreimer@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox