Fw: FAT-FS HD write speed

Eugeny S. Mints Eugeny.Mints at oktet.ru
Thu Jan 16 12:24:30 UTC 2003

Hi, all!

Sorry for those, who has already got this letter :) - I need
to resend it, because it hasn't reatch rtems-user mail list :(

On Sat, 11 Jan 2003, Peter Mueller wrote:

> Eugeny, what write figures do you measure when writing a dummy file to a
> real ide disk? Thomas has
> measured 78KByte/sec on his 68040 system with flash disk which is
> significant higher than my results on
> a real ide disk (5.5kb/s).
Well, I have some result at least.

I use the followin hrdware: CPU SH4 + custom IDE controller + implemented in
FPGA + 850 Mb Samsug harddisk. Unfortunately I'm not sure about CPU frequency -
I suppose 80 or 100MHz.

test for PURE driver. Open harddisk as device and write direct to the device
by 'write' system call. In this case DOSFS is excluded so there is no
filesystem overhead.
a) writing a big enough data block at one system write call. big enough
means >> 512 bytes. average speed: 554Kb/s
b) writing 512bytes longs data blocks aligned to sector boundary ( i.e.
writing starts from positions 512*k, where k=0,1,2...)
average speed:  554Kb/s ( the same as in case a)
c) writing  short data blocks or without aligned to sector boundary.
average speed: 30Kb/s . This assumes problems in current libblock
We will working on it.

Include dosfs filesystem overhead - writing data to the file on mounted
fat16 partition. Very low speeds -but I suppossed this - in current dosfs
implementation there is no any optimization concerning FAT.

average speed 30Kb/s

In the tests the following tasks had the followint priorities:
user task 140, libblock swapout task 15, ATA driver task 110.

All speeds are in poll mode, interrupt mode gives a little benefit - about
10-20 Kb/s.

I also want underline that libblock may be easy modified for getting benefits
from multisector writing, but current implementation dosn't use such
functionaltiy. But I don't think that multisector writing functionality may
improve speed significently - I think also 10-50 Kb/s in average.

So as result - libblock code possbly has problems discovered by Test1,c;
dosfs may be improved for increasing filesystem overhead. Currently, for
writing a big blocks of data it is sensible to use raw writing ( writing
directly to device).
Well, we've discovered a lot of things to do :))

Eugeny S. Mints
1 Ulianovskaya st., Petergof, St.Petersburg, 198904 Russia
Phone: +7(812)428-4384 Fax: +7(812)327-2246
mailto:Eugeny.Mints at oktet.ru

More information about the users mailing list