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.