From: sashiko-bot@kernel.org
To: "Michal Wilczynski" <m.wilczynski@samsung.com>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>,
"Russell King" <linux@armlinux.org.uk>,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Helge Deller" <deller@gmx.de>,
"Heiko Carstens" <hca@linux.ibm.com>,
"Vasily Gorbik" <gor@linux.ibm.com>,
"Alexander Gordeev" <agordeev@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Sven Schnelle" <svens@linux.ibm.com>,
"Thomas Gleixner" <tglx@kernel.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
"Minchan Kim" <minchan@kernel.org>,
"Sergey Senozhatsky" <senozhatsky@chromium.org>,
"Jens Axboe" <axboe@kernel.dk>,
"Andrew Morton" <akpm@linux-foundation.org>
Cc: linux-s390@vger.kernel.org,
"Yann Collet" <yann.collet.73@gmail.com>,
"Nick Terrell" <terrelln@meta.com>,
"Gao Xiang" <xiang@kernel.org>, "Chao Yu" <chao@kernel.org>,
"Jaegeuk Kim" <jaegeuk@kernel.org>,
"Eric Biggers" <ebiggers@kernel.org>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"David Laight" <david.laight.linux@gmail.com>,
Sungguk <sungguk.na@samsung.com>,
"Jaehoon Chung" <jh80.chung@samsung.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
linux-crypto@vger.kernel.org
Subject: Re: [PATCH v2 03/15] zram: lz4hc: reset the dictionary stream once, not per page
Date: Fri, 06 Nov 2026 14:49:28 +0000 [thread overview]
Message-ID: <sashiko-outbox-201613@kernel.org> (raw)
In-Reply-To: <20261106-lz4-vendor-upstream-v2-3-ee04c3f0d7dc@samsung.com>
Thank you for your contribution! Sashiko AI review found no new issues
in this patch, but noticed 1 related pre-existing issue it does not
introduce:
- [Medium] zram: high-order memory allocation using kzalloc in
lz4hc_create() [1]
--
commit 2f51683dc7418bdcd0730283cb7003d8754fcd5f
Author: Michal Wilczynski <m.wilczynski@samsung.com>
zram: lz4hc: reset the dictionary stream once, not per page
This commit moves the LZ4_resetStreamHC() call for dictionary-backed
streams from lz4hc_compress() to lz4hc_create() so that the stream state is
only reset once at creation time rather than on every compressed page.
> diff --git a/drivers/block/zram/backend_lz4hc.c b/drivers/block/zram/backend_lz4hc.c
> index d8aa01bb258fe..06286c805cf7c 100644
> --- a/drivers/block/zram/backend_lz4hc.c
> +++ b/drivers/block/zram/backend_lz4hc.c
> @@ -72,6 +72,7 @@ static int lz4hc_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
> zctx->cstrm = kzalloc_obj(*zctx->cstrm);
> if (!zctx->cstrm)
> goto error;
> + LZ4_resetStreamHC(zctx->cstrm, params->level);
> }
[Severity: Medium]
This problem wasn't introduced by this patch, but should zctx->cstrm be
allocated with vmalloc() or kvzalloc() instead of kzalloc_obj() [1]?
LZ4_streamHC_t is 262,192 bytes (LZ4_STREAMHCSIZE), so kzalloc_obj()
requests an order-7 physically contiguous allocation. Unlike the
non-dictionary path right above, which uses vmalloc(LZ4HC_MEM_COMPRESS),
this allocation can easily fail under normal memory fragmentation during
zram initialization or CPU hotplug.
[1] https://sashiko.dev/#/bug/linux-78ebc045-5e81-4f0b-985e-99483d454b25
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261106-lz4-vendor-upstream-v2-0-ee04c3f0d7dc@samsung.com?part=3
next prev parent reply other threads:[~2026-11-06 14:49 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20261106144247eucas1p15bdd0704f32d1cb3b19f9d2296a0cbc3@eucas1p1.samsung.com>
2026-11-06 14:42 ` [PATCH v2 00/15] lib/lz4: stop forking upstream LZ4, vendor it instead Michal Wilczynski
2026-11-06 14:42 ` [PATCH v2 01/15] lib/decompress_unlz4: use LZ4_decompress_safe_partial() before boot Michal Wilczynski
2026-11-06 14:59 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 02/15] lib/lz4: remove LZ4_decompress_fast() and its variants Michal Wilczynski
2026-11-06 14:47 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 03/15] zram: lz4hc: reset the dictionary stream once, not per page Michal Wilczynski
2026-11-06 14:49 ` sashiko-bot [this message]
2026-11-10 5:31 ` Sergey Senozhatsky
2026-11-06 14:42 ` [PATCH v2 04/15] lib/lz4: import upstream LZ4 sources verbatim Michal Wilczynski
2026-11-06 14:48 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 05/15] lib/lz4: backport upstream's -Wmissing-prototypes fix Michal Wilczynski
2026-11-06 14:46 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 06/15] lib/lz4: backport upstream's aarch64 fast decode loop enablement Michal Wilczynski
2026-11-06 14:47 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 07/15] lib/lz4: backport upstream's match length limit fix Michal Wilczynski
2026-11-06 14:50 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 08/15] lib/lz4: add the build environment for the vendored sources Michal Wilczynski
2026-11-06 14:57 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 09/15] arch: boot: put the LZ4 freestanding headers on the decompressor path Michal Wilczynski
2026-11-06 14:49 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 10/15] lib/lz4: switch the compressor to the vendored sources Michal Wilczynski
2026-11-06 14:52 ` sashiko-bot
2026-11-10 5:36 ` Sergey Senozhatsky
2026-11-06 14:42 ` [PATCH v2 11/15] lib/lz4: switch the HC " Michal Wilczynski
2026-11-06 14:54 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 12/15] lib/lz4: widen LZ4_DECOMPRESS_INPLACE_MARGIN for the fast decode loop Michal Wilczynski
2026-11-06 14:52 ` sashiko-bot
2026-11-11 22:02 ` Gao Xiang
2026-11-06 14:42 ` [PATCH v2 13/15] lib/lz4: switch the decompressor to the vendored sources Michal Wilczynski
2026-11-06 14:57 ` sashiko-bot
2026-11-10 5:39 ` Sergey Senozhatsky
2026-11-06 14:42 ` [PATCH v2 14/15] lib/lz4: replace lz4_kernel_api.h's prototypes with <linux/lz4.h> Michal Wilczynski
2026-11-06 14:51 ` sashiko-bot
2026-11-06 14:42 ` [PATCH v2 15/15] MAINTAINERS: add an entry for the LZ4 compression library Michal Wilczynski
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=sashiko-outbox-201613@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=borntraeger@linux.ibm.com \
--cc=bp@alien8.de \
--cc=chao@kernel.org \
--cc=dave.hansen@linux.intel.com \
--cc=david.laight.linux@gmail.com \
--cc=deller@gmx.de \
--cc=ebiggers@kernel.org \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=herbert@gondor.apana.org.au \
--cc=hpa@zytor.com \
--cc=jaegeuk@kernel.org \
--cc=jh80.chung@samsung.com \
--cc=justinstitt@google.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=m.wilczynski@samsung.com \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=senozhatsky@chromium.org \
--cc=sungguk.na@samsung.com \
--cc=svens@linux.ibm.com \
--cc=terrelln@meta.com \
--cc=tglx@kernel.org \
--cc=tsbogend@alpha.franken.de \
--cc=x86@kernel.org \
--cc=xiang@kernel.org \
--cc=yann.collet.73@gmail.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