[U-Boot] [PATCH/RFC] Some speed improvements to U-Boot JFFS2 code
Michael Lawnick
nospam_lawnick at gmx.de
Thu Oct 16 14:36:16 CEST 2008
Ilya Yanok said the following:
> Hi Wolfgang,
>
> Wolfgang Denk wrote:
>>> here is a set of changes we made to improve U-Boot JFFS2 code
>>> performance. We still can't reach Linux's performance but improvements
>>> are significant.
>>>
>>> Any comments are welcome.
>>>
>>
>> Are these patches independent of each other, or are all of them
>> needed, and if so, is there any specific order in which they have to
>> be applied?
>>
> Argh... I forgot to create patches with xxx/nnn notation...
> Here is the order of patches:
> 0001-jffs2-add-sector_size-field-to-part_info-structure.patch
> 0002-jffs2-rewrite-jffs2-scanning-code-based-on-Linux-on.patch
> 0003-jffs2-summary-support.patch
> 0004-jffs2-fix-searching-for-latest-version-in-jffs2_1pa.patch
> 0005-jffs2-add-buffer-to-cache-flash-accesses.patch
> 0006-jffs2-cache-data_crc-results.patch
>
> It's the order of changes in my tree and thus it's the simplest way to
> apply this patches. But actual dependencies are as follows:
> 0001 and 0004 don't depend on anything
> 0002 depends on 0001
> 0003, 0005 and 0006 depend on 0002
>
> Regards, Ilya.
I have put these patches to our board (MPC8548, NOR Flash, MTD partition
size 48MB).
a) performance has improved (execution time of 'ls' reduced from ~16s to
~1.5s)
b) there is a bug in the patch
0005-jffs2-add-buffer-to-cache-flash-accesses:
The passage
@@ -724,12 +731,14 @@ jffs2_1pass_read_inode(struct b_lists *pL, u32
inode, char *dest)
latestVersion = jNode->version;
}
}
- put_fl_mem(jNode);
+ if (pL->readbuf == NULL)
+ put_fl_mem(jNode);
}
#endif
should be
@@ -724,12 +731,14 @@ jffs2_1pass_read_inode(struct b_lists *pL, u32
inode, char *dest)
latestVersion = jNode->version;
}
}
- put_fl_mem(jNode);
+ if (pL->readbuf == NULL)
+ put_fl_mem(jNode, NULL);
}
#endif
c) I found no improvement with CFG_JFFS2_SORT_FRAGMENTS set (the way I
detected b) ;-)
d) output of 'ls' is corrupted: no date and access right output,
directories in / are shown multiple times.
--
Michael Lawnick
Software Design Engineer
Lise-Meitner-Str. 7/1
89081 Ulm
Tel: +49 731 9533 2066
Michael.Lawnick.ext at nsn.com
http://www.nokiasiemensnetworks.com/global/
Think before you print
More information about the U-Boot
mailing list