GC operation

Bernhard Priewasser priewasser at gmail.com
Mon Nov 7 07:47:17 EST 2005


Hi Artem,

 > Brr, didn't get it.. GC may be ugly if what?
If someone wants to understand how it works in detail :-)

 >> When and how is GC called?
 > From the GC thread and when there is no (or few) free space to write.
 > In the latter case the writing process is blocked and waits until GC
 > has freed some space.
E.g. if it is considered as neccessary either by jffs2_reserve_space()
or jffs2_thread_should_wake().
Something about the blocking topic... If there is almost no free space
and a write command issued, can it be blocked until the whole partition
is GC'd (worst case)?? What a latency time... Are there mechanisms to
avoid/control this? What about the "erase suspend" thing?

 >> Ah, another one: Are blocks on the erase_pending_list erased beside
 >> the GC cycles?
 > They are erased later, yes.
jffs2_erase_pending_blocks(), am I right? When is it called? I can only
find it in jffs2_write_super() with count=0 and jffs2_find_nextblock()
with count=1.

Many thanks,
Bernhard




More information about the linux-mtd mailing list