[Yaffs] Checkpointing changes, easier to use.

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
Subject: [Yaffs] Checkpointing changes, easier to use.
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