Dynamic Rubin compression performance in JFFS2 on iPAQ

Russ Dill Russ.Dill at asu.edu
Mon Aug 27 11:28:57 EDT 2001


On 27 Aug 2001 11:04:59 -0400, Christian, Andrew wrote:
> We recently updated the iPAQ bootldr (version 2.15.0 on  www.handhelds.org)
> to support booting the kernel out of JFFS2.  In the process of doing this,
> we ran into difficulties uncompressing kernel images from non-sorted lists
> of file fragments - in particular, we had troubles with DYNRUBIN
> decompression.
> 
> That caused us to look at the benefits of the different compression
> algorithms in JFFS2.  On a typical iPAQ with approximately 45 Mbytes of
> uncompressed data, we see the following numbers:
> 				
>         Fragments	    Compressed Uncompressed   Saved     Saved
> 				(bytes)     (bytes)    (bytes)     (%)
> 
> NONE          813         248473      248473          0      0%   
> ZLIB        12287       20886586    46882145   25995559     55%   	
> DYNRUBIN       70	         20864       21490        626	 3%
> RTIME           5	            94         115         21     18%
> 
> Total       13175       21156017    47152223   25996206     55%
> 
> These numbers are representative of the different iPAQs we tested - in fact,
> DYNRUBIN in this iPAQ saved the most bytes of any of the tested iPAQS.
> 
> Including DYNRUBIN compression in the iPAQ Linux kernel requires an
> additional 5793 bytes (a compressed zImage) 
> 
> For the moment, we have added a CONFIG option to turn off DYNRUBIN
> compression for iPAQs --- decompression is left turned on for backward
> compatibility.
> 
> We're curious - what is the intended target of DYNRUBIN compression?  We
> haven't seen any advantages from including it on the iPAQ, but it must be
> advantageous for some system or data type.  Anyone?

I've allready written jffs2 boot code. DYNRUBIN can compress something
that has been gzipped, but its not worth it. I think you save more space
if you just put a straight vmlinux in the jffs2 image. Also, turning on
the I-cache is very important for speed. Also, the code contains its own
deflate algorithm that saves a lot of space over including zlib. My
jffs2/cramfs code is here

http://russ.dhs.org/load_kernel.html

It will get updated as it gets integrated into blob





More information about the linux-mtd mailing list