From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from top.free-electrons.com ([176.31.233.9] helo=mail.free-electrons.com) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1WYz75-00023l-9M for linux-mtd@lists.infradead.org; Sat, 12 Apr 2014 14:40:59 +0000 Date: Sat, 12 Apr 2014 11:40:00 -0300 From: Ezequiel Garcia To: linux-mtd@lists.infradead.org, David Woodhouse , Brian Norris Subject: Re: [PATCH 0/4] mtd: Fix wrong bad block account in ECC stats Message-ID: <20140412144000.GD583@arch.cereza> References: <1395403064-28113-1-git-send-email-ezequiel.garcia@free-electrons.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1395403064-28113-1-git-send-email-ezequiel.garcia@free-electrons.com> List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Mar 21, Ezequiel Garcia wrote: > This series addresses the wrong bad and bbt block accounting we currently > have in MTD. > > Notice that this is a very old issue, probably around since the dawn of time, > and nobody seem to care much about it. However, with the introduction of > the sysfs ECC stats access, it's easier to access this stats and easier to > see the issue. > > Currently, a device with eight blocks used for the BBT in the last partition > would show (getting ECC stats from sysfs): > > $ cat /sys/class/mtd/mtd2/ecc_stats > 0 0 10 0 > 0 0 4 0 > 0 0 8 0 > > The third column is the badblocks field in the ecc_stats structure. The > number of badblocks is obtained for each partition near the end of > allocate_partition(). The partition is scanned for badblocks and this > number is updated. This series fixes this by adding a check for BBT reserved > blocks, showing: > > $ cat /sys/class/mtd/mtd2/ecc_stats > 0 0 10 0 > 0 0 4 0 > 0 0 0 8 > > The first two patches have already been posted. I'm resending them here for > conveniency. > > Ezequiel Garcia (4): > mtd: Add sysfs attr to expose ECC stats > mtd: nand: Account the blocks used by the BBT in the ecc_stats > mtd: Introduce mtd_block_isreserved() > mtd: Account for BBT blocks when a partition is being allocated > > drivers/mtd/mtdcore.c | 24 ++++++++++++++++++++++++ > drivers/mtd/mtdpart.c | 13 ++++++++++++- > drivers/mtd/nand/nand_base.c | 1 + > drivers/mtd/nand/nand_bbt.c | 16 ++++++++++++++++ > include/linux/mtd/mtd.h | 2 ++ > include/linux/mtd/nand.h | 1 + > 6 files changed, 56 insertions(+), 1 deletion(-) > Any comments? -- Ezequiel García, Free Electrons Embedded Linux, Kernel and Android Engineering http://free-electrons.com