Great jffs2 speedup
havasi at inf.u-szeged.hu
Thu Sep 29 05:52:57 EDT 2005
Jörn Engel wrote:
>>At this moment: yes, that is the only way. If more people need it we can
>>implement a special extension for EBS. (but it takes time) This
>>extension would make possible if user set a special mount option the
>>system will convert all the non-summarizied erase blocks to summarized.
>>It would take a lot of time (and need some percent free space), but only
>>at that mount.
>Just fyi - such a patch should not get merged into cvs. Long-term,
>the demand for it will approximate zero, so there is no good
>justification for extra code.
Yes, I agree.
>>Or you may try our other technique: CS (Centralized Summary). That
>>technique does not requie user space tool, and cause very fast mount
>>after any clean umount. (if the umount was not clean the speed will be
>>same as before). It is not the part of the official JFFS2 now, we would
>>like to little bit rewrite before bringing on it. But it works already -
>>use the variant which stores the reference in the first erase block. You
>>can download it from our webpage ( http://www.inf.u-szeged.hu/jffs2/ ).
>How is the CS information found during mount? Special location?
There is two way (can be selected via kernel config):
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.
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.
More information about the linux-mtd