data loss on jffs2 filesystem on dataflash

Andrew Victor andrew at sanpeople.com
Wed Sep 21 03:21:19 EDT 2005


hi Artem,

> > To reduce the number of erase blocks, JFFS2 may also concatenate a
> > number of erase-blocks in a 'virtual block'.  That is what sector_size
> > and wbuf_pagesize might get set to.
> Yes, right. Albeit this is fixed, this doesn't matter.
> 
> The question is *why you set wbuf size = eraseblock size?

I don't.  I set the wbuf_pagesize to the sector_size.
(Which at that time was 1 or more eraseblocks.  And I think sector_size
is/was the smallest unit of flash that JFFS2 would ever erase/write).


> In case of
> DataFlash, I assume, wbuf_size = DataFlash page size (the minimal
> writing unit). Eraseblock size must be = DataFlash block size.

Maybe there is some confusion here.  Dataflash has both 'pages' and
'blocks'.  With a 'page' being the smallest unit that can be
erased/written.

The MTD-device's erasesize is therefore set to the smallest unit - the
Dataflash page size (528 or 1056, depending on device)


> Yes, it is theoretically correct to set write buffer size = eraseblock
> size, but this is *really* bad. This is wasteful (imagine, any sync will
> will add lots of padding and waste the whole eraseblock).

Dataflash does not use Padding nodes.


> And, the size wbuf has nothing to do with "concatenate number of
> eraseblocks", whare is the relation?

Maybe it would be more optimal to set the wbuf_size to eraseblocksize? 
I don't know.

I do know that JFFS2-on-Dataflash was working fine when I committed the
changes in February.


Regards,
  Andrew Victor






More information about the linux-mtd mailing list