linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Chris Mason" <clm@fb.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Rik van Riel <riel@surriel.com>, Nick Terrell <terrelln@fb.com>,
	Nick Terrell <nickrterrell@gmail.com>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	<linux-crypto@vger.kernel.org>,
	Btrfs BTRFS <linux-btrfs@vger.kernel.org>,
	<squashfs-devel@lists.sourceforge.net>,
	<linux-f2fs-devel@lists.sourceforge.net>,
	<linux-kernel@vger.kernel.org>, Kernel Team <Kernel-team@fb.com>,
	Petr Malat <oss@malat.biz>, Johannes Weiner <jweiner@fb.com>,
	Niket Agarwal <niketa@fb.com>, Yann Collet <cyan@fb.com>
Subject: Re: [PATCH 5/9] btrfs: zstd: Switch to the zstd-1.4.6 API
Date: Thu, 17 Sep 2020 10:28:15 -0400	[thread overview]
Message-ID: <2073A599-E7CA-476A-9B4B-7BC76B454B9A@fb.com> (raw)
In-Reply-To: <20200917100458.GA28031@infradead.org>

On 17 Sep 2020, at 6:04, Christoph Hellwig wrote:

> On Wed, Sep 16, 2020 at 09:35:51PM -0400, Rik van Riel wrote:
>>> One possibility is to have a kernel wrapper on top of the zstd API 
>>> to
>>> make it
>>> more ergonomic. I personally don???t really see the value in it, 
>>> since
>>> it adds
>>> another layer of indirection between zstd and the caller, but it
>>> could be done.
>>
>> Zstd would not be the first part of the kernel to
>> come from somewhere else, and have wrappers when
>> it gets integrated into the kernel. There certainly
>> is precedence there.
>>
>> It would be interesting to know what Christoph's
>> preference is.
>
> Yes, I think kernel wrappers would be a pretty sensible step forward.
> That also avoid the need to do strange upgrades to a new version,
> and instead we can just change APIs on a as-needed basis.

When we add wrappers, we end up creating a kernel specific API that 
doesn’t match the upstream zstd docs, and it doesn’t leverage as 
much of the zstd fuzzing and testing.

So we’re actually making kernel zstd slightly less usable in hopes 
that our kernel specific part of the API is familiar enough to us that 
it makes zstd more usable.  There’s no way to compare the two until 
the wrappers are done, but given the code today I’d prefer that we 
focus on making it really easy to track upstream.  I really understand 
Christoph’s side here, but I’d rather ride a camel with the group 
than go it alone.

I’d also much rather spend time on any problems where the structure of 
the zstd APIs don’t fit the kernel’s needs.  The btrfs streaming 
compression/decompression looks pretty clean to me, but I think Johannes 
mentioned some possibilities to improve things for zswap (optimizations 
for page-at-atime).  If there are places where the zstd memory 
management or error handling don’t fit naturally into the kernel, that 
would also be higher on my list.

Fixing those are probably going to be much easier if we’re close to 
the zstd upstream, again so that we can leverage testing and long term 
code maintenance done there.

-chris

  reply	other threads:[~2020-09-17 15:42 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-16  3:42 [PATCH 0/9] Update to zstd-1.4.6 Nick Terrell
2020-09-16  3:42 ` [PATCH 1/9] lib: zstd: Add zstd compatibility wrapper Nick Terrell
2020-09-16  8:48   ` Christoph Hellwig
2020-09-16 20:21     ` Nick Terrell
2020-09-16  3:42 ` [PATCH 2/9] lib: zstd: Add decompress_sources.h for decompress_unzstd Nick Terrell
2020-09-16  3:42 ` [PATCH 3/9] lib: zstd: Upgrade to latest upstream zstd version 1.4.6 Nick Terrell
2020-09-16  8:01   ` kernel test robot
2020-09-16 20:53   ` Nick Terrell
2020-09-16 20:53     ` Nick Terrell
2020-09-16  3:42 ` [PATCH 4/9] crypto: zstd: Switch to zstd-1.4.6 API Nick Terrell
2020-09-16  8:49   ` Christoph Hellwig
2020-09-16  3:42 ` [PATCH 5/9] btrfs: zstd: Switch to the " Nick Terrell
2020-09-16  8:49   ` Christoph Hellwig
2020-09-16 14:20     ` Chris Mason
2020-09-16 14:30       ` Christoph Hellwig
2020-09-16 14:43         ` Chris Mason
2020-09-16 14:46           ` Christoph Hellwig
2020-09-16 15:01             ` Chris Mason
2020-09-16 18:27             ` Eric Biggers
2020-09-16 19:18             ` Nick Terrell
2020-09-17  1:35               ` Rik van Riel
2020-09-17 10:04                 ` Christoph Hellwig
2020-09-17 14:28                   ` Chris Mason [this message]
2020-09-17 17:57                     ` Nick Terrell
2020-09-16  3:43 ` [PATCH 6/9] f2fs: " Nick Terrell
2020-09-16  6:31   ` Chao Yu
2020-09-16 18:39     ` Nick Terrell
2020-09-16 18:39       ` Nick Terrell
2020-09-17  6:31       ` Chao Yu
2020-09-17 18:00         ` Nick Terrell
2020-09-17 19:34           ` Nick Terrell
2020-09-18  1:47             ` Chao Yu
2020-09-18  2:56               ` Eric Biggers
2020-09-18  2:58                 ` Chao Yu
2020-09-18  5:39               ` Nick Terrell
2020-09-18  1:41           ` Chao Yu
2020-09-16  3:43 ` [PATCH 7/9] squashfs: " Nick Terrell
2020-09-16  3:43 ` [PATCH 8/9] lib: unzstd: " Nick Terrell
2020-09-16  3:43 ` [PATCH 9/9] lib: zstd: Remove zstd compatibility wrapper Nick Terrell

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=2073A599-E7CA-476A-9B4B-7BC76B454B9A@fb.com \
    --to=clm@fb.com \
    --cc=Kernel-team@fb.com \
    --cc=cyan@fb.com \
    --cc=hch@infradead.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=jweiner@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickrterrell@gmail.com \
    --cc=niketa@fb.com \
    --cc=oss@malat.biz \
    --cc=riel@surriel.com \
    --cc=squashfs-devel@lists.sourceforge.net \
    --cc=terrelln@fb.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).