As I mentioned, I have modified bonnie++ to create just 256 files in a directory to do the test. After the test failed, I think, nTnodesCreated..... 300 did not reflect the fact. I have counted the files, there were 256 files indeed. But the sequential deletion test failed. I think all the files specified by bonnie++ was created. My board has 64M memory, and when testing no other programs were running. I think memory is sufficient, if you think yaffs failed to allocate memory due to lack of memory, when creating files. I have no signature. >From: Charles Manning <manningc2@actrix.gen.nz> >Reply-To: manningc2@actrix.gen.nz >To: "Wangfeng Ai" <beatit@hotmail.com>, yaffs@toby-churchill.org >Subject: Re: benchmark yaffs with Bonnie++ >Date: Tue, 11 May 2004 21:10:37 +1200 > >On Thursday 29 April 2004 15:37, Wangfeng Ai wrote: > > In my kernel(2.4.18-rmk7-pxa1), mtd is cvs snapshot-20040331 and yaffs > > is up2date. Makefile for yaffs is: > > > > USE_MTD = -DCONFIG_YAFFS_MTD_ENABLED > > USE_NANDECC = -DCONFIG_YAFFS_USE_NANDECC > > USE_GENERIC_RW = -DCONFIG_YAFFS_USE_GENERIC_RW > > IGNORE_CHUNK_ERASED = -DCONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK > > ENABLE_SHORT_NAMES_IN_RAM = -DCONFIG_SHORT_NAMES_IN_RAM > > YAFFS_CONFIGS = $(USE_RAM_FOR_TEST) $(USE_MTD) $(USE_GENERIC_RW) \ > > $(USE_HEADER_FILE_SIZE) $(IGNORE_CHUNK_ERASED) \ > > $(IGNORE_WRITE_VERIFY) $(ENABLE_SHORT_NAMES_IN_RAM) \ > > $(USE_NANDECC) $(USE_OLD_MTD) $(USE_WRONGECC) > > EXTRA_CFLAGS = $(YAFFS_CONFIGS) > > O_TARGET := yaffs.o > > obj-y := yaffs_fs.o yaffs_guts.o yaffs_ramem.o yaffs_mtdif.o yaffs_ecc.o > > obj-m := $(O_TARGET) > > # obj-$(CONFIG_YAFFS_FS) :=$(O_TARGET) > > include $(TOPDIR)/Rules.make > > > > Here is some actions I took and the output: > > # mkyaffs /dev/mtd/3 -------> ok, reporting some blocks damaged > > > > # mount -t yaffs /dev/mtdblock/3 /yaffs > > > > # cat /proc/yaffs > > Device yaffs > > startBlock......... 1 > > endBlock........... 4029 > > chunkGroupBits..... 1 > > chunkGroupSize..... 2 > > nErasedBlocks...... 3490 > > nTnodesCreated..... 0 > > nFreeTnodes........ 0 > > nObjectsCreated.... 100 > > nFreeObjects....... 97 > > nFreeChunks........ 111680 > > nPageWrites........ 0 > > nPageReads......... 0 > > nBlockErasures..... 0 > > nGCCopies.......... 0 > > garbageCollections. 0 > > passiveGCs......... 0 > > nRetriedWrites..... 0 > > nRetireBlocks...... 0 > > eccFixed........... 0 > > eccUnfixed......... 0 > > tagsEccFixed....... 0 > > tagsEccUnfixed..... 3490 > > cacheHits.......... 0 > > nDeletedFiles...... 0 > > nUnlinkedFiles..... 0 > > nBackgroudDeletions 0 > > useNANDECC......... 1 > > > > # bonnie++ -s 2 -r 1 -x 1 -u root (I modified bonnie++ to use 256 > > files in a dir) > > Using uid:0, gid:0. > > Writing with putc()...done > > Writing intelligently...done > > Rewriting...done > > Reading with getc()...done > > Reading intelligently...done > > start 'em...done...done...done... > > Create files in sequential order...done. > > Stat files in sequential order...done. > > Delete files in sequential order...Bonnie: drastic I/O error (rmdir): > > Directory not empty > > Cleaning up test directory after error. > > > > # cat /proc/yaffs > > Device yaffs > > startBlock......... 1 > > endBlock........... 4029 > > chunkGroupBits..... 1 > > chunkGroupSize..... 2 > > nErasedBlocks...... 3483 > > nTnodesCreated..... 300 > > nFreeTnodes........ 187 > > nObjectsCreated.... 300 > > nFreeObjects....... 183 > > nFreeChunks........ 111550 > > nPageWrites........ 87512 > > nPageReads......... 122159 > > nBlockErasures..... 1619 > > nGCCopies.......... 227 > > garbageCollections. 859 > > passiveGCs......... 859 > > nRetriedWrites..... 0 > > nRetireBlocks...... 0 > > eccFixed........... 0 > > eccUnfixed......... 0 > > tagsEccFixed....... 0 > > tagsEccUnfixed..... 3490 > > cacheHits.......... 0 > > nDeletedFiles...... 4 > > nUnlinkedFiles..... 404 > > nBackgroudDeletions 0 > > useNANDECC......... 1 > > > > But when I skipped sequentially deleting files, Bonnie++ exited ok and > > reported the expected result. Bonne++ works well when natively built and > > runs on my pc. > > Any suggestion? > >If you created 16k files it seems odd that yaffs only shows 300 objects >created in nObjectsCreated. THis would indicate to me that either: >* YAFFS is failing to allocate memory >* The Linux directory handling is rejecting the file creation before YAFFS >even gets a look in. Again this could be caused by running short of memory. > >Try turing on more YAFFS tracing to see if you can learn anything more. > >-- 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.