Sergey Senozhatsky
dc75a0d93b
zram: support deflate-specific params
...
Introduce support of algorithm specific parameters in algorithm_params
device attribute. The expected format is algorithm.param=value.
For starters, add support for deflate.winbits parameter.
Link: https://lkml.kernel.org/r/20250514024825.1745489-3-senozhatsky@chromium.org
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org >
Reviewed-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Cc: Minchan Kim <minchan@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-05-31 22:46:07 -07:00
Sergey Senozhatsky
a5ade2e9fa
zram: rename ZCOMP_PARAM_NO_LEVEL
...
Patch series "zram: support algorithm-specific parameters".
This patchset adds support for algorithm-specific parameters. For now,
only deflate-specific winbits can be configured, which fixes deflate
support on some s390 setups.
This patch (of 2):
Use more generic name because this will be default "un-set"
value for more params in the future.
Link: https://lkml.kernel.org/r/20250514024825.1745489-1-senozhatsky@chromium.org
Link: https://lkml.kernel.org/r/20250514024825.1745489-2-senozhatsky@chromium.org
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org >
Reviewed-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Cc: Minchan Kim <minchan@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-05-31 22:46:07 -07:00
Sergey Senozhatsky
b8f03cb703
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 >
2024-09-09 16:39:10 -07:00
Sergey Senozhatsky
6a81bdfeb3
zram: introduce zcomp_ctx structure
...
Keep run-time driver data (scratch buffers, etc.) in zcomp_ctx structure.
This structure is allocated per-CPU because drivers (backends) need to
modify its content during requests execution.
We will split mutable and immutable driver data, this is a preparation
path.
Link: https://lkml.kernel.org/r/20240902105656.1383858-19-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 >
2024-09-09 16:39:10 -07:00
Sergey Senozhatsky
52c7b4e2ba
zram: introduce zcomp_req structure
...
Encapsulate compression/decompression data in zcomp_req structure.
Link: https://lkml.kernel.org/r/20240902105656.1383858-18-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 >
2024-09-09 16:39:10 -07:00
Sergey Senozhatsky
f2bac7ad18
zram: introduce zcomp_params structure
...
We will store a per-algorithm parameters there (compression level,
dictionary, dictionary size, etc.).
Link: https://lkml.kernel.org/r/20240902105656.1383858-14-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 >
2024-09-09 16:39:09 -07:00
Sergey Senozhatsky
84112e314f
zram: add zlib compression backend support
...
Add s/w zlib (inflate/deflate) compression.
Link: https://lkml.kernel.org/r/20240902105656.1383858-11-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 >
2024-09-09 16:39:08 -07:00