On Sat, Jan 26, 2013 at 02:50:43PM +0900, Kyungsik Lee wrote:Yes, I guess squash fs and crypto would also benefit from lz4.This patchset is for supporting LZ4 compressed kernel and initial ramdisk onHave you considered the 'high compression' mode of lz4?
the x86 and ARM architectures.
http://code.google.com/p/lz4/source/browse/trunk/lz4hc.c
The compression format remains the same, the compressor tries harder
(but is slower), resulting compression ratio is better.
an examle compression for vmlinux.bin of x86_64 build:
input size: 16509520 bytes
lz4 (svn 88):
output size: 6393684 (38.7%)
compression time: 41.7 ms (395 MB/s)
decompression time: 13.7 ms (1204 MB/s)
lz4hc (svn 88):
output size: 5319137 (32.2%)
compression time: 683 ms (24 MB/s)
decompression time: 13.1 ms (1259 MB/s)
compressed file delta: 6393684 - 5319137 = 1074547 ~ 1MB
tested on a Nehalem box; same test on my slow desktop gives
lz4:
compression time: 97 ms (169 MB/s)
decompression time: 25.7 ms (643 MB/s)
lz4hc:
compression time: 1386 ms (11 MB/s)
decompression time: 26 ms (619 MB/s)
While the decompression time is almost the same, image size is smaller.
The kernel image compression is run in userspace and the low speed is
not much of concern for a one-time operation.
For the reference, lzo (current kernel version) run on the destktop:
output size: 6026256 (36.5%)
decompression time: 79.6 ms (207 MB/s)
It seems that itâs worth trying LZ4 compressed kernel image or ramdiskThere's another potential user of lz4: btrfs. I've submitted a feature
for making the kernel boot more faster.
preview integrating lz4 compression
http://thread.gmane.org/gmane.comp.file-systems.btrfs/15744
and we have tried to integrate the HC mode as well
http://thread.gmane.org/gmane.comp.file-systems.btrfs/18165
.
So far it's on a slow track, conceptually it works, but I the code needs
some work so it could live under lib/* (we've used the svn sources
with minor changes, no kernel coding style). It would be easier for me
to enhance the existing lib/lz4/* codebase.
Also zram could consider lz4, I'm not sure if there are other potential
users.