[U-Boot] Does uboot EBS(erase block summary) to reduce JFFS2 scaning time?
Joakim Tjernlund
joakim.tjernlund at transmode.se
Tue Nov 3 10:08:06 CET 2009
HeLei <leon.he at msn.com> wrote on 03/11/2009 09:21:04:
> Thank you, Jocke
>
> > Subject: Re: [U-Boot] Does uboot EBS(erase block summary) to reduce JFFS2
> scaning time?
> > To: leon.he at msn.com
> > CC: u-boot at lists.denx.de
> > From: joakim.tjernlund at transmode.se
> > Date: Tue, 3 Nov 2009 08:41:08 +0100
> >
> >
> > >
> > > Hi, All
> > >
> > >
> > >
> > > Each time JFFS2 initialized, uboot need to scan the whole flash. This is
> > > fairly time consuming.
> > >
> > >
> > >
> > > So EBS(erase block summary) is used to JFFS2 to reduce mounting time. And I
> > > believe this can also be used to UBOOT to reduce booting time.
> > >
> > >
> > >
> > > Does UBOOT support this feature? or does any other solution in uboot to
> > > reduce JFFS2 scaning time?
> >
> > Don't think EBS is going to buy you much. The main problem is that the
>
> You mean even EBS is used in UBOOT, it will not give me much help. But it
> seems there is great efficiency in jffs2 mounting, from some artical in
> internet, such as:http://www.embedded-linux.co.uk/tutorial/jffs2-summary
I tried summary long time ago and it wasn't such a big win. It has other
drawbacks too such as not beeing able to mark nodes on NOR flash obsolete.
>
> > scanning of JFFS2 in u-boot is inefficient. u-boot could take a
> > hint from the kernel impl. of JFFS2 to reduce scanning. The biggest
> > ones are:
> > - do no scan the whole EB when it is empty.
> If we don't scan the block, how can we tell the EB is empty?
This was the key for me. I added an optimization that had been forgotten:
just scan the first 512-1024 bytes, if these are empty, assume that
the rest of the EB is too. You can find this optimization in the kernel
also.
Once this optimization was in place, summary didn't help me.
>
> > - impl. a better crc32(use the one from linux)
> > - Don't scan more than you have to, that is, ls/read /some/file
> > should only scan and keep records to do the ls/read of that
> > particular file.
> So we have to have an index, or something like that, to tell which file in
> which EBs. This index is always generated by the scan for the first time.
> The only workaround like this idea is to divide the flash into several
> paritions, the scan is performed on certain partition each time.
>
> >
> > There were some patches floating around quite some time ago to improve
> > scanning but I don't think they made it into the u-boot repo.
> >
> >
>
> As far as I know, YAFFS2 also has this problem however the code is ported
> from linux. It's also inefficient for YAFFS2 scanning?
No idea, I am not using YAFFS2
More information about the U-Boot
mailing list