Re: [RFC PATCH 2/2] zsmalloc: chain-length configuration should consider other metrics
From: Yosry Ahmed
Date: Thu Jan 08 2026 - 03:32:29 EST
On Thu, Jan 08, 2026 at 04:37:11PM +0900, Sergey Senozhatsky wrote:
> On (26/01/07 17:12), Yosry Ahmed wrote:
> > On Wed, Jan 07, 2026 at 02:43:42PM +0900, Sergey Senozhatsky wrote:
> > > On (26/01/07 05:39), Yosry Ahmed wrote:
> > > > > On Tue, Jan 06, 2026 at 04:24:45PM +0000, Yosry Ahmed wrote:
> > > [..]
> > > > > Adding native SG support to LZO simply means removing the memcpy that
> > > > > scomp would otherwise have to do.
> > > >
> > > > Yeah the effort to add native support to compressors can be done
> > > > separately. For zswap, I think the most common compressors are
> > > > actually zstd and LZ4.
> > >
> > > I think it's the same for chromeos: lz4 (primary) and zstd
> > > (secondary/recompression). zstd looks very complicated,
> > > not sure if we really want to diverge its codebase from
> > > the upstream (meta github repo).
> >
> > I think there's value in using SG lists even if we do not have support
> > for lz4 or zstd. We'll remove the memcpy() logic in zsmalloc and the
> > kmap handling memcpy() in zswap if we just pass SG lists from zsmalloc
> > to zswap/zram.
>
> Yeah I agree, I guess I can cook something up.
>
> For transition period we can have:
> - current "memcpy" API
> for zswap
>
> - SG-list API
>
> I can vmap either on the zram side or have new zsmalloc vmap API
> (alongside the memcpy and SG-list APIs).
>
> Once crypto API supports SG-list and algorithms tunables I can
> switch zram over from zcomp to crypto API and remove memcpy and
> vmap APIs from zsmalloc.
IIUC based on Herbert's previous response, crypto and scomp already
support passing in a discontiguous SG-list. So for zswap, if zsmalloc
returns an SG-list, it will just be passed as-is to the crypto API.
If zram can also use the SG-list, then we can completely drop the
memcpy() logic from zsmalloc.
Herbert, please correct me if I am wrong.