From: "Artem B. Bityutskiy" <dedekind@yandex.ru>
To: Bernhard Priewasser <priewasser@gmail.com>
Cc: MTD mailing list <linux-mtd@lists.infradead.org>
Subject: Re: GC operation
Date: Tue, 08 Nov 2005 17:31:56 +0300 [thread overview]
Message-ID: <4370B6DC.4070203@yandex.ru> (raw)
In-Reply-To: <436F4CD5.6030909@gmail.com>
Hi Bernhard,
Bernhard Priewasser wrote:
> > Brr, didn't get it.. GC may be ugly if what?
> If someone wants to understand how it works in detail :-)
So, the problem is that you think the code is not understandable? Offer
your changes then.
>
> >> 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?
Hmm.
Suppose we have an almost full partition. You write N bytes. There is
only M free space, M < N. If there is N-M of dirty space, GC is started.
Otherwise, -ENOSPC. GC will work until there is enough space to write.
No need to GC the whole partition... Only if the dirty space is
distributed over it, then yes. And yes, the more data is on the FS, the
less is the GC performance and the greater is the average latency...
Or, since blocks to GC are picked randomly, we may end up with GC of the
whole partition, hypothetically, but unlikely.
> 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.
So, you've answered your question :-)
HTH,
Artem.
--
Best Regards,
Artem B. Bityutskiy,
St.-Petersburg, Russia.
next prev parent reply other threads:[~2005-11-08 14:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-03 16:22 GC operation Bernhard Priewasser
2005-11-03 16:33 ` Artem B. Bityutskiy
2005-11-07 12:47 ` Bernhard Priewasser
2005-11-08 14:31 ` Artem B. Bityutskiy [this message]
2005-11-09 13:23 ` Bernhard Priewasser
2005-11-09 13:41 ` Josh Boyer
2005-11-09 14:47 ` Artem B. Bityutskiy
2005-11-09 17:35 ` Bernhard Priewasser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4370B6DC.4070203@yandex.ru \
--to=dedekind@yandex.ru \
--cc=linux-mtd@lists.infradead.org \
--cc=priewasser@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox