[v5,3/5] btrfs: Add zstd support
diff mbox

Message ID 20170811021317.ykbpots4vinw7yjb@angband.pl
State New
Headers show

Commit Message

Adam Borowski Aug. 11, 2017, 2:13 a.m. UTC
On Wed, Aug 09, 2017 at 07:39:02PM -0700, Nick Terrell wrote:
> Add zstd compression and decompression support to BtrFS.

Re-tested on arm64, amd64 and i386, this time everything seems fine so far.

As I'm too lazy to have a separate test setup for the zlib level patch,
I'm using a dummy implementation:



It might be worthwhile to do some early testing using different levels,
though.


喵!

Comments

Nick Terrell Aug. 11, 2017, 3:23 a.m. UTC | #1
On 8/10/17, 7:13 PM, "Adam Borowski" <kilobyte@angband.pl> wrote:
> On Wed, Aug 09, 2017 at 07:39:02PM -0700, Nick Terrell wrote:

>> Add zstd compression and decompression support to BtrFS.

> 

> Re-tested on arm64, amd64 and i386, this time everything seems fine so far.

> 

> As I'm too lazy to have a separate test setup for the zlib level patch,

> I'm using a dummy implementation:

> 

> --- a/fs/btrfs/zstd.c

> +++ b/fs/btrfs/zstd.c

> @@ -423,10 +423,16 @@ static int zstd_decompress(struct list_head *ws, unsigned char *data_in,

>         return ret;

>  }

>  

> +static void zstd_set_level(struct list_head *ws, unsigned int type)

> +{

> +       // TODO

> +}

> +

>  const struct btrfs_compress_op btrfs_zstd_compress = {

>         .alloc_workspace = zstd_alloc_workspace,

>         .free_workspace = zstd_free_workspace,

>         .compress_pages = zstd_compress_pages,

>         .decompress_bio = zstd_decompress_bio,

>         .decompress = zstd_decompress,

> +       .set_level = zstd_set_level,

>  };

> 

> 

> It might be worthwhile to do some early testing using different levels,

> though.


I'll run some preliminary tests and make sure nothing blows up and the
compression ratio looks good.

> 

> 

> 喵!

> -- 

> ⢀⣴⠾⠻⢶⣦⠀ 

> ⣾⠁⢠⠒⠀⣿⡁ A dumb species has no way to open a tuna can.

> ⢿⡄⠘⠷⠚⠋⠀ A smart species invents a can opener.

> ⠈⠳⣄⠀⠀⠀⠀ A master species delegates.

Patch
diff mbox

--- a/fs/btrfs/zstd.c
+++ b/fs/btrfs/zstd.c
@@ -423,10 +423,16 @@  static int zstd_decompress(struct list_head *ws, unsigned char *data_in,
        return ret;
 }
 
+static void zstd_set_level(struct list_head *ws, unsigned int type)
+{
+       // TODO
+}
+
 const struct btrfs_compress_op btrfs_zstd_compress = {
        .alloc_workspace = zstd_alloc_workspace,
        .free_workspace = zstd_free_workspace,
        .compress_pages = zstd_compress_pages,
        .decompress_bio = zstd_decompress_bio,
        .decompress = zstd_decompress,
+       .set_level = zstd_set_level,
 };