[Yaffs] Checkpointing changes, easier to use.

Charles Manning manningc2 at actrix.gen.nz
Wed May 17 10:58:16 BST 2006


Hi yaffsers

One problem that was identified with the original checkpointing was that it 
requires the use of a partitioning scheme to break off a chunk of storage for 
the checkpoint data. This is fiddly (needs setting extra parameters), is 
wasteful (need to cut off a bigger area than you typically need), and various 
other issues.

Thus, I spent some of the last week or so changing the checkpoint allocation 
to a "non-partitioned" mechanism using blocks in the main data area. This 
does away with the above problem but adds a very slight overhead to seach for 
the checkpoint data. This overhead is extremely small in my testing.

The speedup is pretty impressive. So far I have two data points. If anyone 
else can provide some info I'd like to see it:

200MHz ARM with 128MB flash, almost full with 2k files.

Mount with no checkpoint: ~4 secs
Mount with partitioned checkpoint: ~0.25 secs
Mount with non-partitioned checkpoint: ~0.3 secs

180MHz ARM device with 2GBytes flash and hot-rodded NAND driver

Mount with no checkpointing: many tens of seconds
Mount with partitioned checkpoint: sub second
Mount with non-partitioned checkpoiint: ... we'll here soon.

-- Charles



More information about the yaffs mailing list