[Yaffs-archive] Re: [YAFFS] slow performance

Edward J. Lee noshel@idis.co.kr
Wed, 30 Apr 2003 18:48:25 +0900


WOW. It works :)
Thanks a lot, Charles.
Now the operation takes about 3 seconds,
which is a quite reasonable performance!

Charles Manning wrote:

>On Wednesday 30 April 2003 00:22, Edward J. Lee wrote:
>  
>
>>Hi YAFFSers, been a while.
>>
>>No problems were found using YAFFS but now I'm suffering by extra-slow
>>performance.
>>My program formerly stored user configurations in HDDs, now we're
>>storing it in
>>NAND. As the saving part involves a great deal of fopen()s, fseek()s,
>>fwrite()s, and etc.,
>>It took a while (but not TOO much) storing it in HDDs. But on YAFFS, the
>>time
>>grew catastrophically, and it takes approx. 15 secs saving 62KB!
>>
>>Does anyone have any ideas that might help me out?
>>    
>>
>
>This is the sort of thing that will happen if your writes and reads cannot 
>use the caching effectively.
>
>YAFFS works directly on the flash with no buffering between the file system 
>and the flash. There is, however, buffering in the form of the normal kernel 
>cache between YAFFS and the applicaion.
>The caching is flushed out by any close or flush. On a close or flush, the 
>file's ObjectHeader will also be updated, costing another page write.
>
>eg. writing a 64kB file as follows would be very slow:
>
>for(i = 0; i < 64000; i++)
>{
> h = open("xx",...O_APPEND);
>write(h,&b,1);
>close(h);
>}
>
>would cost two page writes for every useful byte written.
>
>I expect you're not being as cruel as this, but check for places where you 
>are doing unnecessary flushes and closes. 
>
>If you suspect the Linux cache might not be effective for your purposes (or 
>would like to play :-)), you might also try the caching built in to YAFFS. 
>This caching is normally used only by YAFFS direct and WinCE (which do not 
>have OS-level caching).
>
> This can be enabled by adding the line 
>  dev->nShortOpCaches=10; // or some number <=20;
>somewhere around line 1248 in yaffs_fs.c
>
>On WinCE devices, this vastly improved situations where short writes were 
>being used (by a factor of 15 or so).
>
>-- Charles
>
>
>
>
>
>
>---------------------------------------------------------------------------------------
>This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
>If mailing list membership is no longer wanted you can remove yourself from the list by 
>sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" 
>(without the quotes) as the subject. 
>
>
>
>  
>



---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by 
sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" 
(without the quotes) as the subject.