GC operation

Bernhard Priewasser priewasser at gmail.com
Wed Nov 9 12:35:23 EST 2005


> Not almost full partition. Here are some statements:
> 
> 1. GC starts if there are no *free eraseblocks*.
> 2. GC makes free space in units of an eraseblock.
> 3. No GC is needed on mount.
> 
> JFFS2 does *checking* on mount, i.e., checks all CRCs. It is done in the 
> context of the GC thread, but does not actually relate to the Garbage 
> Collection. This is just how it is implemented.
Blocking time is rather important for us, e.g. the GC and erase_pending 
stuff is too. Thank you for bringing some light into it, perhaps it 
wouldn't be bad if there was some documentation. I'm doing my Master's 
Thesis right now on JFFS2, that might be a good documention.

> jffs2_write_super() is called when the JFFS2 superblock is dirty 
> (JFFS2's sb->s_dirt is set). JFFS2 marks its "struct superblock" 
> structure as dirty when something is added to the erase_pending_list or 
> written to the wbuf.
> 
> When sb->s_dirt, kupdated will call jffs2_write_super() in some 
> configurable time and JFFS2 will erase pending eraseblocks and flush the 
> wbuf.
If anybody else is intersted: See 
http://lists.infradead.org/pipermail/linux-mtd/2005-November/014271.html
and follow-up.

-- 
Bernhard




More information about the linux-mtd mailing list