jffs2 with sync burst mode
Artem B. Bityuckiy
dedekind at yandex.ru
Fri Mar 11 06:15:35 EST 2005
Konstantin Kletschke wrote:
> The "Name CRC failed on node at ..." is away. I populated the root-fs
> root-fs. No problems. But mounting takes ages :)
How much time does "ages" mean ?
Do you stand that it was faster before?
How large is your flash?
Do you have directories with huge files number in it (say, ~ 10000)?
> Whats next? :D
Profiling might help.
Try to put fewver files to your flash and test how quck is it mounted.
> I erased /dev/mtdblock3 with bootloader and
If you erase your flash with flash_eraseall -j it might work a bit faster.
Q: What's -j ?
A: This means that flash_eraseall ought to write special node called
cleanmarker at the beginning of each block.
Q: Why is this better then to erase using my bootloader?
A: your bootloader probably doesn't write cleanmarkers.
Q: What happens if there are no cleanmarkers?
A: Nothing critical. JFFS2 will just re-erase such blocks and put
cleanmarkers itself. This is just time wasting.
Q: Why does JFFS2 re-erase blocks which have no cleanmarkers but contain
all FF (i.e., are erased)?
A: Because it was observed that if the power loss occurs when block is
almost completely erased, there might be "unstable" bits in it. I.e.,
they are read sometimes as "1" and sometimes as "0" (This effect is
described in David Woodhouse's page). Cleanmarker does guarantee that
the block was successfully erased. All FFs don't.
Q: Does this affect mount time?
A: It might, but I guess not very much. The difference is that if there
is clean marker at the beginning of the block, JFFS2 quickly detects
that it is free. Otherwise, JFFS2 scans it trying to find some data,
thus, wasting time.
JFFS2 has problems with mount time but it should be noticable when you
work with relatively large partitions, which isn't very typical for NOR.
If you are sure that the problem is not your slow flash driver, you
might try Ferenc's "summary" patch.
Artem B. Bityuckiy,
More information about the linux-mtd