zstd/contrib/linux-kernel
Giovanni Cabiddu 92be4be810 [linux] Expose ZSTD_compressSequencesAndLiterals() in the kernel
Make the function ZSTD_compressSequencesAndLiterals() available in kernel
space. This will be used by Intel QAT driver.

Additionally, (1) expose the function ZSTD_CCtx_setParameter(), which is
required to set parameters before calling ZSTD_compressSequencesAndLiterals(),
(2) update the build process to include `compress/zstd_preSplit.o` and
(3) replace `asm/unaligned.h` with `linux/unaligned.h`.

Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
2025-01-27 15:24:22 +00:00
..
test [linux] Expose ZSTD_compressSequencesAndLiterals() in the kernel 2025-01-27 15:24:22 +00:00
.gitignore fix gitignore 2017-04-04 18:15:21 -07:00
btrfs-benchmark.sh Add BtrFS benchmarks 2017-04-11 12:40:53 -07:00
btrfs-extract-benchmark.sh [linux] Write all the patch summaries 2017-06-21 20:23:44 -07:00
decompress_sources.h Update Copyright Headers 'Facebook' -> 'Meta Platforms' 2022-12-20 12:37:57 -05:00
linux.mk [linux] Expose ZSTD_compressSequencesAndLiterals() in the kernel 2025-01-27 15:24:22 +00:00
linux_zstd.h [linux] Expose ZSTD_compressSequencesAndLiterals() in the kernel 2025-01-27 15:24:22 +00:00
Makefile Delete unused Huffman functions 2023-01-20 14:12:53 -08:00
mem.h [linux] Expose ZSTD_compressSequencesAndLiterals() in the kernel 2025-01-27 15:24:22 +00:00
README.md [linux-kernel] Update README with initial instructions on how to update zstd in the kernel 2020-09-09 14:36:22 -07:00
squashfs-benchmark.sh [kernel] Update README with SquashFS patch 2017-05-03 11:07:39 -07:00
zstd_common_module.c Fix zstd-dll build missing dependencies (#3496) 2023-02-12 12:32:31 -08:00
zstd_compress_module.c [linux] Expose ZSTD_compressSequencesAndLiterals() in the kernel 2025-01-27 15:24:22 +00:00
zstd_decompress_module.c [linux] Remove usage of deprecated function 2023-11-17 09:54:10 -08:00
zstd_deps.h [linux] Backport intptr_t removal 2023-11-17 09:54:10 -08:00

Zstd in the Linux Kernel

This directory contains the scripts needed to transform upstream zstd into the version imported into the kernel. All the transforms are automated and tested by our continuous integration.

Upgrading Zstd in the Linux Kernel

  1. cd into this directory.
  2. Run make libzstd and read the output. Make sure that all the diffs printed and changes made by the script are correct.
  3. Run make test and ensure that it passes.
  4. Import zstd into the Linux Kernel make import LINUX=/path/to/linux/repo
  5. Inspect the diff for sanity.
  6. Check the Linux Kernel history for zstd. If any patches were made to the kernel version of zstd, but not to upstream zstd, then port them upstream if necessary.
  7. Test the diff. Benchmark if necessary. Make sure to test multiple architectures: At least x86, i386, and arm.
  8. Submit the patch to the LKML.