From: Artem Bityutskiy <dedekind1@gmail.com>
To: Ivan Djelic <ivan.djelic@parrot.com>
Cc: Mike Dunn <mikedunn@newsguy.com>,
Richard Weinberger <richard@nod.at>,
Kevin Cernekee <cernekee@gmail.com>,
Jim Quinlan <jim2101024@gmail.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
Al Viro <viro@zeniv.linux.org.uk>,
Joel Reardon <reardonj@inf.ethz.ch>,
Brian Norris <computersforpeace@gmail.com>,
David Woodhouse <dwmw2@infradead.org>,
Shmulik Ladkani <shmulik.ladkani@gmail.com>
Subject: Re: MLC NAND: all 0xff after erase?
Date: Fri, 17 Aug 2012 12:51:21 +0300 [thread overview]
Message-ID: <1345197081.27859.37.camel@sauron.fi.intel.com> (raw)
In-Reply-To: <20120711174309.GA25743@parrot.com>
[-- Attachment #1: Type: text/plain, Size: 1494 bytes --]
On Wed, 2012-07-11 at 19:43 +0200, Ivan Djelic wrote:
> Or, conversely, we could decide that erased pages are simply not
> ecc-protected
> (which is the actual truth with many drivers), can contain anything
> (including
> bitflips), and should be signalled as erased and dealt with in upper
> layers...
I did not not investigate this in details, but I believe UBI and UBIFS
can be changed and they can allow for a number of bit-flips. There are
only few places (may be even 2 - one in UBI and one in UBIFS) which
check if the area contains all 0xFFs. I do not see any obstacles
improving this and implement a smarter functions which would take a
buffer, it's length, ecc step size, and max allowable bit-flips as a
parameter, and check if the page is empty. This could even be an MTD
helper, something like 'mtd_area_is_empty()'.
I think in UBI we only verify if an area is empty in the debugging code,
to make sure we never write over older data. Should be easily fixable.
In UBIFS probably in scanning/recovery code we need to find where free
space starts, probably in a couple of places. E.g., if we are scanning
the journal, and then hit a corrupted node, we want to know if it is the
last node or not. We check this by looking if the empty space starts
after the corruption - in the next min. I/O unit (NAND page), taking
into account the node length.
So I think we only need someone brave enough to implement this.
--
Best Regards,
Artem Bityutskiy
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2012-08-17 9:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-11 0:36 MLC NAND: all 0xff after erase? Brian Norris
2012-07-11 6:41 ` Richard Genoud
2012-07-13 21:22 ` Brian Norris
2012-07-11 16:46 ` Mike Dunn
2012-07-11 17:43 ` Ivan Djelic
2012-08-07 10:11 ` Calvin Johnson
[not found] ` <CAEhpT-UMk0hiDaKAwn8GtS0B3HHRudbSUSHpZ68-i+LmMNH-=A@mail.gmail.com>
2012-08-07 20:00 ` Ivan Djelic
2012-08-09 3:50 ` Calvin Johnson
2012-08-17 9:51 ` Artem Bityutskiy [this message]
2012-08-17 13:54 ` Matthieu CASTET
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=1345197081.27859.37.camel@sauron.fi.intel.com \
--to=dedekind1@gmail.com \
--cc=cernekee@gmail.com \
--cc=computersforpeace@gmail.com \
--cc=dwmw2@infradead.org \
--cc=ivan.djelic@parrot.com \
--cc=jim2101024@gmail.com \
--cc=linux-mtd@lists.infradead.org \
--cc=mikedunn@newsguy.com \
--cc=reardonj@inf.ethz.ch \
--cc=richard@nod.at \
--cc=shmulik.ladkani@gmail.com \
--cc=viro@zeniv.linux.org.uk \
/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