From: Sergey Senozhatsky Date: Mon, 2 Sep 2024 10:56:02 +0000 (+0900) Subject: zram: recalculate zstd compression params once X-Git-Tag: v6.12-rc1~115^2~72 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=eb826a01909a2d39660ed5a486ebc43e831254bc;p=linux-block.git zram: recalculate zstd compression params once zstd compression params depends on level, but are constant for a given instance of zstd compression backend. Calculate once (during ctx creation). Link: https://lkml.kernel.org/r/20240902105656.1383858-15-senozhatsky@chromium.org Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Cc: Nick Terrell Signed-off-by: Andrew Morton --- diff --git a/drivers/block/zram/backend_zstd.c b/drivers/block/zram/backend_zstd.c index c356c5e6e503..7c6798f0c912 100644 --- a/drivers/block/zram/backend_zstd.c +++ b/drivers/block/zram/backend_zstd.c @@ -10,6 +10,7 @@ struct zstd_ctx { zstd_cctx *cctx; zstd_dctx *dctx; + zstd_parameters cprm; void *cctx_mem; void *dctx_mem; s32 level; @@ -40,6 +41,7 @@ static void *zstd_create(struct zcomp_params *params) ctx->level = zstd_default_clevel(); prm = zstd_get_params(ctx->level, PAGE_SIZE); + ctx->cprm = zstd_get_params(ctx->level, PAGE_SIZE); sz = zstd_cctx_workspace_bound(&prm.cParams); ctx->cctx_mem = vzalloc(sz); if (!ctx->cctx_mem) @@ -69,11 +71,10 @@ static int zstd_compress(void *ctx, const unsigned char *src, size_t src_len, unsigned char *dst, size_t *dst_len) { struct zstd_ctx *zctx = ctx; - const zstd_parameters prm = zstd_get_params(zctx->level, PAGE_SIZE); size_t ret; ret = zstd_compress_cctx(zctx->cctx, dst, *dst_len, - src, src_len, &prm); + src, src_len, &zctx->cprm); if (zstd_is_error(ret)) return -EINVAL; *dst_len = ret;