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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.