Re: [Yaffs] Follow up error code 159

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: mcesaran@ics.uci.edu
Date:  
To: Charles Manning
CC: yaffs
Old-Topics: Re: [Yaffs] Follow up error code 91
Subject: Re: [Yaffs] Follow up error code 159
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 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 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
>> > >>
>> > >> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>> > >
>> > > _______________________________________________
>> > > yaffs mailing list
>> > >
>> > > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>> >
>> > _______________________________________________
>> > yaffs mailing list
>> >
>> > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>>
>> _______________________________________________
>> yaffs mailing list
>>
>> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>
>
>
> _______________________________________________
> yaffs mailing list
>
> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>