This is the mail archive of the
mailing list for the eCos project.
Re: The performance issue of FAT16 file system?
- From: Nick Garnett <nickg at ecoscentric dot com>
- To: "James Jiao" <jiaoxf at hellocq dot net>
- Cc: "ecos-discuss at sources dot redhat dot com" <ecos-discuss at sources dot redhat dot com>
- Date: 21 Feb 2004 14:30:36 +0000
- Subject: Re: [ECOS] The performance issue of FAT16 file system?
- References: <E1AuU1e-0000AO-2W@lon1-hub.mail.demon.net>
"James Jiao" <email@example.com> writes:
> I am a user of eCos FAT16 file system package, we ported the V85X CF
> disk package to another platform. But strange problems occur:
> 1. We run the fileio1 test for the FAT file system, the chdir(".")
> test failed!
How does it fail? does the chdir() itself fail, or is it the
checkcwd() ? Do the subsequent operations work?
> 2. When doing the maxfile() test, the file writting performance
> degrades quickly, that is to say, with the the increase of file
> length, the writting speed decereases quickly! At about 8 Megabytes
> file length's time, it costs the system about 5 seconds to write
> 100kilo-bytes while at the beginning of file creation, it only cost
> the system less than 1 second to write 100kilo-bytes.
This is a consequence of the FAT filesystem format. File clusters are
chained linearly through the FAT table. Each time a new cluster is
added, the chain must be followed down to the end. Beyond a certain
size there is not enough space in the cache to contain the entire FAT
table and it starts to turn over the entire cache each time.
You can try increasing the size of the cache, but this just delays the
point at which thrashing occurs, rather than eliminates it.
Nick Garnett eCos Kernel Architect
http://www.ecoscentric.com The eCos and RedBoot experts
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss