All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <michal.simek@petalogix.com>
To: linux-mtd@lists.infradead.org
Cc: dwmw2@infradead.org, John Williams <john.williams@petalogix.com>
Subject: Unaligned jffs2 dnode address - tested by nandsim
Date: Thu, 19 May 2011 13:42:36 +0200	[thread overview]
Message-ID: <4DD5022C.9060205@petalogix.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3126 bytes --]

Hi,

I have reached one problem with jffs2 fs ecc tested by nandsim on Microblaze.

I am getting the fault like this.
# md5sum /mnt/delete.png
uncorrectable error :
uncorrectable error :
uncorrectable error :
uncorrectable error :
uncorrectable error :
mtd->read(0xcda bytes from 0xc044) returned ECC error
Data CRC 3bcfd461 != calculated CRC e6038cde for node at 0000c000
uncorrectable error :
uncorrectable error :
uncorrectable error :
uncorrectable error :
uncorrectable error :
mtd->read(0xcda bytes from 0xc044) returned ECC error
Data CRC 3bcfd461 != calculated CRC e6038cde for node at 0000c000


The main problem is that there is one address with is not aligned which caused 
that ecc counting uses wrong data.

I also found in nand_ecc code that there is written
"It is assumed that the buffers are aligned." which is definitely wrong for my 
case. I expect that it is 4B alignment.

I generated jffs2 filesystem by the following command (mkfs.jffs2 revision 1.60)
mkfs.jffs2 -n -b -e 16KiB -t -d <folder> -o test.jffs2

test.jffs2 is also attached.

I use these command to mounted:
flash_eraseall /dev/mtd0
nandwrite -p /dev/mtd0 /var/ftp/test.jffs2
mount -t jffs2 mtd:"NAND simulator partition 0" /mnt

After enable some jffs2 debug message I have got the log.

[JFFS2 DBG] (74) jffs2_add_tn_to_tree: insert fragment 0x00-0x1000, ver 1 at 
00000900
[JFFS2 DBG] (74) jffs2_lookup_tn: root c0c37df8, offset 0
[JFFS2 DBG] (74) jffs2_add_tn_to_tree: 'this' found 0x1000-0x2000 (data)
[JFFS2 DBG] (74) jffs2_add_tn_to_tree: Ponder this ver 2, 0x1000-0x1000
[JFFS2 DBG] (74) read_dnode: After adding ver 1:
[JFFS2 DBG] (74) read_dnode: c78432c0: v 1 r 0x0-0x1000 ov 0
[JFFS2 DBG] (74) read_dnode: c78432e0: v 2 r 0x1000-0x2000 ov 0
[JFFS2 DBG] (74) read_dnode: c7843300: v 3 r 0x2000-0x3000 ov 0
[JFFS2 DBG] (74) read_dnode: c7843320: v 4 r 0x3000-0x364a ov 0
[JFFS2 DBG] (74) read_dnode: c7843340: v 5 r 0x364a-0x4000 ov 0
[JFFS2 DBG] (74) read_dnode: c7843360: v 6 r 0x4000-0x5000 ov 0
[JFFS2 DBG] (74) read_dnode: c7843380: v 7 r 0x5000-0x6000 ov 0
[JFFS2 DBG] (74) read_dnode: c78433a0: v 8 r 0x6000-0x7000 ov 0
[JFFS2 DBG] (74) read_dnode: c78433c0: v 9 r 0x7000-0x7316 ov 0


You see that tn->fn->ofs which is 0x364a which is not aligned. This offset is 
causing

I also tried to disable zlib compression which caused that map has changed and 
it is aligned and there is no problem with ECC computing.
mkfs.jffs2 -n -b -e 16KiB -t -d <folder> -o test-nozlib.jffs2 -x zlib

Have you ever seen this fault with alignment?
I think that the problem is with test.jffs2 generation.
Is there any option to setup that everything is aligned?
Or are you aware about any workaround how to prevent this fault?

I do some testing directly on Microblaze. Generate random files and test them 
and I haven't seen any problem when target read/write data from jffs2 on nand 
with ecc. The problem is only with test.jffs2 generated on host I see this fault.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663

[-- Attachment #2: test.jffs2 --]
[-- Type: application/octet-stream, Size: 41884 bytes --]

[-- Attachment #3: test-nozlib.jffs2 --]
[-- Type: application/octet-stream, Size: 32380 bytes --]

             reply	other threads:[~2011-05-19 11:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-19 11:42 Michal Simek [this message]
2011-05-24  7:33 ` Unaligned jffs2 dnode address - tested by nandsim Michal Simek
2011-05-24  7:33   ` Michal Simek
2011-05-27 14:35   ` Milton Miller
2011-05-27 14:35     ` Milton Miller

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=4DD5022C.9060205@petalogix.com \
    --to=michal.simek@petalogix.com \
    --cc=dwmw2@infradead.org \
    --cc=john.williams@petalogix.com \
    --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.