| From 308795a7713ca6fcd468b60fba9a2fca99cee6a0 Mon Sep 17 00:00:00 2001 |
| From: Nick Terrell <terrelln@fb.com> |
| Date: Tue, 8 Aug 2017 19:20:25 -0700 |
| Subject: [PATCH v5 0/5] 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/5) |
| - Use div_u64() for division of u64s (2/5) |
| - 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/5) |
| - No zstd function uses more than 400 B of stack space (2/5) |
| |
| v2 -> v3: |
| - Work around gcc-7 bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81388 |
| (2/5) |
| - Fix bug in dictionary compression from upstream commit cc1522351f (2/5) |
| - Port upstream BtrFS commits e1ddce71d6, 389a6cfc2a, and 6acafd1eff (3/5) |
| - Change default compression level for BtrFS to 3 (3/5) |
| |
| v3 -> v4: |
| - Fix compiler warnings (2/5) |
| - Add missing includes (3/5) |
| - Fix minor linter warnings (3/5, 4/5) |
| - Add crypto patch (5/5) |
| |
| v4 -> v5: |
| - Fix rare compression bug from upstream commit 308047eb5d (2/5) |
| - Fix bug introduced in v3 when working around the gcc-7 bug (2/5) |
| - Fix ZSTD_DStream initialization code in squashfs (4/5) |
| - Fix patch documentation for patches written by Sean Purcell (4/5) |
| |
| Nick Terrell (5): |
| lib: Add xxhash module |
| lib: Add zstd modules |
| btrfs: Add zstd support |
| squashfs: Add zstd support |
| crypto: Add zstd support |
| |
| crypto/Kconfig | 9 + |
| crypto/Makefile | 1 + |
| crypto/testmgr.c | 10 + |
| crypto/testmgr.h | 71 + |
| crypto/zstd.c | 265 ++++ |
| 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 | 432 ++++++ |
| 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 | 151 ++ |
| 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 | 3484 ++++++++++++++++++++++++++++++++++++++++++++ |
| lib/zstd/decompress.c | 2528 ++++++++++++++++++++++++++++++++ |
| 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 | 770 ++++++++++ |
| lib/zstd/huf_decompress.c | 960 ++++++++++++ |
| lib/zstd/mem.h | 151 ++ |
| lib/zstd/zstd_common.c | 75 + |
| lib/zstd/zstd_internal.h | 263 ++++ |
| lib/zstd/zstd_opt.h | 1014 +++++++++++++ |
| 44 files changed, 14756 insertions(+), 12 deletions(-) |
| create mode 100644 crypto/zstd.c |
| 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 |