[PATCH] block2mtd oops in erase function.

Jörn Engel joern at lazybastard.org
Wed Feb 21 09:47:54 EST 2007


On Tue, 20 February 2007 22:02:54 -0500, Jason Lunz wrote:
> On Tue, Feb 20, 2007 at 09:55:13PM +0000, Jörn Engel wrote:
> > Is it ok if I just pass this URL?
> > http://kernel.org/git/?p=linux/kernel/git/joern/misc.git
> > 
> > The top three patches are test-worthy.
> 
> I'm running with all three. everything seems fine.

Great!

> Mount time of a ~56M jffs2 partition went from ~72s to ~54s.

Ouch!  While this is a significant improvement, 54s is still quite bad.
The 512MiB partition on the OLPC is mounting in ~3.4s with JFFS2 and
~60ms with LogFS.  Imo 3.4s is already bad, and 54s is way beyond.

Now where is time lost?  One candidate is erase block summary, enabling
it usually gives roughly a 6x performance improvement.  That would get
you down to ~9s.

Another next thing I suspect is the erase size.  The default is 4KiB,
which is rather small.  Can you try setting it to 64KiB or maybe even
128KiB?

Instead of passing "block2mtd=/dev/foo", you can pass
"block2mtd=/dev/foo,64KiB" if my memory doesn't fail me.

Changing the erase size to a multiple of the previous erase size should
be fine with JFFS2 (a smaller erase size could lead to data loss), but
you likely won't get better performance unless you recreate the
filesystem.  Maybe something like

$ mount /dev/mtdX /mnt -t jffs2
$ (cd /mnt && tar cvpf /tmp/foo.tgz .)
$ umount /mnt
$ flash_eraseall /dev/mtdX
$ mount /dev/mtdX /mnt -t jffs2
$ (cd /mnt && tar vpf /tmp/foo.tgz)
$ umount /dev/mtdX

Unless you are happy with the current mount time, of course.  Noone is
forcing you to change anything.

Jörn

-- 
Do not stop an army on its way home.
-- Sun Tzu




More information about the linux-mtd mailing list