public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] zram: convert to custom comp API and allow algorithms configuration
@ 2024-05-03  9:17 Sergey Senozhatsky
  2024-05-03  9:17 ` [PATCH 01/14] zram: move from crypto API to custom comp backends API Sergey Senozhatsky
                   ` (13 more replies)
  0 siblings, 14 replies; 26+ messages in thread
From: Sergey Senozhatsky @ 2024-05-03  9:17 UTC (permalink / raw)
  To: Andrew Morton, Minchan Kim; +Cc: linux-kernel, linux-block, Sergey Senozhatsky

	This patch set moves zram from crypto API to a custom compression
API which allows us to tune and configure compression algorithms,
something that crypto API, unfortunately, doesn't support. Basically,
this seroes brings back the bits of comp "backend" code that we had
many years ago. This means that if we want zram to support new
compression algorithms we need to implement corresponding backends.

	Currently, zram supports a pretty decent number of comp backends:
lzo, lzorle, lz4, lz4hc, deflate, zstd

	At this point we handle 2 parameters: a compression level and
a pre-trained compression dictionary. Which seems like a good enough
start. The list will be extended in the future.

Examples:

- changes default compression level
	echo "algo=zstd level=11" > /sys/block/zram0/comp_algorithm

- passes path to a pre-trained dictionary
	echo "algo=zstd dict=/etc/dictionary" > /sys/block/zram0/comp_algorithm

TEST
====

using default zstd
/sys/block/zram0/mm_stat
1750315008 504602831 514256896        0 514256896        1        0    34204    34204

using zstd level=7 dict=/etc/dictionary
/sys/block/zram0/mm_stat
1750310912 432540606 441712640        0 441712640        1        0    34187    34187

Sergey Senozhatsky (14):
  zram: move from crypto API to custom comp backends API
  zram: add lzo and lzorle compression backends support
  zram: add lz4 compression backend support
  zram: add lz4hc compression backend support
  zram: add zstd compression backend support
  zram: pass estimated src size hint to zstd
  zram: add zlib compression backend support
  zram: check that backends array has at least one backend
  zram: introduce zcomp_config structure
  zram: extend comp_algorithm attr write handling
  zram: support compression level comp config
  zram: add support for dict comp config
  zram: add dictionary support to zstd backend
  Documentation/zram: add documentation for algorithm parameters

 Documentation/admin-guide/blockdev/zram.rst |  38 ++++-
 drivers/block/zram/Kconfig                  |  69 ++++++--
 drivers/block/zram/Makefile                 |   7 +
 drivers/block/zram/backend_deflate.c        | 133 +++++++++++++++
 drivers/block/zram/backend_deflate.h        |  10 ++
 drivers/block/zram/backend_lz4.c            |  47 ++++++
 drivers/block/zram/backend_lz4.h            |  10 ++
 drivers/block/zram/backend_lz4hc.c          |  74 +++++++++
 drivers/block/zram/backend_lz4hc.h          |  10 ++
 drivers/block/zram/backend_lzo.c            |  44 +++++
 drivers/block/zram/backend_lzo.h            |  10 ++
 drivers/block/zram/backend_lzorle.c         |  44 +++++
 drivers/block/zram/backend_lzorle.h         |  10 ++
 drivers/block/zram/backend_zstd.c           | 174 ++++++++++++++++++++
 drivers/block/zram/backend_zstd.h           |  10 ++
 drivers/block/zram/zcomp.c                  | 145 ++++++++--------
 drivers/block/zram/zcomp.h                  |  38 ++++-
 drivers/block/zram/zram_drv.c               | 110 ++++++++++++-
 drivers/block/zram/zram_drv.h               |   1 +
 19 files changed, 870 insertions(+), 114 deletions(-)
 create mode 100644 drivers/block/zram/backend_deflate.c
 create mode 100644 drivers/block/zram/backend_deflate.h
 create mode 100644 drivers/block/zram/backend_lz4.c
 create mode 100644 drivers/block/zram/backend_lz4.h
 create mode 100644 drivers/block/zram/backend_lz4hc.c
 create mode 100644 drivers/block/zram/backend_lz4hc.h
 create mode 100644 drivers/block/zram/backend_lzo.c
 create mode 100644 drivers/block/zram/backend_lzo.h
 create mode 100644 drivers/block/zram/backend_lzorle.c
 create mode 100644 drivers/block/zram/backend_lzorle.h
 create mode 100644 drivers/block/zram/backend_zstd.c
 create mode 100644 drivers/block/zram/backend_zstd.h

-- 
2.45.0.rc1.225.g2a3ae87e7f-goog


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2024-05-06  6:43 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-03  9:17 [PATCH 00/14] zram: convert to custom comp API and allow algorithms configuration Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 01/14] zram: move from crypto API to custom comp backends API Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 02/14] zram: add lzo and lzorle compression backends support Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 03/14] zram: add lz4 compression backend support Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 04/14] zram: add lz4hc " Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 05/14] zram: add zstd " Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 06/14] zram: pass estimated src size hint to zstd Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 07/14] zram: add zlib compression backend support Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 08/14] zram: check that backends array has at least one backend Sergey Senozhatsky
2024-05-04  6:54   ` kernel test robot
2024-05-04  7:14     ` Sergey Senozhatsky
2024-05-04 23:10       ` Andrew Morton
2024-05-05  4:39         ` Sergey Senozhatsky
2024-05-05  5:13           ` Sergey Senozhatsky
2024-05-05  6:48             ` Sergey Senozhatsky
2024-05-06  3:22               ` Sergey Senozhatsky
2024-05-06  5:20                 ` Masahiro Yamada
2024-05-06  6:43                   ` Sergey Senozhatsky
2024-05-04  7:15   ` kernel test robot
2024-05-03  9:17 ` [PATCH 09/14] zram: introduce zcomp_config structure Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 10/14] zram: extend comp_algorithm attr write handling Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 11/14] zram: support compression level comp config Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 12/14] zram: add support for dict " Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 13/14] zram: add dictionary support to zstd backend Sergey Senozhatsky
2024-05-04  6:02   ` Sergey Senozhatsky
2024-05-03  9:17 ` [PATCH 14/14] Documentation/zram: add documentation for algorithm parameters Sergey Senozhatsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox