加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于JFFS2文件系统挂载慢的解决方案【原】

(2010-11-18 19:12:18)
标签:

杂谈

分类: Kernel

这几天在研究JFFS2文件系统,说是研究倒不如说是瞎猫撞着死耗子,对他的研究还没有深入,所以有什么问题望大家不惜赐教,发扬linux开源的精神。

   JFFS2文件系统的一个特点就是挂载比较慢,启动的时候大概要25秒左右(我的开发板是AT9263EK的板子,内核是Linux2.6.20)可能是因我的板子质量不行,所有挂载的比较慢,这也是个头大的问题。刚开始的几个星期就一直在网上找资料,希望网上有人解决了,不过确实是解决了,但是绝大部分都是给内核打补丁(EBS补丁),我也打了,因为我不了解,所以我把补丁打到了mtd-snapshot-20050519这个东西里面去了。后来一直没有进展,启动时间反而变长了,很是汗…..到了最后,实在不行,我就是试着往内核里面打补丁,,编译是没问题,可以通过,但是目的没达到。没办法,只好自己去想办法

看了“jffs2情景分析”没看完,看着有了一点思路,于是想可能是JFFS2垃圾回收会很慢,所以我把垃圾回收的代码注释掉了,具体如下:

注释/linux-2.6.20/fs/jffs2/background.c

int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)

{

       pid_t pid;

       int ret = 0;

 

       return ret;

}

换句话说就把这个函数设置为空函数。

结果出人意料,启动时间居然提高了20秒,由原来的25秒到现在的5秒左右鉴于本人水平有限,对JFFS2文件系统的修改不知道这样JFFS2文件系统会不会有后遗症,如有相关后遗症本,人不负责任.根据本人查阅相关资料,因为jffs2是日志文件系统,而GC内核线程负责回收脏页,如果把这个函数为空,就相当于他不能回收脏的数据,打个比方,我们用日记本写日记,日记本总有一天要写完,当写完之后,可以用橡皮擦擦掉以前写的日记重新写。GC内核线程的作用就相当于这个橡皮擦,如果不用“橡皮擦”则你的flash总有一天会全部变脏,导致空间越来越小。这只是我个人的理解。希望大家多指教

有知道bug的欢迎指正,共同学习

  评论这张
转发至微博

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有