[U-Boot] [PATCH/RFC] Some speed improvements to U-Boot JFFS2 code

Ilya Yanok yanok at emcraft.com
Sat Nov 1 02:00:26 CET 2008


Hello Michael,

Michael Lawnick wrote:
> 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)
>   

Sounds good. That is what we were expecting.

> 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
>   

You are right. We haven't just tried to use CFG_JFFS2_SORT_FRAGMENTS...

> c) I found no improvement with CFG_JFFS2_SORT_FRAGMENTS set (the way I
> detected b) ;-)
>   

Same as above... We don't use CFG_JFFS2_SORT_FRAGMENTS... But it's very
sad result really... I have no idea what is wrong with it...

> d) output of 'ls' is corrupted: no date and access right output,
> directories in / are shown multiple times

Can you please be more specific on this? Is this with
CFG_JFFS2_SORT_FRAGMENTS enabled or not? How did you create your FS? I
can't reproduce any of described symptoms on our system...

The only thing I can tell you for now is that the first patch from my
posting is wrong, the following patch fixes the problem:



More information about the U-Boot mailing list