From: Brian Norris <computersforpeace@gmail.com>
To: Jonas Gorski <jogo@openwrt.org>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>,
Florian Fainelli <f.fainelli@gmail.com>,
Kamal Dasu <kdasu.kdev@gmail.com>,
Simon Arlott <simon@fire.lp0.eu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
MTD Maling List <linux-mtd@lists.infradead.org>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] mtd: brcmnand: Workaround false ECC uncorrectable errors
Date: Wed, 2 Dec 2015 14:22:57 -0800 [thread overview]
Message-ID: <20151202222257.GS64635@google.com> (raw)
In-Reply-To: <CAOiHx=mAaU_nny5SmzAEmqBB=OTT_mqGcYhD7ZhjZWbG9wcKsw@mail.gmail.com>
On Wed, Dec 02, 2015 at 10:08:20PM +0100, Jonas Gorski wrote:
> On Wed, Dec 2, 2015 at 9:54 PM, Brian Norris
> <computersforpeace@gmail.com> wrote:
> > If that's really an issue (i.e., we have an implementation + data), I'm
> > sure we could add optimization to nand_check_erased_ecc_chunk() to
> > support the bitflip_threshold == 0 case.
>
> Maybe I'm missing something, but wasn't the point of introducing
> nand_check_erased_ecc_chunk that bitflips in erased pages should be
> treated as bitflips corrected by the ecc, and therefore fixed up
> before passing the data further on? So having a theshold of 0 would be
> wrong / no protection at all, and could be quite destructive on MLC
> nand, where bitflips in erased pages are rather common.
Yes, that would be pretty destructive on MLC NAND. But there might be
cases where this is reasonable. For instance, we might have:
(a) SLC NAND that specifies up to 1 bitflip per 512 bytes
(b) a Hamming ECC engine that can correct 1 bitflip
(c) said Hamming engine does not handle all-0xff pages correctly, nor
does it handle near-0xff pages (e.g., with a single 0 bit) correctly
Now, we might (for instance) allow up to ecc_strength / 2 bitflips in
erased pages [1], as a general rule, but for the above case, that means we
don't allow any on Hamming ECC. Hence, bitflip_threshold = 1 / 2 = 0.
This is kind of a degenerate case, so we might consider supporting it
differently than we would for BCH. e.g., don't use
nand_check_erased_ecc_chunk() at all.
Brian
[1] We might do this because we can expect that if an unprogrammed page
has N bitflips, there might be even more than N bitflips after
programming the page.
prev parent reply other threads:[~2015-12-02 22:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-28 19:23 [PATCH] mtd: brcmnand: Workaround false ECC uncorrectable errors Simon Arlott
2015-12-01 10:41 ` Jonas Gorski
2015-12-02 20:17 ` Simon Arlott
2015-12-02 20:44 ` Jonas Gorski
2015-12-02 20:54 ` Brian Norris
2015-12-02 21:06 ` Brian Norris
2015-12-02 21:08 ` Jonas Gorski
2015-12-02 21:29 ` Simon Arlott
2015-12-02 22:22 ` Brian Norris [this message]
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=20151202222257.GS64635@google.com \
--to=computersforpeace@gmail.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=boris.brezillon@free-electrons.com \
--cc=dwmw2@infradead.org \
--cc=f.fainelli@gmail.com \
--cc=jogo@openwrt.org \
--cc=kdasu.kdev@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=simon@fire.lp0.eu \
/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).