ce91b64f00
* Reduce stack usage of many zstd functions, none use over 388 B anymore. * Remove an incorrect `const` in `xxhash`.
97 lines
3.5 KiB
Diff
97 lines
3.5 KiB
Diff
From 8bc9a0ae5c86a6d02d9a5274b9965ddac0e8d330 Mon Sep 17 00:00:00 2001
|
|
From: Nick Terrell <terrelln@fb.com>
|
|
Date: Wed, 28 Jun 2017 22:00:00 -0700
|
|
Subject: [PATCH v2 0/4] Add xxhash and zstd modules
|
|
|
|
Hi all,
|
|
|
|
This patch set adds xxhash, zstd compression, and zstd decompression
|
|
modules. It also adds zstd support to BtrFS and SquashFS.
|
|
|
|
Each patch has relevant summaries, benchmarks, and tests.
|
|
|
|
Best,
|
|
Nick Terrell
|
|
|
|
Changelog:
|
|
|
|
v1 -> v2:
|
|
- Make pointer in lib/xxhash.c:394 non-const (1/4)
|
|
- Use div_u64() for division of u64s (2/4)
|
|
- Reduce stack usage of ZSTD_compressSequences(), ZSTD_buildSeqTable(),
|
|
ZSTD_decompressSequencesLong(), FSE_buildDTable(), FSE_decompress_wksp(),
|
|
HUF_writeCTable(), HUF_readStats(), HUF_readCTable(),
|
|
HUF_compressWeights(), HUF_readDTableX2(), and HUF_readDTableX4() (2/4)
|
|
- No zstd function uses more than 400 B of stack space (2/4)
|
|
|
|
Nick Terrell (4):
|
|
lib: Add xxhash module
|
|
lib: Add zstd modules
|
|
btrfs: Add zstd support
|
|
squashfs: Add zstd support
|
|
|
|
fs/btrfs/Kconfig | 2 +
|
|
fs/btrfs/Makefile | 2 +-
|
|
fs/btrfs/compression.c | 1 +
|
|
fs/btrfs/compression.h | 6 +-
|
|
fs/btrfs/ctree.h | 1 +
|
|
fs/btrfs/disk-io.c | 2 +
|
|
fs/btrfs/ioctl.c | 6 +-
|
|
fs/btrfs/props.c | 6 +
|
|
fs/btrfs/super.c | 12 +-
|
|
fs/btrfs/sysfs.c | 2 +
|
|
fs/btrfs/zstd.c | 433 ++++++
|
|
fs/squashfs/Kconfig | 14 +
|
|
fs/squashfs/Makefile | 1 +
|
|
fs/squashfs/decompressor.c | 7 +
|
|
fs/squashfs/decompressor.h | 4 +
|
|
fs/squashfs/squashfs_fs.h | 1 +
|
|
fs/squashfs/zstd_wrapper.c | 150 ++
|
|
include/linux/xxhash.h | 236 +++
|
|
include/linux/zstd.h | 1157 +++++++++++++++
|
|
include/uapi/linux/btrfs.h | 8 +-
|
|
lib/Kconfig | 11 +
|
|
lib/Makefile | 3 +
|
|
lib/xxhash.c | 500 +++++++
|
|
lib/zstd/Makefile | 18 +
|
|
lib/zstd/bitstream.h | 374 +++++
|
|
lib/zstd/compress.c | 3479 ++++++++++++++++++++++++++++++++++++++++++++
|
|
lib/zstd/decompress.c | 2526 ++++++++++++++++++++++++++++++++
|
|
lib/zstd/entropy_common.c | 243 ++++
|
|
lib/zstd/error_private.h | 53 +
|
|
lib/zstd/fse.h | 575 ++++++++
|
|
lib/zstd/fse_compress.c | 795 ++++++++++
|
|
lib/zstd/fse_decompress.c | 332 +++++
|
|
lib/zstd/huf.h | 212 +++
|
|
lib/zstd/huf_compress.c | 771 ++++++++++
|
|
lib/zstd/huf_decompress.c | 960 ++++++++++++
|
|
lib/zstd/mem.h | 151 ++
|
|
lib/zstd/zstd_common.c | 75 +
|
|
lib/zstd/zstd_internal.h | 269 ++++
|
|
lib/zstd/zstd_opt.h | 1014 +++++++++++++
|
|
39 files changed, 14400 insertions(+), 12 deletions(-)
|
|
create mode 100644 fs/btrfs/zstd.c
|
|
create mode 100644 fs/squashfs/zstd_wrapper.c
|
|
create mode 100644 include/linux/xxhash.h
|
|
create mode 100644 include/linux/zstd.h
|
|
create mode 100644 lib/xxhash.c
|
|
create mode 100644 lib/zstd/Makefile
|
|
create mode 100644 lib/zstd/bitstream.h
|
|
create mode 100644 lib/zstd/compress.c
|
|
create mode 100644 lib/zstd/decompress.c
|
|
create mode 100644 lib/zstd/entropy_common.c
|
|
create mode 100644 lib/zstd/error_private.h
|
|
create mode 100644 lib/zstd/fse.h
|
|
create mode 100644 lib/zstd/fse_compress.c
|
|
create mode 100644 lib/zstd/fse_decompress.c
|
|
create mode 100644 lib/zstd/huf.h
|
|
create mode 100644 lib/zstd/huf_compress.c
|
|
create mode 100644 lib/zstd/huf_decompress.c
|
|
create mode 100644 lib/zstd/mem.h
|
|
create mode 100644 lib/zstd/zstd_common.c
|
|
create mode 100644 lib/zstd/zstd_internal.h
|
|
create mode 100644 lib/zstd/zstd_opt.h
|
|
|
|
--
|
|
2.9.3
|