[PATCH] [MTD] NAND: Lazily BBT construction

Artem Bityutskiy dedekind at infradead.org
Fri Nov 24 08:01:39 EST 2006


On Fri, 2006-11-24 at 15:42 +0300, Konstantin Baydarov wrote:
> This is the implementation of lazy BBT construction. It introduces
> a new config option that allows to construct BBT(bad block table)
> lazily for NAND chips with memory based BBT.
> The main goal of the feature introduced is to decrease boot time.
> How it works: BBT is filled only when we check if block is bad. NAND
> is
> scanned and BBT entries is constructed from topmost unscanned block to
> requested.
> By default BBT is constructed during boot. To enable lazily
> construction NAND_LAZY_BBT bit should be set in options field of
> structure nand_chip. 

The idea looks nice. But I still have 2 questions.

1. Why don't you instead spawn a scanning kernel thread and do not build
BBT in background. After the flash is scanned you just kill the thread.
Also you block any task which accesses an unscanned eraseblock till the
scanning thread scanned this eraseblock.

2. nand_base.c looks quite complex now. I wonder if it makes sense to do
lazy BBT building always, I mean not to introduce this option but make
it the only and default way? Well, it may make boot time a bit longer in
case of small flashes, but I am not sure we should care.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)





More information about the linux-mtd mailing list