[RFC] slight UBI scan time improvement

Hamish Moffatt hamish at cloud.net.au
Wed Apr 23 20:10:26 EDT 2008


On Wed, Apr 23, 2008 at 10:40:46PM +1000, Hamish Moffatt wrote:
> On Wed, Apr 23, 2008 at 11:21:04AM +0300, Artem Bityutskiy wrote:
> > Hi,
> > 
> > On Wed, 2008-04-23 at 10:13 +0200, Matthieu CASTET wrote:
> > > > [    0.950000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung NAND 512MiB 3,3V 8-bit)
> > > > [    0.960000] Scanning device for bad blocks
> > > > [    1.000000] Bad eraseblock 494 at 0x03dc0000
> > > > [    1.050000] Bad eraseblock 1300 at 0x0a280000
> > > > [    1.140000] Bad eraseblock 2554 at 0x13f40000
> > > > [    1.160000] Bad eraseblock 2923 at 0x16d60000
> > > > [    1.200000] Bad eraseblock 3349 at 0x1a2a0000
> > > > [    1.230000] Bad eraseblock 3790 at 0x1d9c0000
> > > > [    6.890000] UBI: attached mtd9 to ubi0
> > > > 
> > > > 
> > > > 
> > > > Hamish
> > > 
> > > Do you know when the bad block scanning finish and the ubi scan start ?
> > 
> > Good point Matthieu. Indeed, _at least_ 1.23 sec is spend in the driver
> > for scanning against bad eraseblocks to build in-memory bad block table
> > (BBT). And it is probably more than 1.23 sec. If you start using
> > on-flash bad block table, this should go away. I never used on-flash
> > BBT, but I know MTD supports this and for example OLPC has on-flash BBT.
> 
> Well I think from past use of "time ubiattach ..." that most of
> the missing time is in the attach. 

Here's the evidence:

[    0.950000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung NAND 512MiB 3,3V 8-bit)
[    0.960000] Scanning device for bad blocks
[    1.000000] Bad eraseblock 494 at 0x03dc0000
[    1.050000] Bad eraseblock 1300 at 0x0a280000
[    1.140000] Bad eraseblock 2554 at 0x13f40000
[    1.160000] Bad eraseblock 2923 at 0x16d60000
[    1.200000] Bad eraseblock 3349 at 0x1a2a0000
[    1.230000] Bad eraseblock 3790 at 0x1d9c0000
[    1.250000] UBI: attaching mtd9 to ubi-1
[    6.890000] UBI: attached mtd9 to ubi0
[    6.900000] UBI: MTD device name:            "gen_nand.0"
[    6.900000] UBI: MTD device size:            512 MiB
[    6.910000] UBI: physical eraseblock size:   131072 bytes (128 KiB)
[    6.910000] UBI: logical eraseblock size:    129024 bytes
[    6.920000] UBI: number of good PEBs:        4090
[    6.920000] UBI: number of bad PEBs:         6
[    6.930000] UBI: smallest flash I/O unit:    2048
[    6.930000] UBI: VID header offset:          512 (aligned 512)
[    6.940000] UBI: data offset:                2048
[    6.940000] UBI: max. allowed volumes:       128
[    6.950000] UBI: wear-leveling threshold:    4096
[    6.950000] UBI: number of internal volumes: 1
[    6.960000] UBI: number of user volumes:     4
[    6.960000] UBI: available PEBs:             0
[    6.970000] UBI: total number of reserved PEBs: 4090
[    6.970000] UBI: number of PEBs reserved for bad PEB handling: 40
[    6.980000] UBI: max/mean erase counter: 29/1
[    6.980000] UBI: background thread "ubi_bgt0d" started, PID 641


Hamish
-- 
Hamish Moffatt VK3SB <hamish at debian.org> <hamish at cloud.net.au>



More information about the linux-mtd mailing list