On Tuesday 23 September 2003 14:08, Yang , Frankie [???] wrote:
> Hi Charles,
> I write a test program to read nand device through mtd char device. And the
> read speed rate is 8M/sec. This means the nand driver's read speed rate is
> 8M/sec without YAFFS. But mount yaffs on /dev/mtdblock/0, the read speed
> rate just 1.2M/sec. Then, I enable CONFIG_YAFFS_USE_GENERIC_RW. This allows
> YAFFS to use the Linux page cache. The read speed rate is still 1.2M/sec.
> Now, I change the PAGE_CACHE_SHIFT to 10 and the the PAGE_CACHE_SIZE is
> 1024 (the original PAGE_CACHE_SHIFT is 12 and PAGE_CACHE_SIZE is 4096), the
> read speed rate increase to 3.6M/sec, but the data can't pass md5sum
> check.( I verify whether the data is correct or not but md5sum in busybox).
> About this test result, what's your comment? How do you evaluate YAFFS
> performance?? Thanks in advance !!
I have not ever run YAFFS performance tests on Linux myself. I have done
performance tests under WinCE. I don't think I have published any performance
numbers except those in the YAFFS2 comparison document and those are only
comparitive performance numbers (ie. comparing YAFFS2 to YAFFS1). The numbers
given there only reflect the performance in the file system itself without
considering other factors like the Linux kernel and the test program.
Changing PAGE_CACHE_SHIFT in yaffs is likely to cause various problems. The
performance is likely to appear faster because you're reading only part of a
page. This is probably why you're getting corrupted data.
One thing I notice in your settings is that you're using
CONFIG_YAFFS_USE_OLD_MTD=y. This forces seperate reads and writes for the
data and oob flash areas. If you can use the new mtd interface you should get
most of them combined and hence get improved performance.
One further area where there is a difference between mtdchar and YAFFS
throughput is the ECC calculation overhead.
I hope that gives you some things to play with.
Can any other folks, particularly those with similar hardware platforms, give
some hints?
-- Charles
>
> -----Original Message-----
> From: Charles Manning [mailto:manningc2@actrix.gen.nz]
> Sent: Saturday, September 20, 2003 8:55 AM
> To: Yang , Frankie [·¨±s·]; yaffs@toby-churchill.org
> Subject: Re: about YAFFS performance
>
> Hello
>
> I was away for a few days so I did not respond to your earlier email.
>
> The overheads in YAFFS associated with reading are very low and performance
> is mainly tied in with reading NAND and verifying. Thus performance is very
> much dependent on various hardware issues, most important are:
> * Transfer speed (dependent on the chip select etc timing).
> * What verification and ECC you have enabled (and how fasr the CPU can
> crank the data).
>
> I would suggest you first check the read cycle timing on your NAND device.
> Most NAND can cycle in 50nS.
>
> You might also want to enable CONFIG_YAFFS_USE_GENERIC_RW. This allows
> YAFFS to use the Linux page cache.
>
> -- CHarles
>
> On Wednesday 17 September 2003 18:37, frankie-yang wrote:
> > Hi lists,
> > I am now working MIPS 100MHz CPU on linux 2.4.20 with new mtd and YAFFS
> > (latest code from CVS) running on real nand(samsung 64M) . While I mount
> > /dev/mtdblock/0 with YAFFS on /mnt/yaffs and write a program to test its
> > performance, then the speed rate is not good. The read speed rate just
> > 1.1Mbytes per seconds! This is not the same with the documentation
> > mentioned on CVS.
> >
> > Any one can tell me why, or give me any suggestion to improve the
> > performance ??? And the speed rate listed on Documentation from CVS is
> > tested on what environment ????
> >
> > Thanks in advance
> >
> > The config what I set while building YAFFS and MTDs
> > #
> > # Memory Technology Devices (MTD)
> > #
> > CONFIG_MTD=y
> > # CONFIG_MTD_DEBUG is not set
> > CONFIG_MTD_PARTITIONS=y
> > # CONFIG_MTD_CONCAT is not set
> > # CONFIG_MTD_REDBOOT_PARTS is not set
> > # CONFIG_MTD_CMDLINE_PARTS is not set
> > CONFIG_MTD_CHAR=y
> > CONFIG_MTD_BLOCK=y
> > # CONFIG_FTL is not set
> > # CONFIG_NFTL is not set
> >
> > #
> > # YAFFS
> > #
> > CONFIG_YAFFS_FS=y
> > CONFIG_YAFFS_USE_OLD_MTD=y
> > CONFIG_YAFFS_MTD_ENABLED=y
> > # CONFIG_YAFFS_USE_NANDECC is not set
> > # CONFIG_YAFFS_USE_GENERIC_RW is not set
> > CONFIG_YAFFS_DISABLE_WRITE_VERIFY=y
> >
> >
> > -------------------------------------------------------------------------
> >-- ------------ 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.
---------------------------------------------------------------------------------------
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.