Yaffs goes bad when flash is completelly full,yaffs文件系统在空间占满后,出现错误
来源:互联网 发布:学游戏编程 编辑:程序博客网 时间:2024/05/02 09:35
yaffs2的文件系统,在文件空间占满后,如果依然不停的写文件,则会在一段时间后出现文件系统的错乱,文件名出现乱码的现象,日志可能出现yaffs tragedy: no more eraased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!。Charles Manning已经fix这个问题在
http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/yaffs_guts.c?r1=1.85&r2=1.86。下面是邮件列表的相关信息。
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 of flash to different directories in flash
using "cp -rf * sd0" etc until the flash usage gets 100% and the "
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 as 0.
- I am seeing yaffs_GarbageCollectBlock() is using one more fresh erased
block in the routine yaffs_WriteNewChunkWithTagsToNAND() it calls when 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 to
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>
Cc: yaffs@lists.aleph1.co.uk
Hi Charles,
Applied the fix and everything is fine now.
Thanks for the quick and apt fix.
Rgds,
Sharanu
- Yaffs goes bad when flash is completelly full,yaffs文件系统在空间占满后,出现错误
- yaffs文件系统
- yaffs文件系统
- Yaffs文件系统
- yaffs tragedy: Bad object type 错误
- NAND flash文件系统JFFS2和YAFFS比较
- 如何将YAFFS文件系统镜像烧入Nand Flash
- NAND FLASH制作YAFFS文件系统问题记录
- yaffs文件系统加载时出现Oops
- 在C51系统上实现YAFFS文件系统
- Yaffs 文件系统在TE2410上的移植
- When Reuse Goes Bad
- When Reuse Goes Bad
- When Reuse Goes Bad
- When Reuse Goes Bad
- When Reuse Goes Bad
- When Reuse Goes Bad
- When Reuse Goes Bad
- HTML - 添加到收藏夹
- 当前不会命中断点 还没有为该文档加载任何符号
- SQLServer2000同步复制技术实现步骤
- 9月5日朵朵去了医院,病毒性感冒,今天就不去幼儿园了
- 网站优化2
- Yaffs goes bad when flash is completelly full,yaffs文件系统在空间占满后,出现错误
- dfdfd
- 用Javascript判断IE是否已经安装Activex插件和禁用ActiveX
- 丽莎的程序员生活
- 图纸加密软件参考问题
- E576: viminfo: Missing '>' in line:
- 从Verilog到VHDL
- 代码+Edit实现MaskEdit功能,并且防密码查看器查看
- C#操作WORD辅助类