JFFS2 Garbage collector on 2.6.16

KimM kmnet1 at gmail.com
Mon Aug 7 03:56:25 EDT 2006


Hi all

I have a question regarding the JFFS2 garbage collector.

On my AT91RM9200 system I have a 22 MB JFFS2 RW partition. The mount time
is OK, but the problem is that the garbage collector starts to run and
locks down the system for additional 60-120 seconds!

What happens is:

The System boots
busybox init rcS runs
/ is remounted RW
I get a login prompt
The garbage collector starts/continues to runs I type in login and
password
The system stalls until the garbage collector finishes.
 
Now, I traced the problem and found that the long runtime of the garbage
collector is causes by a few large files on my system (~6MB). While the GC
process the inodes of any single file, the FS is locked, which is why my
user apps stalls. More specifically, JFFS2 spends it's time in:

jffs2_do_read_inode_internal()

which is called from:
jjffs2_garbage_collect_pass() ->
ffs2_do_crccheck_inode() ->
jffs2_do_read_inode_internal()

Reading the README.Locking explains the GC locking, but I was wondering if
this is really desired behaviour, and if there is anything I can do to
speed up things. I am not brave enough to just change the locking
mechanism...;-)

I should mention that I get the same behaviour on 2.6.17.6...

BTW: what is the correct mail list for strictly JFFS2 related topics? I
tried jffs-dev at axis.com & linux.file-systems.jffs at gmane.org without
success...

BR
Kim





More information about the linux-mtd mailing list