Hi, also reducing the file size, there is this other issue: # ./launch_tests.sh ++ pwd + LAUNCHDIR=/mnt/nfs/mcesaran/test/yaffs2/direct/tests + RUNDIR=/tmp + mkdir /tmp mkdir: cannot create directory '/tmp': File exists + chmod a+wr /tmp + /mnt/nfs/mcesaran/test/yaffs2/direct/tests/manage_nand_test.sh 0 rm: cannot remove 'seed-nand-*': No such file or directory rm: cannot remove 'emfile-2k-*': No such file or directory Running test fw_upgrade initialise seed 0 cycles -1 yaffs: Mounting yaffs2 yaffs: yaffs_GutsInitialise() yaffs_ScanBackwards starts intstartblk 1 intendblk 128... 0 blocks to be sorted... ...done yaffs_ScanBackwards ends Block summary 0 blocks have illegal states Unknown 0 blocks Needs scanning 0 blocks Scanning 0 blocks Empty 128 blocks Allocating 0 blocks Full 0 blocks Dirty 0 blocks Checkpoint 0 blocks Collecting 0 blocks Dead 0 blocks yaffs: yaffs_GutsInitialise() done. Mount complete yaffs: Tnodes added GC none: finder 9 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 Allocated block 1, seq 4097, 127 left **>> Block 1 needs retiring Allocated block 2, seq 4098, 126 left **>> Block 2 needs retiring Allocated block 3, seq 4099, 125 left **>> Block 3 needs retiring Allocated block 4, seq 4100, 124 left **>> Block 4 needs retiring Allocated block 5, seq 4101, 123 left **>> Block 5 needs retiring Allocated block 6, seq 4102, 122 left **>> Block 6 needs retiring Allocated block 7, seq 4103, 121 left **>> Block 7 needs retiring Allocated block 8, seq 4104, 120 left **>> Block 8 needs retiring ...(many of these) ... **>> Block 125 needs retiring Allocated block 126, seq 4222, 2 left Allocating reserve **>> Block 126 needs retiring Allocated block 127, seq 4223, 1 left Allocating reserve **>> Block 127 needs retiring Allocated block 128, seq 4224, 0 left Allocating reserve **>> Block 128 needs retiring yaffs tragedy: no more erased blocks Allocating reserve !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! **>> yaffs write required 128 attempts GC Selected block 10 with 64 free, prioritised:0 yaffs: GC erasedBlocks 0 aggressive 1 Collecting block 10, in use 0, shrink 0, wholeBlock 1 Collecting block 10 that has no chunks in use yaffs_BlockBecameDirty block 10 state 8 needs retiring **>> Block 10 retired Block 10 is in state 9 after gc, should be erased gc did not increase free chunks before 0 after 0 GC Selected block 11 with 64 free, prioritised:0 yaffs: GC erasedBlocks 0 aggressive 1 Collecting block 11, in use 0, shrink 0, wholeBlock 1 Collecting block 11 that has no chunks in use yaffs_BlockBecameDirty block 11 state 8 needs retiring **>> Block 11 retired Block 11 is in state 9 after gc, should be erased gc did not increase free chunks before 0 after 0 yaffs tragedy: no more erased blocks Allocating reserve !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! GC Selected block 12 with 64 free, prioritised:0 yaffs: GC erasedBlocks 0 aggressive 1 Collecting block 12, in use 0, shrink 0, wholeBlock 1 Collecting block 12 that has no chunks in use yaffs_BlockBecameDirty block 12 state 8 needs retiring **>> Block 12 retired Block 12 is in state 9 after gc, should be erased gc did not increase free chunks before 0 after 0 yaffs tragedy: no more erased blocks Allocating reserve !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! Error writing counter yaffs2/powerUps handle -1, x[0] 0 x[1] 1 Integrity error 159 fatal yaffs test pid 232 sleeping # df Filesystem 1k-blocks Used Available Use% Mounted on rootfs 57344 12520 44824 22% / /dev/root 57344 12520 44824 22% / /dev/loop0 512 36 476 7% /var stb-bld-00:/exp 1204556928 450654592 692714368 39% /mnt/nfs in this case some space is remaining on the NAND Marco > Marco, > > I had a look at this and the problem is linked tothere being a very small > partition. I have improved the situation by adding a fix that does not try > storing a checkpoint if the partition is very small (smaller that 60 > blocks). > > Before this change, yaffs was using 5 reserved blocks + 3 checkpoint > blocks. A > 2Mbyte partition only has 16 blocks meaning half the space was just taken > up > by reserved space before you tried to store even one file. > > That leaves only 1MB which is not enough to run the tests. > > With the change there is now a bit more space free, but not much. You > could > try reducing nReservedBlocks from 5 to 3 and get another two blocks worth > of > storage. > > But if you have 64Mbytes of NAND then try using slightly larger > partitions. > NAND partitions smaller than approx 10MBytes are considered tiny. > > -- Charles > > > > On Wednesday 28 April 2010 11:04:12 Charles Manning wrote: >> Hello Marco >> >> You are doing something very interesting... >> >> The stuff in direct/tests runs yaffs in a simulation test harness as an >> application. That is designed to run on a host (eg. I run it on a Ubuntu >> PC) and not really intended to run on a target. I usually run it from a >> tmpfs mount to make it run faster. Of course there is no reason that >> running the yaffs simulator on top of a yaffs file system should not >> work, >> but that means you have yaffs on top of yaffs... >> >> I suspect there is a problem due to the very small partition size you >> are >> using. I shall investigate. >> >> If you're trying to test yaffs running on a target then I suggest >> regular >> fs tests such as fsx. There are many versions of fsx out there and I use >> this one: http://github.com/cdhmanning/fs-tests >> >> Thanks >> >> Charles >> >> On Wednesday 28 April 2010 10:44:17 mcesaran@ics.uci.edu wrote: >> > Hi, >> > >> > wrt error 91 (email below), I compiled your tests with a cross >> compiler >> > for mips (the nand's board uses a mips). I use kernel 2.6.28, the size >> of >> > the NAND SLC is 64Mb, hence I changed the parameters of >> > direct/yaffs_fileem2k.h, in order to have a emfile-2k that is not too >> > big, in this way: >> > >> > #define SIZE_IN_MB 2 >> > /* #define SIZE_IN_MB 128 */ >> > >> > #define PAGE_DATA_SIZE (2048) >> > #define PAGE_SPARE_SIZE (64) >> > #define PAGE_SIZE (PAGE_DATA_SIZE + PAGE_SPARE_SIZE) >> > #define PAGES_PER_BLOCK (4) >> > #define BLOCK_DATA_SIZE (PAGE_DATA_SIZE * PAGES_PER_BLOCK) >> > #define BLOCK_SIZE (PAGES_PER_BLOCK * (PAGE_SIZE)) >> > #define BLOCKS_PER_MB ((1024*1024)/BLOCK_DATA_SIZE) >> > #define SIZE_IN_BLOCKS (BLOCKS_PER_MB * SIZE_IN_MB) >> > >> > To circumvent the fsx problem, in run_fw_update_test_nand.sh I deleted >> > the -f flag from yaffs_test (in order to dont perform fsx test) and >> this >> > is the output: >> > >> > # ./launch_tests.sh >> > ++ pwd >> > + LAUNCHDIR=/mnt/nfs/mcesaran/test/yaffs2/direct/tests >> > + RUNDIR=/mnt/flash/tmp >> > + mkdir /mnt/flash/tmp >> > + chmod a+wr /mnt/flash/tmp >> > + /mnt/nfs/mcesaran/test/yaffs2/direct/tests/manage_nand_test.sh 0 >> > rm: cannot remove 'seed-nand-*': No such file or directory >> > rm: cannot remove 'emfile-2k-*': No such file or directory >> > Running test fw_upgrade initialise seed 0 cycles -1 >> > yaffs: Mounting yaffs2 >> > yaffs: yaffs_GutsInitialise() >> > yaffs_ScanBackwards starts intstartblk 1 intendblk 256... >> > 0 blocks to be sorted... >> > ...done >> > yaffs_ScanBackwards ends >> > >> > Block summary >> > 0 blocks have illegal states >> > Unknown 0 blocks >> > Needs scanning 0 blocks >> > Scanning 0 blocks >> > Empty 256 blocks >> > Allocating 0 blocks >> > Full 0 blocks >> > Dirty 0 blocks >> > Checkpoint 0 blocks >> > Collecting 0 blocks >> > Dead 0 blocks >> > >> > yaffs: yaffs_GutsInitialise() done. >> > >> > Mount complete >> > yaffs: Tnodes added >> > GC none: finder 17 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 1, seq 4097, 255 left >> > >> > >> > >> > *** Writing file yaffs2/tmp-counter inode 257 >> > About to rename yaffs2/tmp-counter to yaffs2/powerUps >> > old stat inode 2146466856 >> > new stat inode 257 >> > new fstat inode 257 >> > GC none: finder 34 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 >> > ## >> > ## Set counter yaffs2/powerUps to 0 >> > ## >> > >> > >> > >> > *** Writing file yaffs2/tmp-counter inode 258 >> > About to rename yaffs2/tmp-counter to yaffs2/starts >> > old stat inode 2146466856 >> > new stat inode 258 >> > new fstat inode 258 >> > GC none: finder 51 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 >> > ## >> > ## Set counter yaffs2/starts to 0 >> > ## >> > >> > >> > >> > *** Writing file yaffs2/tmp-counter inode 259 >> > GC none: finder 68 skip 4 threshold 4 dirtiest 0 using 0 oldest 0 >> > About to rename yaffs2/tmp-counter to yaffs2/ends >> > old stat inode 2146466856 >> > new stat inode 259 >> > new fstat inode 259 >> > ## >> > ## Set counter yaffs2/ends to 0 >> > ## >> > >> > >> > >> > *** Writing file yaffs2/tmp-counter inode 260 >> > GC none: finder 85 skip 5 threshold 4 dirtiest 0 using 0 oldest 0 >> > About to rename yaffs2/tmp-counter to yaffs2/powerUps >> > old stat inode 257 >> > new stat inode 260 >> > new fstat inode 260 >> > ## >> > ## Set counter yaffs2/powerUps to 0 >> > ## >> > GC none: finder 102 skip 6 threshold 4 dirtiest 0 using 0 oldest 0 >> > >> > >> > >> > **** Open writing file yaffs2/tmp-main inode 261 >> > GC none: finder 119 skip 7 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 136 skip 8 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 153 skip 9 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 170 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 187 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 204 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 2, seq 4098, 254 left >> > GC none: finder 221 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 238 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 255 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 16 skip 16 threshold 4 dirtiest 1 using 43 oldest 1 >> > GC none: finder 33 skip 17 threshold 4 dirtiest 1 using 43 oldest 1 >> > GC none: finder 50 skip 18 threshold 4 dirtiest 1 using 43 oldest 1 >> > GC none: finder 67 skip 19 threshold 4 dirtiest 1 using 43 oldest 1 >> > GC none: finder 84 skip 20 threshold 4 dirtiest 1 using 43 oldest 1 >> > GC Selected block 1 with 21 free, prioritised:0 >> > yaffs: GC erasedBlocks 254 aggressive 0 >> > Collecting block 1, in use 43, shrink 1, wholeBlock 0 >> > Allocated block 3, seq 4099, 253 left >> > yaffs: GC erasedBlocks 253 aggressive 0 >> > Collecting block 1, in use 38, shrink 0, wholeBlock 0 >> > yaffs: GC erasedBlocks 253 aggressive 0 >> > Collecting block 1, in use 33, shrink 0, wholeBlock 0 >> > yaffs: GC erasedBlocks 253 aggressive 0 >> > Collecting block 1, in use 28, shrink 0, wholeBlock 0 >> > yaffs: GC erasedBlocks 253 aggressive 0 >> > Collecting block 1, in use 23, shrink 0, wholeBlock 0 >> > yaffs: GC erasedBlocks 253 aggressive 0 >> > Collecting block 1, in use 18, shrink 0, wholeBlock 0 >> > yaffs: GC erasedBlocks 253 aggressive 0 >> > Collecting block 1, in use 13, shrink 0, wholeBlock 0 >> > Allocated block 4, seq 4100, 252 left >> > yaffs: GC erasedBlocks 252 aggressive 0 >> > Collecting block 1, in use 8, shrink 0, wholeBlock 0 >> > yaffs: GC erasedBlocks 252 aggressive 0 >> > Collecting block 1, in use 3, shrink 0, wholeBlock 0 >> > yaffs_BlockBecameDirty block 1 state 8 >> > erase block 0 >> > Erased block 1 >> > GC none: finder 118 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 135 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 152 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 169 skip 4 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 186 skip 5 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 203 skip 6 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 220 skip 7 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 5, seq 4101, 252 left >> > GC none: finder 237 skip 8 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 254 skip 9 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 15 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 32 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 49 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 66 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 83 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 100 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 117 skip 16 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 134 skip 17 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 151 skip 18 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 6, seq 4102, 251 left >> > GC none: finder 168 skip 19 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 185 skip 20 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 202 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 219 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 236 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 253 skip 4 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 14 skip 5 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 31 skip 6 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 48 skip 7 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 65 skip 8 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 82 skip 9 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 7, seq 4103, 250 left >> > GC none: finder 99 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 116 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 133 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 150 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 167 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 184 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 201 skip 16 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 218 skip 17 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 235 skip 18 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 252 skip 19 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 8, seq 4104, 249 left >> > GC none: finder 13 skip 20 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 30 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 47 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 64 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 81 skip 4 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 98 skip 5 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 115 skip 6 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 132 skip 7 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 149 skip 8 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 166 skip 9 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 183 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 9, seq 4105, 248 left >> > GC none: finder 200 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 217 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 234 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 251 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 12 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 29 skip 16 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 46 skip 17 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 63 skip 18 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 80 skip 19 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 97 skip 20 threshold 4 dirtiest 0 using 0 oldest 0 >> > GC none: finder 114 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 >> > Allocated block 10, seq 4106, 247 left >> > File closed >> > Raname file yaffs2/tmp-main to yaffs2/main >> > Verifying file yaffs2/main >> > verify yaffs2/main: file size is 1034008, recorded size is 1034008 >> > verified ok >> > >> > Block summary >> > 0 blocks have illegal states >> > Unknown 0 blocks >> > Needs scanning 0 blocks >> > Scanning 0 blocks >> > Empty 247 blocks >> > Allocating 1 blocks >> > Full 8 blocks >> > Dirty 0 blocks >> > Checkpoint 0 blocks >> > Collecting 0 blocks >> > Dead 0 blocks >> > >> > save exit: isCheckpointed 1 >> > Test run completed! >> > rm: cannot remove 'iteration-max-*': No such file or directory >> > Running 10 iterations >> > cp: write error: No space left on device >> > cp: cannot stat 'emfile-2k-1': No such file or directory >> > cp: cannot stat 'emfile-2k-2': No such file or directory >> > cp: cannot stat 'emfile-2k-3': No such file or directory >> > ######### >> > ######### >> > ######### >> > ######### Run 0 of 10 with seed 4291 >> > ######### >> > ######### >> > ######### >> > Running test fw_upgrade power_fail seed 4291 cycles -1 >> > yaffs: Mounting yaffs2 >> > yaffs: restored from checkpoint >> > Mount complete >> > Running stress on yaffs2 with seed 4291 >> > yaffs2//main inode 261 261 obj c60624 length 1034008 mode 8180 data >> file >> > yaffs2//powerUps inode 260 260 obj c605a8 length 8 mode 8180 data file >> > yaffs2//ends inode 259 259 obj c6052c length 8 mode 8180 data file >> > yaffs2//lost+found inode 2 2 obj c60434 length 2048 mode 41B6 >> directory >> > yaffs2//starts inode 258 258 obj c604b0 length 8 mode 8180 data file >> > >> > Free space in yaffs2/ is 31324160 >> > >> > yaffs2//main inode 261 261 obj c60624 length 1034008 mode 8180 data >> file >> > yaffs2//powerUps inode 260 260 obj c605a8 length 8 mode 8180 data file >> > yaffs2//ends inode 259 259 obj c6052c length 8 mode 8180 data file >> > yaffs2//lost+found inode 2 2 obj c60434 length 2048 mode 41B6 >> directory >> > yaffs2//starts inode 258 258 obj c604b0 length 8 mode 8180 data file >> > >> > Free space in yaffs2/ is 31324160 >> > >> > erase block 0 >> > **>> Block 11 needs retiring >> > **>> Block 12 needs retiring >> > **>> Block 13 needs retiring >> > **>> Block 14 needs retiring >> > **>> Block 15 needs retiring >> > **>> Block 16 needs retiring >> > ... (many of these) ... >> > **>> Block 255 needs retiring >> > **>> Block 256 needs retiring >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > **>> yaffs write required 248 attempts >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > yaffs tragedy: no more erased blocks >> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! >> > Error writing counter yaffs2/powerUps handle 0, x[0] 1 x[1] 2 >> > Integrity error 145 >> > fatal yaffs test pid 111 sleeping >> > >> > then the test stops. this is cat /prof/filesystem if can help you: >> > >> > Device 0 "rootfs" >> > startBlock......... 0 >> > endBlock........... 3583 >> > totalBytesPerChunk. 2048 >> > nDataBytesPerChunk. 2048 >> > chunkGroupBits..... 0 >> > chunkGroupSize..... 1 >> > nErasedBlocks...... 14 >> > nReservedBlocks.... 5 >> > blocksInCheckpoint. 0 >> > nTnodesCreated..... 2200 >> > nFreeTnodes........ 55 >> > nObjectsCreated.... 500 >> > nFreeObjects....... 67 >> > nFreeChunks........ 120 >> > nPageWrites........ 26484 >> > nPageReads......... 14326 >> > nBlockErasures..... 389 >> > nGCCopies.......... 1407 >> > garbageCollections. 307 >> > passiveGCs......... 8 >> > nRetriedWrites..... 0 >> > nShortOpCaches..... 10 >> > nRetireBlocks...... 0 >> > eccFixed........... 0 >> > eccUnfixed......... 0 >> > tagsEccFixed....... 0 >> > tagsEccUnfixed..... 0 >> > cacheHits.......... 2839 >> > nDeletedFiles...... 0 >> > nUnlinkedFiles..... 21 >> > nBackgroudDeletions 0 >> > useNANDECC......... 1 >> > noTagsECC.......... 0 >> > isYaffs2........... 1 >> > inbandTags......... 0 >> > emptyLostAndFound.. 0 >> > disableLazyLoad.... 0 >> > >> > please let me know if you need of more information >> > >> > thanks >> > Marco >> > >> > > Hi Charles, >> > > >> > > thanks for your feedback. I mounted the YAFFS on a NAND, and >> recompiled >> > >> > the tests, this is the output: >> > > # ./launch_tests.sh >> > > ++ pwd >> > > + LAUNCHDIR=/mnt/nfs/mcesaran/test/yaffs2/direct/tests >> > > + RUNDIR=/ >> > > + mkdir -p / >> > > + chmod a+wr / >> > > + /mnt/nfs/mcesaran/test/yaffs2/direct/tests/manage_nand_test.sh 0 >> rm: >> > >> > cannot remove 'seed-nand-*': No such file or directory >> > >> > > rm: cannot remove 'emfile-2k-*': No such file or directory >> > > Running test fw_upgrade initialise seed 0 cycles -1 >> > > yaffs: Mounting yaffs2 >> > > yaffs: yaffs_GutsInitialise() >> > > yaffs_ScanBackwards starts intstartblk 1 intendblk 128... >> > > 0 blocks to be sorted... >> > > ...done >> > > yaffs_ScanBackwards ends >> > > >> > > Block summary >> > > 0 blocks have illegal states >> > > Unknown 0 blocks >> > > Needs scanning 0 blocks >> > > Scanning 0 blocks >> > > Empty 128 blocks >> > > Allocating 0 blocks >> > > Full 0 blocks >> > > Dirty 0 blocks >> > > Checkpoint 0 blocks >> > > Collecting 0 blocks >> > > Dead 0 blocks >> > > >> > > yaffs: yaffs_GutsInitialise() done. >> > > >> > > Mount complete >> > > yaffs: Tnodes added >> > > GC none: finder 9 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 >> > >> > Allocated block 1, seq 4097, 127 left >> > >> > > *** Writing file yaffs2/tmp-counter inode 257 >> > > About to rename yaffs2/tmp-counter to yaffs2/powerUps >> > > old stat inode 2140871736 >> > > new stat inode 257 >> > > new fstat inode 257 >> > > GC none: finder 18 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 ## >> > > ## Set counter yaffs2/powerUps to 0 >> > > ## >> > > >> > > >> > > >> > > *** Writing file yaffs2/tmp-counter inode 258 >> > > About to rename yaffs2/tmp-counter to yaffs2/starts >> > > old stat inode 2140871736 >> > > new stat inode 258 >> > > new fstat inode 258 >> > > GC none: finder 27 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 ## >> > > ## Set counter yaffs2/starts to 0 >> > > ## >> > > >> > > >> > > >> > > *** Writing file yaffs2/tmp-counter inode 259 >> > > GC none: finder 36 skip 4 threshold 4 dirtiest 0 using 0 oldest 0 >> About >> > >> > to rename yaffs2/tmp-counter to yaffs2/ends >> > >> > > old stat inode 2140871736 >> > > new stat inode 259 >> > > new fstat inode 259 >> > > ## >> > > ## Set counter yaffs2/ends to 0 >> > > ## >> > > >> > > >> > > >> > > *** Writing file yaffs2/tmp-counter inode 260 >> > > GC none: finder 45 skip 5 threshold 4 dirtiest 0 using 0 oldest 0 >> About >> > >> > to rename yaffs2/tmp-counter to yaffs2/powerUps >> > >> > > old stat inode 257 >> > > new stat inode 260 >> > > new fstat inode 260 >> > > ## >> > > ## Set counter yaffs2/powerUps to 0 >> > > ## >> > > GC none: finder 54 skip 6 threshold 4 dirtiest 0 using 0 oldest 0 >> > > >> > > >> > > >> > > **** Open writing file yaffs2/tmp-main inode 261 >> > > GC none: finder 63 skip 7 threshold 4 dirtiest 0 using 0 oldest 0 GC >> > >> > none: finder 72 skip 8 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 81 skip 9 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> finder >> > 90 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 99 >> > skip 11 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 108 >> skip >> > 12 threshold 4 dirtiest 0 using 0 oldest 0 Allocated block 2, seq >> 4098, >> > 126 left >> > >> > > GC none: finder 117 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 >> GC >> > >> > none: finder 126 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 GC >> > none: finder 7 skip 15 threshold 4 dirtiest 1 using 43 oldest 1 GC >> none: >> > finder 16 skip 16 threshold 4 dirtiest 1 using 43 oldest 1 GC none: >> > finder 25 skip 17 threshold 4 dirtiest 1 using 43 oldest 1 GC none: >> > finder 34 skip 18 threshold 4 dirtiest 1 using 43 oldest 1 GC none: >> > finder 43 skip 19 threshold 4 dirtiest 1 using 43 oldest 1 GC none: >> > finder 52 skip 20 threshold 4 dirtiest 1 using 43 oldest 1 GC Selected >> > block 1 with 21 free, prioritised:0 >> > >> > > yaffs: GC erasedBlocks 126 aggressive 0 >> > > Collecting block 1, in use 43, shrink 1, wholeBlock 0 >> > > Allocated block 3, seq 4099, 125 left >> > > yaffs: GC erasedBlocks 125 aggressive 0 >> > > Collecting block 1, in use 38, shrink 0, wholeBlock 0 >> > > yaffs: GC erasedBlocks 125 aggressive 0 >> > > Collecting block 1, in use 33, shrink 0, wholeBlock 0 >> > > yaffs: GC erasedBlocks 125 aggressive 0 >> > > Collecting block 1, in use 28, shrink 0, wholeBlock 0 >> > > yaffs: GC erasedBlocks 125 aggressive 0 >> > > Collecting block 1, in use 23, shrink 0, wholeBlock 0 >> > > yaffs: GC erasedBlocks 125 aggressive 0 >> > > Collecting block 1, in use 18, shrink 0, wholeBlock 0 >> > > yaffs: GC erasedBlocks 125 aggressive 0 >> > > Collecting block 1, in use 13, shrink 0, wholeBlock 0 >> > > Allocated block 4, seq 4100, 124 left >> > > yaffs: GC erasedBlocks 124 aggressive 0 >> > > Collecting block 1, in use 8, shrink 0, wholeBlock 0 >> > > yaffs: GC erasedBlocks 124 aggressive 0 >> > > Collecting block 1, in use 3, shrink 0, wholeBlock 0 >> > > yaffs_BlockBecameDirty block 1 state 8 >> > > erase block 0 >> > > Erased block 1 >> > > GC none: finder 70 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 GC >> > >> > none: finder 79 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 88 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> finder >> > 97 skip 4 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 106 >> > skip 5 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 115 >> skip >> > 6 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 124 skip 7 >> > threshold 4 dirtiest 0 using 0 oldest 0 Allocated block 5, seq 4101, >> > 124 left >> > >> > > GC none: finder 5 skip 8 threshold 4 dirtiest 0 using 0 oldest 0 GC >> > >> > none: finder 14 skip 9 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 23 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 32 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 41 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 50 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 59 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 68 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 77 skip 16 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 86 skip 17 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 95 skip 18 threshold 4 dirtiest 0 using 0 oldest 0 Allocated >> > block 6, seq 4102, 123 left >> > >> > > GC none: finder 104 skip 19 threshold 4 dirtiest 0 using 0 oldest 0 >> GC >> > >> > none: finder 113 skip 20 threshold 4 dirtiest 0 using 0 oldest 0 GC >> > none: finder 122 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 3 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> finder >> > 12 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 21 >> > skip 4 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 30 skip >> 5 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 39 skip 6 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 48 skip 7 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 57 skip 8 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 66 skip 9 >> > threshold 4 dirtiest 0 using 0 oldest 0 Allocated block 7, seq 4103, >> > 122 left >> > >> > > GC none: finder 75 skip 10 threshold 4 dirtiest 0 using 0 oldest 0 >> GC >> > >> > none: finder 84 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 93 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 102 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 111 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 120 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 1 skip 16 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> finder >> > 10 skip 17 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 19 >> > skip 18 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 28 >> skip >> > 19 threshold 4 dirtiest 0 using 0 oldest 0 Allocated block 8, seq >> 4104, >> > 121 left >> > >> > > GC none: finder 37 skip 20 threshold 4 dirtiest 0 using 0 oldest 0 >> GC >> > >> > none: finder 46 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 55 skip 2 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> finder >> > 64 skip 3 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 73 >> > skip 4 threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 82 skip >> 5 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 91 skip 6 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 100 skip 7 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 109 skip 8 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 118 skip 9 >> > threshold 4 dirtiest 0 using 0 oldest 0 GC none: finder 127 skip 10 >> > threshold 4 dirtiest 0 using 0 oldest 0 Allocated block 9, seq 4105, >> > 120 left >> > >> > > GC none: finder 8 skip 11 threshold 4 dirtiest 0 using 0 oldest 0 GC >> > >> > none: finder 17 skip 12 threshold 4 dirtiest 0 using 0 oldest 0 GC >> none: >> > finder 26 skip 13 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 35 skip 14 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 44 skip 15 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 53 skip 16 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 62 skip 17 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 71 skip 18 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 80 skip 19 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 89 skip 20 threshold 4 dirtiest 0 using 0 oldest 0 GC none: >> > finder 98 skip 1 threshold 4 dirtiest 0 using 0 oldest 0 Allocated >> block >> > 10, seq 4106, 119 left >> > >> > > File closed >> > > Raname file yaffs2/tmp-main to yaffs2/main >> > > Verifying file yaffs2/main >> > > verify yaffs2/main: file size is 1034008, recorded size is 1034008 >> > >> > verified ok >> > >> > > Block summary >> > > 0 blocks have illegal states >> > > Unknown 0 blocks >> > > Needs scanning 0 blocks >> > > Scanning 0 blocks >> > > Empty 119 blocks >> > > Allocating 1 blocks >> > > Full 8 blocks >> > > Dirty 0 blocks >> > > Checkpoint 0 blocks >> > > Collecting 0 blocks >> > > Dead 0 blocks >> > > >> > > save exit: isCheckpointed 1 >> > > Test run completed! >> > > rm: cannot remove 'iteration-max-*': No such file or directory >> > > Running 10 iterations >> > > cp: cannot stat 'emfile-2k-1': No such file or directory >> > > cp: cannot stat 'emfile-2k-2': No such file or directory >> > > cp: cannot stat 'emfile-2k-3': No such file or directory >> > > ######### >> > > ######### >> > > ######### >> > > ######### Run 0 of 10 with seed 6906 >> > > ######### >> > > ######### >> > > ######### >> > > Running test fw_upgrade fsx power_fail seed 6906 cycles -1 >> > > yaffs: Mounting yaffs2 >> > > yaffs: restored from checkpoint >> > > Mount complete >> > > Running stress on yaffs2 with seed 6906 >> > > yaffs2//main inode 261 261 obj c40e24 length 1034008 mode 8180 data >> > > file >> > >> > yaffs2//powerUps inode 260 260 obj c40da8 length 8 mode 8180 data file >> > yaffs2//ends inode 259 259 obj c40d2c length 8 mode 8180 data file >> > yaffs2//lost+found inode 2 2 obj c40c34 length 2048 mode 41B6 >> directory >> > yaffs2//starts inode 258 258 obj c40cb0 length 8 mode 8180 data file >> > >> > > Free space in yaffs2/ is 14546944 >> > > >> > > yaffs2/fsxdata: Success >> > > fsx wanted to exit with 91 >> > > >> > > >> > > Since I have few space on the NAND, I reduced the size of the >> > >> > emfile-2k-x >> > >> > > changing the parameters in yaffs_fileem2k.h, but anyway the test >> cannot >> > >> > be >> > >> > > completed >> > > >> > > thanks in advance for your help >> > > >> > > cheers, >> > > Marco >> > > >> > >> On Tuesday 27 April 2010 07:42:58 mcesaran@ics.uci.edu wrote: >> > >>> Hello, >> > >>> This is the output that I get when I try to start the tests in >> > >> > /direct/test: >> > >>> # ./launch_tests.sh >> > >>> ++ pwd >> > >>> + LAUNCHDIR=/mnt/nfs/mcesaran/test/yaffs2/direct/tests >> > >>> + RUNDIR=/prova/tmp >> > >>> + mkdir /prova/tmp >> > >>> + mount -t tmpfs none /prova/tmp >> > >>> + chmod a+wr /prova/tmp >> > >>> + /mnt/nfs/mcesaran/test/yaffs2/direct/tests/manage_nand_test.sh 0 >> > >>> rm: >> > >> > cannot remove 'seed-nand-*': No such file or directory >> > >> > >>> rm: cannot remove 'emfile-2k-*': No such file or directory >> > >>> Running test fw_upgrade initialise seed 0 cycles -1 >> > >>> yaffs: Mounting yaffs2 >> > >>> yaffs: yaffs_GutsInitialise() >> > >>> yaffs: yaffs_GutsInitialise() aborted. >> > >>> Mount complete >> > >>> Error writing counter yaffs2/powerUps handle -1, x[0] 0 x[1] 1 >> > >> > Integrity error 145 >> > >> > >>> fatal yaffs test pid 88 sleeping >> > >>> (then the test stops): how can I do? >> > >> >> > >> Hello Marco >> > >> I just tried this with the latest code in git. >> > >> It works fine for me on 3 different Ubuntu boxes. >> > >> What environment are you using? >> > >> Try also doing a 'make clean'. >> > >> -- CHarles >> > >> _______________________________________________ >> > >> yaffs mailing list >> > >> yaffs@lists.aleph1.co.uk >> > >> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs >> > > >> > > _______________________________________________ >> > > yaffs mailing list >> > > yaffs@lists.aleph1.co.uk >> > > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs >> > >> > _______________________________________________ >> > yaffs mailing list >> > yaffs@lists.aleph1.co.uk >> > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs >> >> _______________________________________________ >> yaffs mailing list >> yaffs@lists.aleph1.co.uk >> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs > > > > _______________________________________________ > yaffs mailing list > yaffs@lists.aleph1.co.uk > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs >