data loss on jffs2 filesystem on dataflash
Artem B. Bityutskiy
dedekind at yandex.ru
Tue Sep 20 11:11:29 EDT 2005
Peter Menzebach wrote:
> Artem B. Bityutskiy wrote:
>> But In your logs, I saw that you have *write buffer* size = 8*1056!
>> Write buffer size is another thing. It is the minimal flash IO unit.
>> JFFS2 assumes that it cannot write 1 byte or 100 bytes, it assumes that
>> it can only write 'write buffer size' bytes. And the goal of the write
>> buffer is to accumulate many small JFFS2 writes in RAM, and when the
>> write buffer becomes full, it is flushed to flash.
>> So, in your case, make write buffer = Data Flash page size = 1056.
>>
> How can this reported from the flash device to the mtd layer and then to
> jffs2?
> In the code, I see at the moment only, that in the device driver
> mtd_info.erasesize is set, later on in jffs2 I see, that this has become
> the sector_size, which becomes then the wbuf_pagesize.
I see, in jffs2_dataflash_setup(): c->wbuf_pagesize = c->sector_size;
I don't know why Andrew Victor set wbuf size to Sector Size. May be
you'll ask him?
Ok, theoretically this should work as well. But having smaller wbuf size
is better.
> Is here mtd_info.ooblock to be set?
Yes, I in case of NAND we use this, I guess you may use it as well ...
May be it is time to introduce a 'writesize' field to mtd_info, instead
of 'oobblock' ... ?
--
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list