Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce ZSTD compression to ZFS #9735

Closed
wants to merge 7 commits into from

Commits on Apr 11, 2020

  1. Import unmodified ZStandard v1.4.4

    This imports the unmodified ZStandard source to contrib/ which will be
    used by ZFS. This code shall not be modified in any way to keep it
    easily updatable.
    
    Only the required files from lib/ are imported.
    
    contrib/zstd is excluded from codecov calculation as dependencies don't
    need full codecov.
    
    Co-authored-by: Allan Jude <allanjude@freebsd.org>
    Co-authored-by: Kjeld Schouten-Lebbing kjeld@schouten-lebbing.nl
    Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
    Signed-off-by: Allan Jude <allanjude@freebsd.org>
    Signed-off-by: Kjeld Schouten-Lebbing kjeld@schouten-lebbing.nl
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    c0d3z3r0 and allanjude committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    970e5da View commit details
    Browse the repository at this point in the history
  2. Import ZStandard build compatibility headers from FreeBSD

    These files make ZStandard compile as a kernel module without modifying
    the ZStandard source files.
    
    Removed unexpanded SVN version tracking tags from FreeBSD
    
    Co-authored-by: Allan Jude <allanjude@freebsd.org>
    Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
    Signed-off-by: Allan Jude <allanjude@freebsd.org>
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    c0d3z3r0 and allanjude committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    ff3a88a View commit details
    Browse the repository at this point in the history
  3. Track compression level through dataset, zio, and arc header fields

    Extend APIs that deals with compression to also pass the compression
    level.
    
    Co-authored-by: Allan Jude <allanjude@freebsd.org>
    Co-authored-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
    Signed-off-by: Allan Jude <allanjude@freebsd.org>
    Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    3 people committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    2a9fd2b View commit details
    Browse the repository at this point in the history
  4. Add zstd support to zfs

    Closes: openzfs#6247
    Co-authored-by: Allan Jude <allanjude@freebsd.org>
    Co-authored-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
    Signed-off-by: Allan Jude <allanjude@freebsd.org>
    Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    3 people committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    e44719d View commit details
    Browse the repository at this point in the history
  5. Add a build intermediary lib for zstd

    This add a new build intermediary libzstd. This allows us to keep zstd
    cleanly separated from libzpool and to override the frame-size compiler
    option without for zstd only. (This is needed due to unused coude in
    the unmodified zstd source.)
    
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    c0d3z3r0 committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    25bdaef View commit details
    Browse the repository at this point in the history
  6. Formal changes: tests, documentation, copyright

    Add zstd to the test suite
    - add zstd to history_002_pos.ksh
    - add random levels of zstd to history_002_pos.ksh
    - add zstd-fast to history_002_pos.ksh
    - add random levels of zstd-fast to history_002_pos.ksh
    
    Add documentation
    - add man page content
    - add README for contrib/zstd
    
    Fixup copyright headers of touched and new files
    - Adds copyright headers for Allan Jude / Klara Inc.
    - Added Ornias1993 Copyright
    - Cleans copyright header formatting
    
    Co-authored-by: Allan Jude <allanjude@freebsd.org>
    Co-authored-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Co-authored-by: Kjeld Schouten-Lebbing <kjeld@schouten-lebbing.nl>
    Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
    Signed-off-by: Allan Jude <allanjude@freebsd.org>
    Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Signed-off-by: Kjeld Schouten-Lebbing <kjeld@schouten-lebbing.nl>
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    4 people committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    d1e5337 View commit details
    Browse the repository at this point in the history
  7. Fix naming of levels

    Will be squashed after successful test.
    
    Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
    c0d3z3r0 committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    ef6792a View commit details
    Browse the repository at this point in the history