Skip to contentSkip to conversation

JFFS2 Garbage collector on 2.6.16

DISCUSSION KimM 1 participant 1 message Aug 7, 2006 Memory technology devices (MTD)

lore
Share & tools
lore

KimM

author
#0 lore raw

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 [email protected] & [email protected] without success...

BR
Kim