zstd/contrib
Sergey Senozhatsky 0727fc5ff9 lib: zstd: export API needed for dictionary support
Patch series "zram: introduce custom comp backends API", v7.

This series introduces support for run-time compression algorithms tuning,
so users, for instance, can adjust compression/acceleration levels and
provide pre-trained compression/decompression dictionaries which certain
algorithms support.

At this point we stop supporting (old/deprecated) comp API.  We may add
new acomp API support in the future, but before that zram needs to undergo
some major rework (we are not ready for async compression).

Some benchmarks for reference (look at column #2)

*** init zstd
/sys/block/zram0/mm_stat
1750659072 504622188 514355200        0 514355200        1        0    34204    34204

*** init zstd dict=/home/ss/zstd-dict-amd64
/sys/block/zram0/mm_stat
1750650880 465908890 475398144        0 475398144        1        0    34185    34185

*** init zstd level=8 dict=/home/ss/zstd-dict-amd64
/sys/block/zram0/mm_stat
1750654976 430803319 439873536        0 439873536        1        0    34185    34185

*** init lz4
/sys/block/zram0/mm_stat
1750646784 664266564 677060608        0 677060608        1        0    34288    34288

*** init lz4 dict=/home/ss/lz4-dict-amd64
/sys/block/zram0/mm_stat
1750650880 619990300 632102912        0 632102912        1        0    34278    34278

*** init lz4hc
/sys/block/zram0/mm_stat
1750630400 609023822 621232128        0 621232128        1        0    34288    34288

*** init lz4hc dict=/home/ss/lz4-dict-amd64
/sys/block/zram0/mm_stat
1750659072 505133172 515231744        0 515231744        1        0    34278    34278

Recompress
init zram zstd (prio=0), zstd level=5 (prio 1), zstd with dict (prio 2)

*** zstd
/sys/block/zram0/mm_stat
1750982656 504630584 514269184        0 514269184        1        0    34204    34204

*** idle recompress priority=1 (zstd level=5)
/sys/block/zram0/mm_stat
1750982656 488645601 525438976        0 514269184        1        0    34204    34204

*** idle recompress priority=2 (zstd dict)
/sys/block/zram0/mm_stat
1750982656 460869640 517914624        0 514269184        1        0    34185    34204

This patch (of 24):

We need to export a number of API functions that enable advanced zstd
usage - C/D dictionaries, dictionaries sharing between contexts, etc.

Link: https://lkml.kernel.org/r/20240902105656.1383858-1-senozhatsky@chromium.org
Link: https://lkml.kernel.org/r/20240902105656.1383858-2-senozhatsky@chromium.org
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Nick Terrell <terrelln@fb.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-02-28 17:09:46 -05:00
..
diagnose_corruption Coalesce Almost All Copyright Notices to Standard Phrasing 2022-12-20 12:52:34 -05:00
docker Also Pin Dockerfile Dependency Hashes 2023-03-09 17:01:22 -05:00
externalSequenceProducer Rename "External Matchfinder" to "Block-Level Sequence Producer" (#3484) 2023-02-09 17:01:17 -05:00
freestanding_lib Coalesce Almost All Copyright Notices to Standard Phrasing 2022-12-20 12:52:34 -05:00
gen_html inform manual users that it's automatically generated 2024-10-31 15:06:48 -07:00
largeNbDicts codemod: ZSTD_paramSwitch_e -> ZSTD_ParamSwitch_e 2024-12-20 10:36:58 -08:00
linux-kernel lib: zstd: export API needed for dictionary support 2025-02-28 17:09:46 -05:00
match_finders Coalesce Almost All Copyright Notices to Standard Phrasing 2022-12-20 12:52:34 -05:00
premake Fix wrong conditions 2018-07-14 12:34:03 +02:00
pzstd try to fix the meson windows build 2025-02-27 15:45:59 -08:00
recovery Coalesce Almost All Copyright Notices to Standard Phrasing 2022-12-20 12:52:34 -05:00
seekable_format Merge pull request #4218 from facebook/externC 2025-01-07 10:06:08 -08:00
seqBench Coalesce Almost All Copyright Notices to Standard Phrasing 2022-12-20 12:52:34 -05:00
snap moved snap to /contrib 2018-03-19 16:15:06 -07:00
VS2005 AsyncIO compression part 1 - refactor of existing asyncio code (#3021) 2022-01-24 14:43:02 -08:00
cleanTabs created contrib/cleanTabs 2017-03-30 12:42:44 -07:00