From: Philip Worrall <philip.worrall@googlemail.com> To: linux-btrfs@vger.kernel.org Cc: Philip Worrall <philip.worrall@googlemail.com> Subject: [PATCH 0/8] Add support for LZ4 compression Date: Sat, 31 May 2014 23:48:28 +0000 [thread overview] Message-ID: <1401580116-10458-1-git-send-email-philip.worrall@googlemail.com> (raw) LZ4 is a lossless data compression algorithm that is focused on compression and decompression speed. LZ4 gives a slightly worse compression ratio compared with LZO (and much worse than Zlib) but compression speeds are *generally* similar to LZO. Decompression tends to be much faster under LZ4 compared with LZO hence it makes more sense to use LZ4 compression when your workload involves a higher proportion of reads. The following patch set adds LZ4 compression support to BTRFS using the existing kernel implementation. It is based on the changeset for LZO support in 2011. Once a filesystem has been mounted with LZ4 compression enabled older versions of BTRFS will be unable to read it. This implementation is however backwards compatible with filesystems that currently use LZO or Zlib compression. Existing data will remain unchanged but any new files that you create will be compressed with LZ4. Usage: Apply the following 8 patches to the current git tree (as of 20140531) and compile/load the btrfs module. # mount -t btrfs -o compress=lz4 device mountpoint or # mount -t btrfs -o compress-force=lz4 device mountpoint Philip Worrall (8): Btrfs: Add kernel config options for LZ4 Btrfs: Add lz4.c to the Makefile Btrfs: Add lz4 compression to avaialble compression ops Btrfs: Add definition for external lz4 compression struct Btrfs: Add feature flags for LZ4 support Btrfs: Ensure LZ4 feature flags are set when mounting with LZ4 Btrfs: Add lz4 compression/decompression struct ops Btrfs: Check for compress=lz4 in mount options fs/btrfs/Kconfig | 2 + fs/btrfs/Makefile | 2 +- fs/btrfs/compression.c | 1 + fs/btrfs/compression.h | 2 +- fs/btrfs/ctree.h | 10 +- fs/btrfs/disk-io.c | 3 +- fs/btrfs/lz4.c | 436 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/super.c | 12 +- 8 files changed, 461 insertions(+), 7 deletions(-) create mode 100644 fs/btrfs/lz4.c -- 1.9.1
next reply other threads:[~2014-05-31 23:48 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-05-31 23:48 Philip Worrall [this message] 2014-05-31 23:48 ` [PATCH 1/8] Btrfs: Add kernel config options for LZ4 Philip Worrall 2014-05-31 23:48 ` [PATCH 2/8] Btrfs: Add lz4.c to the Makefile Philip Worrall 2014-05-31 23:48 ` [PATCH 3/8] Btrfs: Add lz4 compression to avaialble compression ops Philip Worrall 2014-05-31 23:48 ` [PATCH 4/8] Btrfs: Add definition for external lz4 compression struct Philip Worrall 2014-05-31 23:48 ` [PATCH 5/8] Btrfs: Add feature flags for LZ4 support Philip Worrall 2014-05-31 23:48 ` [PATCH 6/8] Btrfs: Ensure LZ4 feature flags are set when mounting with LZ4 Philip Worrall 2014-05-31 23:48 ` [PATCH 7/8] Btrfs: Add lz4 compression/decompression struct ops Philip Worrall 2014-05-31 23:48 ` [PATCH 8/8] Btrfs: Check for compress=lz4 in mount options Philip Worrall 2014-06-02 22:04 ` [PATCH 0/8] Add support for LZ4 compression Mitch Harder 2014-06-03 15:53 ` David Sterba 2014-06-04 14:00 ` Chris Mason 2014-06-12 8:47 ` David Sterba
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1401580116-10458-1-git-send-email-philip.worrall@googlemail.com \ --to=philip.worrall@googlemail.com \ --cc=linux-btrfs@vger.kernel.org \ --subject='Re: [PATCH 0/8] Add support for LZ4 compression' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).