Marco The error is showing up inside the test harness nand emulation which is writing a file to the file system. The test harness emulation will run on a normal disk too. The way you are using this does not test the function calls to yaffs because the test harness is only writing to one file. The space for the emulation is limited to the size of the emulation file and not the underlying file system (except if the underlying fs runs out of storage). The allocator-out problem suggests to me that there is something wrong with the emulation files. This could be due to the way you are running the tests. The ./lauch_tests mechanism launches 6 tests in parallel and uses xterm and assumes it is running on a host. If you really want to test real nand this way, then I suggest starting with a simple terminal and run init_fw_update_test_nand.sh and then run_rw_update_test_nand.sh -- Charles On Thursday 29 April 2010 06:35:41 mcesaran@ics.uci.edu wrote: > 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 > > _______________________________________________ > yaffs mailing list > yaffs@lists.aleph1.co.uk > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs