mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Usama Arif <usama.arif@linux.dev>
To: Herbert Xu <herbert@gondor.apana.org.au>,
	davem@davemloft.net, terrelln@fb.com, dsterba@suse.com,
	hannes@cmpxchg.org, yosry@kernel.org, nphamcs@gmail.com,
	chengming.zhou@linux.dev,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-crypto@vger.kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, riel@surriel.com,
	shakeel.butt@linux.dev, kernel-team@meta.com
Cc: Usama Arif <usama.arif@linux.dev>
Subject: [PATCH 0/2] crypto: use vmalloc() for large stream workspaces
Date: Wed, 11 Nov 2026 07:07:38 -0800	[thread overview]
Message-ID: <20261111153532.1036709-1-usama.arif@linux.dev> (raw)

The zstd and deflate acomp implementations retain per-CPU stream
workspaces until the algorithms are unregistered. On x86-64 with 4 KiB
pages, kvmalloc() can back them with order-9 and order-6 kmalloc()
blocks, respectively.

Use vmalloc() and vfree() instead. For a server with 384 CPUs, if
we have streams on all of the CPUs and kvmalloc() takes the
kmalloc() path for every stream, their workspaces use 193.5 MiB more
for zstd and 42 MiB for deflate.

In five before/after boot pairs on a 96-vCPU x86-64 VM with 8 GiB RAM,
the test populated both algorithms crypto workspaces on every CPU. All
192 baseline workspaces used kmalloc() without these patches. The patches
reduced workspace backing by 48.375 MiB for zstd and 10.5 MiB for deflate
—58.875 MiB combined—in each pair.

In five before/after runs in a 4-vCPU x86-64 VM, median compression
and decompression throughput changed by less than 1% (-0.93% to +0.64%).
Inputs were 4 KiB and 64 KiB synthetic buffers containing pseudorandom
data or a 50/50 mix of repeating-pattern and pseudorandom bytes.
The differences were within the observed run-to-run variation.
 
Usama Arif (2):
  crypto: zstd - use vmalloc() for stream workspaces
  crypto: deflate - use vmalloc() for stream workspaces

 crypto/deflate.c | 5 +++--
 crypto/zstd.c    | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

-- 
2.53.0-Meta


             reply	other threads:[~2026-11-11 15:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-11 15:07 Usama Arif [this message]
2026-11-11 15:07 ` [PATCH 1/2] crypto: zstd - use vmalloc() for " Usama Arif
2026-11-11 15:43   ` Rik van Riel
2026-11-11 15:07 ` [PATCH 2/2] crypto: deflate " Usama Arif
2026-11-11 15:44   ` Rik van Riel

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=20261111153532.1036709-1-usama.arif@linux.dev \
    --to=usama.arif@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=chengming.zhou@linux.dev \
    --cc=davem@davemloft.net \
    --cc=dsterba@suse.com \
    --cc=hannes@cmpxchg.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=kernel-team@meta.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nphamcs@gmail.com \
    --cc=riel@surriel.com \
    --cc=shakeel.butt@linux.dev \
    --cc=terrelln@fb.com \
    --cc=yosry@kernel.org \
    /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

all inboxes | Powered by JetHome®