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.