linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Zach Brown <zach.brown@ni.com>
To: <dwmw2@infradead.org>
Cc: <computersforpeace@gmail.com>,
	<boris.brezillon@free-electrons.com>, <richard@nod.at>,
	<dedekind1@gmail.com>, <linux-mtd@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v4 0/5] mtd: use ONFI bad blocks per LUN to calculate UBI bad PEB limit
Date: Tue, 1 Nov 2016 13:16:25 -0500	[thread overview]
Message-ID: <1478024190-13713-1-git-send-email-zach.brown@ni.com> (raw)

For ONFI-compliant NAND devices, the ONFI parameters report the maximum number
of bad blocks per LUN that will be encountered over the lifetime of the device,
so we can use that information to get a more accurate (and smaller) value for
the UBI bad PEB limit.

The ONFI parameter "maxiumum number of bad blocks per LUN" is the max number of
bad blocks that each individual LUN will ever ecounter. It is not the number of
bad blocks to reserve for the nand device per LUN in the device.

This means that in the worst case a UBI device spanning X LUNs will encounter
"maximum number of bad blocks per LUN" * X bad blocks. The implementation in
this patch assumes this worst case and allocates bad block accordingly.

These patches are ordered in terms of their dependencies, but ideally, all 5
would need to be applied for this to work as intended.

v1:
 * Changed commit message to address concerns from v1[1] about this patch set
   making best case assumptions.
v2:
 * Provided helper function for _max_bad_blocks
 * Two new patches
 * First new patch adds bb_per_lun and blocks_per_lun to nand_chip struct
 * Second new patch sets the new fields during nand_flash_detect_onfi
 * Max bad blocks calculation now uses the new nand_chip fields
v3:
 * Changed bb_per_lun and blocks_per_lun to bb_per_die and blocks_per_die
 * Corrected type of bb_per_die and blocks_per_die from little endian to host
   unsigned int

[1]
http://lkml.iu.edu/hypermail/linux/kernel/1505.1/04822.html


Jeff Westfahl (2):
  mtd: introduce function max_bad_blocks
  mtd: ubi: use 'max_bad_blocks' to compute bad_peb_limit if available

Zach Brown (3):
  mtd: nand: Add bb_per_die and blocks_per_die fields to nand_chip
  mtd: nand: implement 'max_bad_blocks' mtd function
  mtd: nand: set bb_per_die and blocks_per_die for ONFI compliant chips

 drivers/mtd/mtdpart.c        | 13 +++++++++++++
 drivers/mtd/nand/nand_base.c | 39 +++++++++++++++++++++++++++++++++++++++
 drivers/mtd/ubi/build.c      |  4 ++++
 include/linux/mtd/mtd.h      | 11 +++++++++++
 include/linux/mtd/nand.h     |  5 +++++
 5 files changed, 72 insertions(+)

--
2.7.4

             reply	other threads:[~2016-11-01 18:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-01 18:16 Zach Brown [this message]
2016-11-01 18:16 ` [PATCH v4 1/5] mtd: introduce function max_bad_blocks Zach Brown
2016-11-01 18:16 ` [PATCH v4 2/5] mtd: ubi: use 'max_bad_blocks' to compute bad_peb_limit if available Zach Brown
2016-11-01 18:16 ` [PATCH v4 3/5] mtd: nand: Add bb_per_die and blocks_per_die fields to nand_chip Zach Brown
2016-11-06 17:49   ` Boris Brezillon
2016-11-01 18:16 ` [PATCH v4 4/5] mtd: nand: implement 'max_bad_blocks' mtd function Zach Brown
2016-11-01 18:16 ` [PATCH v4 5/5] mtd: nand: set bb_per_die and blocks_per_die for ONFI compliant chips Zach Brown
2016-11-06 17:51 ` [PATCH v4 0/5] mtd: use ONFI bad blocks per LUN to calculate UBI bad PEB limit Boris Brezillon

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=1478024190-13713-1-git-send-email-zach.brown@ni.com \
    --to=zach.brown@ni.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=computersforpeace@gmail.com \
    --cc=dedekind1@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    /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).