linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: kyungsik.lee@lge.com (이경식)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 0/4] Add support for LZ4-compressed kernels
Date: Wed, 30 Jan 2013 13:03:31 +0900	[thread overview]
Message-ID: <005901cdfe9e$c49b4390$4dd1cab0$@lee@lge.com> (raw)
In-Reply-To: <20130129225508.GC30535@twin.jikos.cz>



> -----Original Message-----
> From: David Sterba [mailto:dsterba at suse.cz]
> Sent: Wednesday, January 30, 2013 7:55 AM
> To: Kyungsik Lee
> Cc: Russell King; Thomas Gleixner; Ingo Molnar; H. Peter Anvin; Michal
> Marek; linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org;
> linux-kbuild at vger.kernel.org; x86 at kernel.org; Nitin Gupta; Richard Purdie;
> Josh Triplett; Joe Millenbach; Andrew Morton; Albin Tonnerre;
> hyojun.im at lge.com; chan.jeong at lge.com; gunho.lee at lge.com;
> minchan.kim at lge.com; namhyung.kim at lge.com; raphael.andy.lee at gmail.com
> Subject: Re: [RFC PATCH 0/4] Add support for LZ4-compressed kernels
> 
> On Sat, Jan 26, 2013 at 02:50:43PM +0900, Kyungsik Lee wrote:
> > This patchset is for supporting LZ4 compressed kernel and initial
> > ramdisk on the x86 and ARM architectures.
> 
> Have you considered the 'high compression' mode of lz4?
> http://code.google.com/p/lz4/source/browse/trunk/lz4hc.c
> 
Yes, The high compression mode of lz4 is set as default
in the submitted patch. The figure shows:

Uncompressed size: 13MB
lz4: Normal compression mode
output size: 8.1MB (62.7%)
decompression time: 232ms(148ms, with enabled unaligned memory access)

lz4: High compression mode
output size: 6.8MB (52.3%)
decompression time: 251ms(167ms)

The size of output in NC(Normal Compression) is bigger than HC(High Compression)
But decompression in NC is a bit faster than HC in ARM based board.


I assume that 

> 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 ramdisk
> > for making the kernel boot more faster.
> 
> There's another potential user of lz4: btrfs. I've submitted a feature
> 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.
> 
> 
> david

  reply	other threads:[~2013-01-30  4:03 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-26  5:50 [RFC PATCH 0/4] Add support for LZ4-compressed kernels Kyungsik Lee
2013-01-26  5:50 ` [RFC PATCH 1/4] decompressors: add lz4 decompressor module Kyungsik Lee
2013-01-26  5:50 ` [RFC PATCH 2/4] lib: add support for LZ4-compressed kernels Kyungsik Lee
2013-01-26  5:50 ` [RFC PATCH 3/4] arm: " Kyungsik Lee
2013-01-26  5:50 ` [RFC PATCH 4/4] x86: " Kyungsik Lee
2013-01-28 22:25 ` [RFC PATCH 0/4] Add " Andrew Morton
2013-01-29  1:16   ` kyungsik.lee
2013-01-29  4:29   ` Nicolas Pitre
2013-01-29  6:18     ` H. Peter Anvin
2013-01-30 10:23     ` Johannes Stezenbach
2013-02-04  2:02       ` Markus F.X.J. Oberhumer
2013-02-04 10:50         ` Russell King - ARM Linux
2013-02-05 11:39           ` Johannes Stezenbach
2013-01-29  7:26   ` Richard Cochran
2013-01-29 10:15   ` Russell King - ARM Linux
2013-01-29 11:43     ` Egon Alter
2013-01-29 12:15       ` Russell King - ARM Linux
2013-02-01  8:15       ` kyungsik.lee
2013-01-30  3:36     ` H. Peter Anvin
2013-01-30 18:33       ` Nicolas Pitre
2013-01-31 21:48         ` H. Peter Anvin
2013-01-31 22:16           ` Nicolas Pitre
2013-01-31 22:18             ` H. Peter Anvin
2013-02-01  2:28               ` Nicolas Pitre
2013-02-01  6:37                 ` H. Peter Anvin
2013-01-29 21:09   ` Rajesh Pawar
2013-02-01  7:00     ` kyungsik.lee
2013-02-04  1:37       ` Markus F.X.J. Oberhumer
2013-01-29 22:55 ` David Sterba
2013-01-30  4:03   ` 이경식 [this message]
2013-01-30  4:27   ` 이경식
2013-02-01  7:13   ` kyungsik.lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='005901cdfe9e$c49b4390$4dd1cab0$@lee@lge.com' \
    --to=kyungsik.lee@lge.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).