JFFS2 memLevel and windowBits
Karl(Kai) Ji
k.ji at cn.metrologic.com
Mon Mar 29 03:32:37 EST 2004
Hi all,
I am working on a VZ-board with 8MB DRAM and using uClinux-2.4.17 as kernel.
It is using JFFS2 to operate its FLASH(2MB) As a no-mmu system, memory
fragmation becomes a headache for a stable performace. So I am trying to
tune down memory usage by lower variable `memLevel' and `windowBits'. the
default value for memLevel is 8 and windowBits=15.
memLevel=7 and windowBits=15 seems to be ok but memLevel=8 and windowBits=14
unfortunately do not work. Why is that? From reading the comments in
zlib.h/zconf.h seems such modification is allowed.
/* The memory requirements for deflate are (in bytes):
(1 << (windowBits+2)) + (1 << (memLevel+9))
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
plus a few kilobytes for small objects. For example, if you want to reduce
the default memory requirements from 256K to 128K, compile with
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
Of course this will generally degrade compression (there's no free lunch).
The memory requirements for inflate are (in bytes) 1 << windowBits
that is, 32K for windowBits=15 (default value) plus a few kilobytes
for small objects.
*/
With windowBits=14, I got `inflate returned (-3)' error, which probably
comes from `invalid window size'.
Any hints is appreciated.
Karl
More information about the linux-mtd
mailing list