The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/module/zstd/README.md

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # ZSTD-On-ZFS Library Manual
    2 
    3 ## Introduction
    4 
    5 This subtree contains the ZSTD library used in ZFS. It is heavily cut-down by
    6 dropping any unneeded files, and combined into a single file, but otherwise is
    7 intentionally unmodified. Please do not alter the file containing the zstd
    8 library, besides upgrading to a newer ZSTD release.
    9 
   10 Tree structure:
   11 
   12 * `zfs_zstd.c` are the actual `zfs` kernel module hooks.
   13 * `lib/` contains the unmodified version of the `Zstandard` library
   14 * `zstd-in.c` is our template file for generating the single-file library
   15 * `include/`: This directory contains supplemental includes for platform
   16   compatibility, which are not expected to be used by ZFS elsewhere in the
   17   future. Thus we keep them private to ZSTD.
   18 
   19 ## Updating ZSTD
   20 
   21 To update ZSTD the following steps need to be taken:
   22 
   23 1. Grab the latest release of [ZSTD](https://github.com/facebook/zstd/releases).
   24 2. Copy the files output by the following script to `module/zstd/lib/`:
   25 `grep include [path to zstd]/contrib/single_file_libs/zstd-in.c  | awk '{ print $2 }'`
   26 3. Remove debug.c, threading.c, and zstdmt_compress.c.
   27 4. Update Makefiles with resulting file lists.
   28 5. Follow symbol renaming notes in `include/zstd_compat_wrapper.h`
   29 
   30 ## Altering ZSTD and breaking changes
   31 
   32 If ZSTD made changes that break compatibility or you need to make breaking
   33 changes to the way we handle ZSTD, it is required to maintain backwards
   34 compatibility.
   35 
   36 We already save the ZSTD version number within the block header to be used
   37 to add future compatibility checks and/or fixes. However, currently it is
   38 not actually used in such a way.

Cache object: e831d0cdb7ed8cb0238aa01a69953f47


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.