linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/4] Add support for LZ4-compressed kernels
@ 2013-01-26  5:50 Kyungsik Lee
  2013-01-26  5:50 ` [RFC PATCH 1/4] decompressors: add lz4 decompressor module Kyungsik Lee
                   ` (5 more replies)
  0 siblings, 6 replies; 30+ messages in thread
From: Kyungsik Lee @ 2013-01-26  5:50 UTC (permalink / raw)
  To: Russell King, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Michal Marek, linux-arm-kernel, linux-kernel, linux-kbuild, x86
  Cc: Nitin Gupta, Richard Purdie, Josh Triplett, Joe Millenbach,
	Andrew Morton, Albin Tonnerre, hyojun.im, chan.jeong, gunho.lee,
	minchan.kim, namhyung.kim, raphael.andy.lee, Kyungsik Lee

This patchset is for supporting LZ4 compressed kernel and initial ramdisk on
the x86 and ARM architectures.

According to http://code.google.com/p/lz4/, LZ4 is a very fast lossless
compression algorithm and also features an extremely fast decoder.

Kernel Decompression APIs are based on implementation by Yann Collet
(http://code.google.com/p/lz4/source/checkout).
De/compression Tools are also provided from the site above.

The initial test result on ARM(v7) based board shows that the size of kernel
with LZ4 compressed is 8% bigger than LZO compressed  but the decompressing
speed is faster(especially under the enabled unaligned memory access).

Test: 3.4 based kernel built with many modules
Uncompressed kernel size: 13MB
lzo: 6.3MB, 301ms
lz4: 6.8MB, 251ms(167ms, with enabled unaligned memory access)

It seems that it’s worth trying LZ4 compressed kernel image or ramdisk 
for making the kernel boot more faster.

Thanks,
Kyungsik


Kyungsik Lee (4):
  decompressors: add lz4 decompressor module
  lib: add support for LZ4-compressed kernels
  arm: add support for LZ4-compressed kernels
  x86: add support for LZ4-compressed kernels

 arch/arm/Kconfig                      |   1 +
 arch/arm/boot/compressed/.gitignore   |   1 +
 arch/arm/boot/compressed/Makefile     |   3 +-
 arch/arm/boot/compressed/decompress.c |   4 +
 arch/arm/boot/compressed/piggy.lz4.S  |   6 +
 arch/x86/Kconfig                      |   1 +
 arch/x86/boot/compressed/Makefile     |   5 +-
 arch/x86/boot/compressed/misc.c       |   4 +
 include/linux/decompress/unlz4.h      |  10 ++
 include/linux/lz4.h                   |  62 +++++++++++
 init/Kconfig                          |  13 ++-
 lib/Kconfig                           |   7 ++
 lib/Makefile                          |   2 +
 lib/decompress.c                      |   5 +
 lib/decompress_unlz4.c                | 199 ++++++++++++++++++++++++++++++++++
 lib/lz4/Makefile                      |   1 +
 lib/lz4/lz4_decompress.c              | 199 ++++++++++++++++++++++++++++++++++
 lib/lz4/lz4defs.h                     | 129 ++++++++++++++++++++++
 scripts/Makefile.lib                  |   5 +
 usr/Kconfig                           |   9 ++
 20 files changed, 663 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/boot/compressed/piggy.lz4.S
 create mode 100644 include/linux/decompress/unlz4.h
 create mode 100644 include/linux/lz4.h
 create mode 100644 lib/decompress_unlz4.c
 create mode 100644 lib/lz4/Makefile
 create mode 100644 lib/lz4/lz4_decompress.c
 create mode 100644 lib/lz4/lz4defs.h

-- 
1.8.0.3


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2013-02-05 11:41 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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-02-01  7:13   ` kyungsik.lee

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).