Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=210.118.77.11 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793976175; b=ACvGup1+LNvsqjgLNhNTQUp1QVdXOgxdl7J0Dps9bbRJL4Ya3fG4bYk9/QX2MqhD4wKe jjKetf/D4DEXupHDH8HsqGDeFuRwuYuMs2xnvtGRzGaUCoam/CoKKSXtUAPyRGwNPoSXV iewf/ObrmEayskNjzd0Y6ow2BLjDaf47QjvsYjIKf+KIleA5SSHFWO5R8ESFBWsSdccE8 LqSOvG0SLB17V+woX2k48f8b6mzkd1shDY4foXjskIR5bToEjS82Sg8YH2CZKWwmnoc+h KtpbYrIgsJM9LDVqqSCytArc7EdlVNc4TjzR50KPnOBtzBqSqusCR8qjLoNavkSshrg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793976175; h=DMARC-Filter:Received:DKIM-Filter:DKIM-Signature:Received:Received: From:Date:Subject:MIME-Version:Content-Transfer-Encoding:Message-Id: In-Reply-To:To:Cc:X-Mailer:X-Developer-Signature:X-Developer-Key: X-CMS-MailID:X-Msg-Generator:Content-Type:X-RootMTR:X-EPHeader: X-CMS-RootMailID:References; bh=Rj8Y5qafYFutHkOlAoJ29LhMDQuxrVln4aCNYyECpsA=; b=Mk3k3rG9ydKq9tEkom5vhLabzmxT4D/PdE1wusA9vJB0Ry0RyZTEbb7sq6eRyxw96ERJ +5JqZeeStUCgmoJ04VF0g/8mZJF4JdYQ1oV02OxqTWOFtrOw+exYupTD73N70Cpr54J0h ixEGk+0G8eB5qW6lqWGU5q9LTSTnxXQmIyOwmoQd/8kkUhivVNMlq0NxpB3eV4isgvVlu sk85+WCtYc90BuAroJst96377K1wOGftGMMmgkeM91HP/k5qbGlNOapqkemjjoKWz1F6C 4L64Jz2Q/tyNyGv7kqdakD8y2po0HcIqlXCSPKxbUf5SsBWV/PRx6azUE7kWjtWddcg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass header.d=samsung.com header.i=@samsung.com header.a=rsa-sha256 header.s=mail20170921 header.b=BwI5Raqt; arc=none smtp.remote-ip=210.118.77.11 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0792C606D803 for ; Fri, 6 Nov 2026 14:42:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 0792C606D803 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key, unprotected) header.d=samsung.com header.i=@samsung.com header.a=rsa-sha256 header.s=mail20170921 header.b=BwI5Raqt Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20261106144253euoutp01c796104744657935f58418ab7ccdf555~le9Ma35rb2317823178euoutp01R; Fri, 6 Nov 2026 14:42:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20261106144253euoutp01c796104744657935f58418ab7ccdf555~le9Ma35rb2317823178euoutp01R DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1793976173; bh=Rj8Y5qafYFutHkOlAoJ29LhMDQuxrVln4aCNYyECpsA=; h=From:Date:Subject:In-Reply-To:To:Cc:References:From; b=BwI5RaqtVBatHQ9FvOJ55uoIz+fe2relbWKFywd/iJ7UxbiAUExJDGgQBwVqMgvPP UdvBd8K2ekwzyndtRORpmlbATxLqEG3g6AEgKFZhuL/6kzMA4waA9KfpwPcfkUWCJj a5io1KFq5kFQHiWaTDkEAwAoTjw/BLEsdPnf7/6o= Received: from eusmtip1.samsung.com (unknown [203.254.199.221]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20261106144252eucas1p272c9e37d66ad385db070f941879aecb1~le9MI3J6I2474624746eucas1p2Q; Fri, 6 Nov 2026 14:42:52 +0000 (GMT) Received: from AMDC4942.eu.corp.samsungelectronics.net (unknown [106.210.136.40]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20261106144250eusmtip1dcd97a2c5f23d834ade7b24072cbbacb~le9KHGP180491304913eusmtip1T; Fri, 6 Nov 2026 14:42:50 +0000 (GMT) From: Michal Wilczynski Date: Fri, 06 Nov 2026 15:42:43 +0100 Subject: [PATCH v2 03/15] zram: lz4hc: reset the dictionary stream once, not per page X-Mailing-List: llvm@lists.linux.dev List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Message-Id: <20261106-lz4-vendor-upstream-v2-3-ee04c3f0d7dc@samsung.com> In-Reply-To: <20261106-lz4-vendor-upstream-v2-0-ee04c3f0d7dc@samsung.com> To: Michal Wilczynski , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Russell King , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Minchan Kim , Sergey Senozhatsky , Jens Axboe , Andrew Morton Cc: linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, linux-block@vger.kernel.org, Yann Collet , Nick Terrell , Gao Xiang , Chao Yu , Jaegeuk Kim , Eric Biggers , Herbert Xu , David Laight , Sungguk , Jaehoon Chung , Marek Szyprowski , linux-erofs@lists.ozlabs.org, linux-f2fs-devel@lists.sourceforge.net, linux-crypto@vger.kernel.org X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1522; i=m.wilczynski@samsung.com; h=from:subject:message-id; bh=gf0d0kp9GnHtSKcTtEhuhYTslttbHXb7E32RSfsFkrk=; b=owGbwMvMwCGWumv6zndzRCIZT6slMWS9fZ5ySyUrfX9+cLNFzLn3MVV/N4i6Nzut7uWYFaCyg Kc99EZURykLgxgHg6yYIsvZjdFGkv8YnpYff/wLZg4rE8gQBi5OAZhI/SSG/1kvExcURfNONrvu ra3M/fXc+ijtu01371vME1PUVXXQZ2dkOLuw/PC7Sw6c1RFJLws3fLXnv6L+4+/39Xt/Bfx8EiS lwg0A X-Developer-Key: i=m.wilczynski@samsung.com; a=openpgp; fpr=CDB15B3219FE00E577C7E3FA65BA97B9EE9C1459 X-CMS-MailID: 20261106144252eucas1p272c9e37d66ad385db070f941879aecb1 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20261106144252eucas1p272c9e37d66ad385db070f941879aecb1 X-EPHeader: CA X-CMS-RootMailID: 20261106144252eucas1p272c9e37d66ad385db070f941879aecb1 References: <20261106-lz4-vendor-upstream-v2-0-ee04c3f0d7dc@samsung.com> With a dictionary, lz4hc_compress() calls LZ4_resetStreamHC() and then LZ4_loadDictHC() for every page. LZ4_loadDictHC() re-initialises the stream itself and keeps the level, so one reset at creation is enough. The reset is cheap today, but upstream LZ4, which lib/lz4 moves to later in this series, clears the whole 256K state in both calls. Reset once in lz4hc_create() instead. Signed-off-by: Michal Wilczynski --- drivers/block/zram/backend_lz4hc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/block/zram/backend_lz4hc.c b/drivers/block/zram/backend_lz4hc.c index d8aa01bb258fec760b597a88296dfaa4e0049693..06286c805cf7c56bd760f460cc854dc4014f293b 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); } return 0; @@ -92,8 +93,7 @@ static int lz4hc_compress(struct zcomp_params *params, struct zcomp_ctx *ctx, req->dst_len, params->level, zctx->mem); } else { - /* Cstrm needs to be reset */ - LZ4_resetStreamHC(zctx->cstrm, params->level); + /* Reloading the dict resets cstrm and keeps its level */ ret = LZ4_loadDictHC(zctx->cstrm, params->dict, params->dict_sz); if (ret != params->dict_sz) -- 2.34.1