From: Artem Bityutskiy <dedekind1@gmail.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
linux-mtd@lists.infradead.org
Cc: David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Richard Weinberger <richard@nod.at>,
tglx@linutronix.de, Peter Zijlstra <peterz@infradead.org>
Subject: Re: [RFC PATCH 2/2] mtd: ubi: wl: avoid erasing a PEB which is empty
Date: Tue, 24 Nov 2015 14:58:17 +0200 [thread overview]
Message-ID: <1448369897.23789.47.camel@gmail.com> (raw)
In-Reply-To: <1448302147-19272-3-git-send-email-bigeasy@linutronix.de>
On Mon, 2015-11-23 at 19:09 +0100, Sebastian Andrzej Siewior wrote:
> wear_leveling_worker() currently unconditionally puts a PEB on erase
> in
> the error case even it just been taken from the free_list and never
> used.
> In case the PEB was never used it can be put back on the free list
> saving an erase cycle.
Did you think about putting LEBs like that to the protection queue
instead of playing tricks with scheduler?
The protection queue is there in order to protect eraseblocks from the
wear-leveling subsystem (not the best choice of words, but terminology
could be improved separately)
And this is what you need - you want the wear-leveling subsystem to
leave the eraseblock alone for some time, right?
The protection queue uses the erase cycles counts instead of the actual
time, but this seems OK for the situation you described.
Just to remind why this protection queue exists - when the WL subsystem
gives an eraseblock to the user, this may be an eraseblock with a high
erase counter, and it may be a candidate for being moved, the WL
subsystem just did not have a chance to do this yet. But if we give the
eraseblock to the user, the user will probably write something there
soon, and we do not want the WL subsystem to initiate data relocation
while the user is writing the data there. Instead, we want to wait a
little, and then move the data in background without interfering with
the user.
Back to my idea - what if you add the MOVE_RETRY eraseblocks to the
protection queue. May be not to the tail, may be to the head.
next prev parent reply other threads:[~2015-11-24 12:58 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-23 18:09 [RFC] avoid a live lock in wear_leveling_worker() Sebastian Andrzej Siewior
2015-11-23 18:09 ` [RFC PATCH 1/2] mtd: nand: schedule() after releasing the device Sebastian Andrzej Siewior
2015-11-23 18:18 ` Peter Zijlstra
2015-11-25 17:35 ` [PATCH] mtd: nand: do FIFO processing in nand_get_device() Sebastian Andrzej Siewior
2015-11-30 16:15 ` Peter Zijlstra
2015-12-06 14:17 ` Sebastian Andrzej Siewior
2015-12-06 14:23 ` [PATCH v2] " Sebastian Andrzej Siewior
2015-12-02 18:52 ` [PATCH] " Brian Norris
2015-12-02 20:41 ` Sebastian Andrzej Siewior
2015-11-23 18:09 ` [RFC PATCH 2/2] mtd: ubi: wl: avoid erasing a PEB which is empty Sebastian Andrzej Siewior
2015-11-23 21:30 ` Richard Weinberger
2015-11-23 21:50 ` Richard Weinberger
2015-11-24 8:26 ` Sebastian Andrzej Siewior
2015-11-24 8:39 ` Richard Weinberger
2015-11-24 8:42 ` Sebastian Andrzej Siewior
2015-11-24 9:02 ` Richard Weinberger
2015-11-24 9:07 ` Sebastian Andrzej Siewior
2015-11-24 9:16 ` Richard Weinberger
2015-11-24 12:58 ` Artem Bityutskiy [this message]
2015-11-24 13:33 ` Sebastian Andrzej Siewior
2015-11-24 13:40 ` Artem Bityutskiy
2015-11-24 13:57 ` Artem Bityutskiy
2015-11-26 14:56 ` Sebastian Andrzej Siewior
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=1448369897.23789.47.camel@gmail.com \
--to=dedekind1@gmail.com \
--cc=bigeasy@linutronix.de \
--cc=computersforpeace@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=peterz@infradead.org \
--cc=richard@nod.at \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).