Fastmap and Atmel sam-ba

Richard Genoud richard.genoud at gmail.com
Mon Aug 26 05:31:34 EDT 2013


2013/8/23 Richard Weinberger <richard at nod.at>:
> Hi again,
>
> I have an idea what's going on. As you are using a real (and rather slow) NAND device
> erasing PEBs takes some time.
> If you attach the very first time from an image created by ubinize UBI has to erase
> all PEBs, parallel to that UBIFS requests one PEB but does not get one.
> In this case UBI has to erase one PEB in sync-mode.
>
> I have only nandsim, which is far to fast to hit that bug.
> Who wants to donate me a board with NAND memory? ;-)
>
> Anyway, can you please test the attached patch?
To answer your previous question, yes, I see the issue every time
(i.e. I can never boot)

I tried your patch, and it worked ! Good catch !

Tried it with ubi.fm_autoconvert=0, every thing works fine.

With ubi.fm_autoconvert=1, I see this at the 1st boot (It boots fine):
[    0.812500] UBI: default fastmap pool size: 95
[    0.820312] UBI: default fastmap WL pool size: 25
[    0.820312] UBI: attaching mtd2 to ubi0
[    1.273437] UBI: scanning is finished
[    1.296875] UBI: attached mtd2 (name "UBI", size 245 MiB) to ubi0
[    1.304687] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    1.304687] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    1.312500] UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
[    1.320312] UBI: good PEBs: 1964, bad PEBs: 0, corrupted PEBs: 0
[    1.328125] UBI: user volume: 3, internal volumes: 1, max. volumes count: 128
[    1.328125] UBI: max/mean erase counter: 0/0, WL threshold: 4096,
image sequence number: 1933127782
[    1.335937] UBI: available PEBs: 306, total reserved PEBs: 1658,
PEBs reserved for bad PEB handling: 40
[    1.343750] UBI: background thread "ubi_bgt0d" started, PID 352
[    1.421875] UBI error: ubi_update_fastmap: could not find any anchor PEB
[    1.429687] UBI warning: ubi_update_fastmap: Unable to write new
fastmap, err=-28
[    1.437500] UBIFS: background thread "ubifs_bgt0_0" started, PID 354
[    1.515625] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    1.515625] UBIFS: LEB size: 126976 bytes (124 KiB), min./max. I/O
unit sizes: 2048 bytes/2048 bytes
[    1.523437] UBIFS: FS size: 61583360 bytes (58 MiB, 485 LEBs),
journal size 8634368 bytes (8 MiB, 68 LEBs)
[    1.531250] UBIFS: reserved for root: 0 bytes (0 KiB)
[    1.539062] UBIFS: media format: w4/r0 (latest is w4/r0), UUID
5CA89910-239E-4C4B-9494-94E5C2990E6F, small LPT model
[    1.554687] VFS: Mounted root (ubifs filesystem) on device 0:11.
[    1.554687] devtmpfs: mounted
[    1.562500] Freeing unused kernel memory: 112K (c0335000 - c0351000)
[    2.195312] UBI error: ubi_update_fastmap: could not find any anchor PEB
[    2.195312] UBI warning: ubi_update_fastmap: Unable to write new
fastmap, err=-28


and at the 2nd boot, no more fastmap error and scanning is slow:
[    0.804687] UBI: default fastmap pool size: 95
[    0.804687] UBI: default fastmap WL pool size: 25
[    0.812500] UBI: attaching mtd2 to ubi0
[    1.562500] UBI: scanning is finished
[    1.585937] UBI: attached mtd2 (name "UBI", size 245 MiB) to ubi0
[    1.585937] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    1.593750] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    1.601562] UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
[    1.609375] UBI: good PEBs: 1964, bad PEBs: 0, corrupted PEBs: 0
[    1.609375] UBI: user volume: 3, internal volumes: 1, max. volumes count: 128
[    1.617187] UBI: max/mean erase counter: 2/0, WL threshold: 4096,
image sequence number: 1933127782
[    1.625000] UBI: available PEBs: 306, total reserved PEBs: 1658,
PEBs reserved for bad PEB handling: 40
[    1.640625] UBI: background thread "ubi_bgt0d" started, PID 352
[    1.656250] UBIFS: background thread "ubifs_bgt0_0" started, PID 354
[    1.718750] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    1.726562] UBIFS: LEB size: 126976 bytes (124 KiB), min./max. I/O
unit sizes: 2048 bytes/2048 bytes
[    1.734375] UBIFS: FS size: 61583360 bytes (58 MiB, 485 LEBs),
journal size 8634368 bytes (8 MiB, 68 LEBs)
[    1.742187] UBIFS: reserved for root: 0 bytes (0 KiB)
[    1.750000] UBIFS: media format: w4/r0 (latest is w4/r0), UUID
5CA89910-239E-4C4B-9494-94E5C2990E6F, small LPT model
[    1.757812] VFS: Mounted root (ubifs filesystem) on device 0:11.
[    1.765625] devtmpfs: mounted
[    1.765625] Freeing unused kernel memory: 112K (c0335000 - c0351000)

and at the 3rd boot, every thing is normal (and fast !) \o/ :
[    0.820312] UBI: default fastmap pool size: 95
[    0.828125] UBI: default fastmap WL pool size: 25
[    0.828125] UBI: attaching mtd2 to ubi0
[    0.937500] UBI: attached by fastmap
[    0.937500] UBI: fastmap pool size: 95
[    0.945312] UBI: fastmap WL pool size: 25
[    0.960937] UBI: attached mtd2 (name "UBI", size 245 MiB) to ubi0
[    0.968750] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    0.976562] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    0.984375] UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
[    0.992187] UBI: good PEBs: 1964, bad PEBs: 0, corrupted PEBs: 0
[    0.992187] UBI: user volume: 3, internal volumes: 1, max. volumes count: 128
[    1.000000] UBI: max/mean erase counter: 2/0, WL threshold: 4096,
image sequence number: 1933127782
[    1.007812] UBI: available PEBs: 306, total reserved PEBs: 1658,
PEBs reserved for bad PEB handling: 40
[    1.015625] UBI: background thread "ubi_bgt0d" started, PID 352
[    1.039062] UBIFS: background thread "ubifs_bgt0_0" started, PID 354
[    1.085937] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    1.093750] UBIFS: LEB size: 126976 bytes (124 KiB), min./max. I/O
unit sizes: 2048 bytes/2048 bytes
[    1.101562] UBIFS: FS size: 61583360 bytes (58 MiB, 485 LEBs),
journal size 8634368 bytes (8 MiB, 68 LEBs)
[    1.109375] UBIFS: reserved for root: 0 bytes (0 KiB)
[    1.117187] UBIFS: media format: w4/r0 (latest is w4/r0), UUID
5CA89910-239E-4C4B-9494-94E5C2990E6F, small LPT model
[    1.125000] VFS: Mounted root (ubifs filesystem) on device 0:11.
[    1.132812] devtmpfs: mounted
[    1.140625] Freeing unused kernel memory: 112K (c0335000 - c0351000)

Thanks !

-- 
for me, ck means con kolivas and not calvin klein... does it mean I'm a geek ?



More information about the linux-mtd mailing list