[Yaffs] [Yaffs-archive] Re: benchmark yaffs with Bonnie++

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: Wangfeng Ai, yaffs
Subject: [Yaffs] [Yaffs-archive] Re: benchmark yaffs with Bonnie++
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 with the text "unsubscribe"
(without the quotes) as the subject.