Re: [Yaffs] Re: yaffs2 status --> mount speed up

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
Old-Topics: [Yaffs] Re: yaffs2 status
Subject: Re: [Yaffs] Re: yaffs2 status --> mount speed up
With the interest in YAFFS speed, I thought I'd take an opportunity to
pre-announce some YAFFS2 speed-ups that are in the pipe.

YAFFS2 is generally faster than YAFFS1 when executing for two reasons:
* It does not program deletion markers. This makes things faster when chunks
are reprogrammed.
* Chunk/page size is bigger therefore faster programming.

YAFFS2 does not delete chunks (== pages) like YAFFS1 does and instead figures
out the system state by scanning the blocks in their allocation order. This
means that a deleted file would get formed then deleted, all of which take
extra (wasted) time. This means that YAFFS2 is sometimes quite a bit
slower than YAFFS1 for mounting, depending on the state of NAND.

Someone using YAFFS2 suggested a change to the scanning policy to speed this
scanning up. Instead of scanning forwards in time the proposal was to scan
the blocks backwards (ie. most recent allocated block first). Consider the
case of the deleted file: we see the file is deleted and then just ignore any
further references to that file.

Simultaneously with this, I also added an optimisation to store some extra
info in the tags for object header chunks. This means that we no longer need
to read the whole chunk to get most of the object header info needed during
mount scanning.

Together these modifications have shown some huge speedups, typically much
faster than yaffs(1). They also pave the way for adding "checkpointing" etc.

These speedups are not yet in CVS, but I intend to check them in this week.

-- Charles