Load UBI faster

simon polette spolette at gmail.com
Wed May 13 11:03:55 EDT 2009


My NAND is 256MB but I use only a 130MB partition for UBI/UBIFS.
So I implemented the on-flash BBT, that made me save 120ms which is a
sizeable improvement.
On the other hand, skipping crc calculation for header doesn't seem to
save much time (perhaps ~10ms so it's difficult to measure the
difference).

Best regards,

Simon Polette
ADENEO

2009/5/7 Artem Bityutskiy <dedekind at infradead.org>:
> On Thu, 2009-05-07 at 08:22 +0300, Artem Bityutskiy wrote:
>> On Wed, 2009-05-06 at 09:26 +0200, simon polette wrote:
>> > I'm trying to improve boot time on a at91sam9261ek board. I boot on
>> > nand flash with ubifs. It take about 400ms to load ubi and ubifs.
>> > Do you know if fastboot technology, which consist in loading drivers
>> > asynchronously, is conceivable with UBI ?
>> > Thanks for your help.
>>
>> Fastbood is applicable in the situation when initialization
>> is mostly about sleeping and waiting for hw. In case of UBI,
>> it reads from flash and calculates CRC. The reading from NAND
>> is usuall synchronous, so this process takes 100% of your CPU.
>>
>> One way to optimize this a little would be to use on-flash
>> BBT. Usually the nand core scans full NAND to find bad blocks.
>> With on-flash BBT this could be avoided. But probably this
>> would not give you much.
>
> You could also play with CRC. ATM we use CRC32 for UBI headers.
> This is rather expensive if you CPU is slow. I'd try to hack
> UBI and see what changes if it does not calculate it. If it
> helps, you could try to consider CRC16 or adler32 instead of
> CRC32.
>
> --
> Best regards,
> Artem Bityutskiy (Битюцкий Артём)
>
>



More information about the linux-mtd mailing list