jffs zlib tuning

NoiseEHC NoiseEHC at freemail.hu
Mon Jan 7 12:15:26 EST 2008


This message is primarily written for Bernardo Innocenti but everybody 
with relevant knowledge is welcomed to give some insight.

I have decided two months ago that will write an asm implementation for 
zlib inflate (decompression) since Mitch Bradley said that the read 
speed is 3MB/sec which is dominated by the decompression code.
http://lists.laptop.org/pipermail/devel/2007-November/007527.html


Since then I went through the pain of installing linux in VirtualPC, 
compiling the code in linux and ended up with a kernel module which can 
test zlib code finally (took a month of my spare time, if I would have 
known this in advance I would not have started...). Now I understand the 
zlib code but need some info before acting on wrong assumptions:

1. Did anybody profile the kernel while reading files? Last thing I red 
on this list is that the profiler does not work on the XO in kernel 
mode. Did anybody fix that?
2. How does the file reading work? As I imagine the flash is read by DMA 
and the resulting data is uncompressed to a buffer. Is it correct?. Is 
the decompressed data gets copied to the target location or does it gets 
decompressed to their final place? If it is copied, did somebody profile 
how much time it takes? These questions are important to know how much 
L2 cache is trashed in the process and which data needs prefetching.
3. How long is the average data length which jffs2 uses for calling inflate?
4. What is the average size of the length/distance code table?
4. Bernardo, as I imagine you are compiling kernels every day. If I send 
you a "patch" (normally a rewritten inffast.c), would you test it on a 
real XO machine, please?

Thanks.




More information about the Devel mailing list