Re: GC operation

Bernhard Priewasser
2005-11-07T12:47:33Z

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