标签:
杂谈 |
分类: Kernel |
这几天在研究JFFS2文件系统,说是研究倒不如说是瞎猫撞着死耗子,对他的研究还没有深入,所以有什么问题望大家不惜赐教,发扬linux开源的精神。
看了“jffs2情景分析”没看完,看着有了一点思路,于是想可能是JFFS2垃圾回收会很慢,所以我把垃圾回收的代码注释掉了,具体如下:
注释/linux-2.6.20/fs/jffs2/background.c
int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)
{
}
换句话说就把这个函数设置为空函数。
结果出人意料,启动时间居然提高了20秒,由原来的25秒到现在的5秒左右。鉴于本人水平有限,对JFFS2文件系统的修改不知道这样JFFS2文件系统会不会有后遗症,如有相关后遗症本,人不负责任.根据本人查阅相关资料,因为jffs2是日志文件系统,而GC内核线程负责回收脏页,如果把这个函数为空,就相当于他不能回收脏的数据,打个比方,我们用日记本写日记,日记本总有一天要写完,当写完之后,可以用橡皮擦擦掉以前写的日记重新写。GC内核线程的作用就相当于这个橡皮擦,如果不用“橡皮擦”则你的flash总有一天会全部变脏,导致空间越来越小。这只是我个人的理解。希望大家多指教
有知道bug的欢迎指正,共同学习