Great jffs2 speedup

Artem B. Bityutskiy dedekind at yandex.ru
Thu Sep 29 06:21:21 EDT 2005


Jörn Engel wrote:
> On Thu, 29 September 2005 13:59:53 +0400, Artem B. Bityutskiy wrote:
>>>The first way stores a reference in the first (usable) erase block. (If
>>>it is not free, it moves the data to somewhere else, and reserve). It
>>>stores only a reference to it at umount, and a "mount-log" at mount
>>>(just to mark that it is invalid in case of unclean umount). It means
>>>one page write at mount, one page write at umount. If the erase block
>>>consist 16 pages than it is necesarry to erase the first erase block
>>>after every 8 mounts. So the typical timelife of it is about 8*100.000
>>>mounting, I think it is big enough.
>>
>>This spoils the overall wear-leveling, which is no good. But should work.
> 
> 
> Dummy argument.  Wear levelling is just a means to avoid the real
> problem - early wear-out of specific blocks.  Spending one erase block
> for cs is pretty sane, as long as this block doesn't wear-out well
> before the rest.
"As long as" is the essential part. If it is true - nice. In general 
this can't be true. And, anticipating your remark, I agree that it still 
may have its place. :-)

>>>The other way is to specify the cenratlized summary information with
>>>mount option (not to use the first erase block to store this pointer).
>>>In this case some other system have to store it (typically on an other
>>>file system), and the new location after umount can be read using sysfs.
>>
>>This also spoils wear-levelling...
> 
> 
> How?
The same way as above unless you evenly rotete the CS eraseblock. And if 
("as long as" == TRUE) then all is ok.

> CS definitely doesn't solve all problems and it trades the mount time
> for additional writes - plus the special first erase block.  Still, it
> may have its place.
Thanks, I have no doubts. :-)

-- 
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.





More information about the linux-mtd mailing list