zram: move immutable comp params away from per-CPU context
authorSergey Senozhatsky <senozhatsky@chromium.org>
Mon, 2 Sep 2024 10:56:07 +0000 (19:56 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 9 Sep 2024 23:39:10 +0000 (16:39 -0700)
commitb8f03cb703a160e14f87a467a4443adc5d940087
tree29d4a762e4c14258cf7b4e6c3838ce61331b097c
parent6a81bdfeb35094c3097650306a5fda9a990d8a97
zram: move immutable comp params away from per-CPU context

Immutable params never change once comp has been allocated and setup, so
we don't need to store multiple copies of them in each per-CPU backend
context.  Move those to per-comp zcomp_params and pass it to backends
callbacks for requests execution.  Basically, this means parameters
sharing between different contexts.

Also introduce two new backends callbacks: setup_params() and
release_params().  First, we need to validate params in a driver-specific
way; second, driver may want to allocate its specific representation of
the params which is needed to execute requests.

Link: https://lkml.kernel.org/r/20240902105656.1383858-20-senozhatsky@chromium.org
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nick Terrell <terrelln@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/block/zram/backend_842.c
drivers/block/zram/backend_deflate.c
drivers/block/zram/backend_lz4.c
drivers/block/zram/backend_lz4hc.c
drivers/block/zram/backend_lzo.c
drivers/block/zram/backend_lzorle.c
drivers/block/zram/backend_zstd.c
drivers/block/zram/zcomp.c
drivers/block/zram/zcomp.h