linux-arm-kernel.lists.infradead.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; 32+ messages in thread
From: Kyungsik Lee @ 2013-01-26  5:50 UTC (permalink / raw)
  To: linux-arm-kernel

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] 32+ messages in thread

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

Thread overview: 32+ 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-01-30  4:03   ` 이경식
2013-01-30  4:27   ` 이경식
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).