If the file system of yaffs2 keeps writing files when the file space is full, the file system may be disordered and the file name may be garbled after a while,Logs may appear
Yaffs tragedy: No more eraased Blocks
!!!!!!!!! Allocator out
!!!!!!!!!!!!!!!!!.Charles Manning has fixed this issue in
Http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/yaffs_guts.c? R1 = 1.85 & r2 = 1.86
. The following is the information about the mail list.
From:Sharanu
Turamari
Sharanu.turamari@ziilabs.com
>
Date:
2009/7/21
To: yaffs@lists.aleph1.co.uk
Hi,
I
Am facing the problem with latest yaffs2 port when the whole flash Space
Is
Occupied.
I am following the below procedure:
-Copy the entire
Root contents to flash using "find bin boot Dev etc home
Init lib media sbin
Tmp usr var | cpio-pdum/flash "command
-Recursively copy the contents
Flash to different directories in Flash
Using "CP-RF * sd0" etc until
Flash usage gets 100% and"
Dev-> nerasedblocks "is 0.
-After
Sometimes I am getting "Allocator out" problems.
-Here onwards flash is
Completelly unusable since even deletion fails and
Only formatting will
Help.
Thoughts that come to mind is:
-Though nreservedblocks is 5,
Why yaffs is using all the blocks and
Getting Dev-> nerasedblocks
0.
-I am seeing yaffs_garbagecollectblock () is using one more fresh
Erased
Block in the routine yaffs_writenewchunkwithtagstonand () It callwhen
It
Is either a data chunk in live file or an object header.
So, instead
Of producing blocks it is consuming a block which explains
That whenever that
Condition occurs a block is being lost.
-Though the nreservedblocks is 5
, I am not seeing any restrictions on
The block allocation if it reaches
Below 5.
-Just for experimentation, I hacked to use reserved Blocks
Only
Yaffs_garbagecollectblock ()-> yaffs_writenewchunkwithtagstonand (),
And
Other allocations not use it. Thought There It Is stopping
When
Dev-> nerasedblocks is 8 and no "Allocator out" problems, still flash
Is
Unusable as not able to delete any file and increase free space usage.
-
I am not seeing any erase problem since each yaffs_garbagecollectblock ()
Is
Producing one erased block which is consumed immediately.
-If anybody
Has done the same experimentaion with yaffs, please help me
Solve
This.
RGDS,
Sharanu
_______________________________________________
Yaffs
Mailing List
Yaffs@lists.aleph1.co.uk
Http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
----------
From:Charles Manning
Manningc2@actrix.gen.nz
>
Date:
2009/7/22
To: yaffs@lists.aleph1.co.uk
I
Have been able to recreate this problem and am looking at it now.
Thanks
To sharanu for his persistence in pointing this out.
-- Charles
----------
From:Charles Manning
Manningc2@actrix.gen.nz
>
Date:
2009/7/28
To: yaffs@lists.aleph1.co.uk
Please
Try the latest CVs.
Http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/yaffs_guts.c? R1 = 1.85 & r2 = 1.86
-- Charles
----------
From:Sharanu turamari
Sharanu.turamari@ziilabs.com
>
Date:
2009/7/28
To: Charles Manning <manningc2@actrix.gen.nz
>
HTTP: yaffs@lists.aleph1.co.uk
Hi
Charles,
Applied the fix and everything is fine now.
Thanks for the quick
And apt fix.
RGDS,
Sharanu