From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Richard Weinberger <richard@nod.at>,
linux-mtd@lists.infradead.org, alex@nextthing.co,
Daniel Walter <dwalter@sigma-star.at>
Subject: Re: [RFC] ubihealthd
Date: Fri, 15 Apr 2016 11:02:36 +0200 [thread overview]
Message-ID: <20160415110236.751cb28e@bbrezillon> (raw)
In-Reply-To: <20160415062604.GA31101@pengutronix.de>
On Fri, 15 Apr 2016 08:26:04 +0200
Sascha Hauer <s.hauer@pengutronix.de> wrote:
> Hi Richard, Daniel,
>
> On Thu, Nov 05, 2015 at 11:59:59PM +0100, Richard Weinberger wrote:
> > ubihealthd is a tiny C program which takes care of your NAND.
> > It will trigger re-reads and scrubbing such that read-disturb and
> > data retention will be addressed before data is lost.
> > Currently the policy is rather trivial. It re-reads every PEB within
> > a given time frame, same for scrubbing and if a PEB's read counter exceeds
> > a given threshold it will also trigger a re-read.
> >
> > At ELCE some people asked why this is done in userspace.
> > The reason is that this is a classical example of kernel offers mechanism
> > and userspace the policy. Also ubihealthd is not mandatory.
> > Depending on your NAND it can help you increasing its lifetime.
> > But you won't lose data immediately if it does not run for a while.
> > It is something like smartd is for hard disks.
> > I did this also in kernel space and it was messy.
>
> I gave ubihealthd a try and it basically works as expected. I let it run
> on a UBI device with a ton of (artificial) bitflips and the demon crawls
> over them moving the data away.
>
> Do you have plans to further work on this and to integrate it into the
> kernel and mtd-utils?
>
> One thing I noticed is that ubihealthd always scrubs blocks, even when
> there are no bitflips in that block. Why is that done? I would assume
> that rewriting a block when there are more bitflips than we can accept
> is enough, no?
Yep, that's my opinion too: we should not scrub the block if we're
below the bitflip_threshold. If one wants to be conservative, and
scrub as soon as there's a single bitflip, he can always manually set
bitflips_threshold to something really low.
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2016-04-15 9:02 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-05 22:59 [RFC] ubihealthd Richard Weinberger
2015-11-05 23:00 ` [PATCH 1/4] Add kernel style linked lists Richard Weinberger
2015-11-05 23:00 ` [PATCH 2/4] Include new ioctls and struct in ubi-user.h Richard Weinberger
2015-11-05 23:00 ` [PATCH 3/4] Initial implementation for ubihealthd Richard Weinberger
2016-04-15 6:38 ` Sascha Hauer
2015-11-05 23:00 ` [PATCH 4/4] Documentation " Richard Weinberger
2016-04-15 6:26 ` [RFC] ubihealthd Sascha Hauer
2016-04-15 9:02 ` Boris Brezillon [this message]
2016-07-05 17:27 ` Daniel Walter
[not found] <f9de52c909c44f5daa7bcb154ec27e2e@SIWEX5A.sing.micron.com>
2017-06-27 13:42 ` Richard Weinberger
[not found] <9b03f4d6e2004f07b30a13cfa4cfcc96@SIWEX5A.sing.micron.com>
2017-06-27 14:51 ` Richard Weinberger
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=20160415110236.751cb28e@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=alex@nextthing.co \
--cc=dwalter@sigma-star.at \
--cc=linux-mtd@lists.infradead.org \
--cc=richard@nod.at \
--cc=s.hauer@pengutronix.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