[Yaffs] power failure problem

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: linuxsir.h
Date:  
To: manningc2
CC: yaffs
Subject: [Yaffs] power failure problem
Dear Charles,

i use YDI in my application, and i want to determine whether the Yaffs2 is
strong enough in power failure.
my test code show below:

yflash2_WriteChunkWithTagsToNAND()
{
    ...
    if (data) {
        int write_size;
        if (!(rand() % 1000)) {
            write_size = rand() % PAGE_SIZE;
        } else {
            write_size = PAGE_SIZE;
        }
        write(h, localBuffer, write_size);    //write data to fileem2k
        if (write_size < PAGE_SIZE) {
            exit(0);    //power failure
        }
    }
    ...
}


when power failure, program only write part of data to flash and exit.then
running again, you can found yaffs catch a ECC error in function
yaffs_ReadChunkFromNAND(), and the block contain this chunk will be
retired. try more and more times, the free space of yaffs will come less
and less. but in my appear, this ecc error not means the block is really
bad.

can you help me how to fix this bug, or how to do GC at this
condition.Thanks very much.

Best Regards,