
---------- Forwarded message ---------- From: Dan Merillat harik.attar@gmail.com Date: Jan 12, 2007 2:14 AM Subject: jffs2 fsload - SOLVED. To: u-boot-users@lists.sourceforge.net
Booting off jffs2 is now a valid configuration. The failure was that for each node, jffs2_1pass.c was doing an insertion sort. That's an O(N^2) operation, and that's not current filecount, that's every filename version that has ever existed on your flash.
Hi I'm very interested in your patch because my system is also suffering from extreme slow boot. However, currently I haven't the time to try your patch out (hopefully later though). Made a quick view of it though and it looks promising. Beyond you patch I too have identified some hotspots in the JFFS2 driver and is working on a patch myself which I think will complement yours.
I changed it from a insertion sort to a list-based mergesort (no extra heap requirements) and it read the filesystem in 650ms.
Very nice.
the spinner: all those compares added 15 seconds to the boot time. Removed.
Realy? That much?
The main problem is that there's no dcache on ARM, so we pay a massive penalty for function calls or even memory->register loads. Simple addition became quite expensive, hence changing offset+part->offset into offset.
This is not true. It depends on the ARM HW implementation if there is a dcache or not. Some has (like mine) and some don't.
Regards /Ronny