Re: [Yaffs] yaffs_HandleReadDataError() Problem

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: linuxsir.h
Date:  
To: yaffs
Subject: Re: [Yaffs] yaffs_HandleReadDataError() Problem
hi charles,

i use yaffs_direct interface to test the Error Collection under power
failure.
my fake test code show below: (yflash_disk size is 16MB)
1、yaffs_StardUp()、yaffs_mount()
2、yaffs_open()、yaffs_write(), write 3MB data to the file, during writing
generate a random power failure to make program quit.
3、restart the program, do step 1 again, and open the file to verify the data
saved.
4、redo step 1 to 3 for 1000 times. then get the free space use
yaffs_getfree(), found the free space become 0.

so i think the condition of (eccResult1 || eccResult2) can't ensure the
block must be retired. if do that will lost a lot of valid space and make
filesystem can't run well.

if need, i can refer my test source code for you.

thanks,
--linuxsir.h



2009/12/23 hq huang <>

> Hi Lists,
>
>
> in the function yaffs_ReadChunkFromNAND(), you do
> if (eccResult1 || eccResult2) {
>     yaffs_HandleReadDataError(dev, chunkInNAND);
> }
> does this means if the data save in chunk did't write correct, Yaffs2 will
> retire the block?
> but we can't ensure whether the block is really broken. and this operation
> may cause the flash space missing.(ie. power failure when writing data to
> the chunk, data not write correct and spare data are all 0xff)

>
> i have do a test to simulate the random power failure during data writing.
> the result of the test is Yaffs2's free space become less and less.
>
> does this a bug of Yaffs2, and how to fixed it.thanks.
>
>
>
> Best Regards,
> And Merry Christmas for everybody!
>
>
> by linuxsir.h
> 2009.12.23
>