Re: [Yaffs] Optimizing the number of reads and writes to fla…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: Daniel Gustafsson, yaffs
Subject: Re: [Yaffs] Optimizing the number of reads and writes to flash
I think some of your questions might not have been answered properly.

On Tuesday 12 October 2004 01:46, Daniel Gustafsson wrote:
> I am using yaffs/direct and I want to reduce the reads and writes towards
> the flash to an absolute minimum. I do not want any verifications of flash
> etc. I don not want to use ECC.


If you do not want to use ECC, then set useNANDECC. This means that YAFFS
will not do the ECC checks on data and will rely on the media doing any ECC
checks itself. This can be used in situations where you want to avoid ECC
completely (eg. the ram-disk in int yaffscfg.c:yaffs_StartUp(void))

> Further more I am interested in some documetation what happens
> (reads/writes to flash) when performing some simple fs operations like
> read/write/open etc.


The biggest number of reads is on mount to scan the media.

Otherwise here's a brief run-down:
open(): Reads/writes nothing unless this is a file creation. If it is a file
creeation then write a new object header.
flush()/close(): If the file is modified then writes an object header. Also
flushes data in cache. If this is an overwrite, then needs to read and
overwrite old data.
read(): Reads data unless it is already in cache.
write(): Small writes (sub-page) go into cache otherwise go to flash.

unlink()/delete(): writes an object header to say that the object has been
deleted. Data is cleaned up by garbage collection.

Garbage collection:
Reads data in block being collected. Writes useful stuff back to flash. Erase
flash (2ms).

-- Charles