mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00

This patch introduces the use of the Intel QAT to offload EROFS data decompression, aiming to improve the decompression performance. A 285MiB dataset is used with the following command to create EROFS images with different cluster sizes: $ mkfs.erofs -zdeflate,level=9 -C{4096,16384,65536,131072,262144} Fio is used to test the following read patterns: $ fio -filename=testfile -bs=4k -rw=read -name=job1 $ fio -filename=testfile -bs=4k -rw=randread -name=job1 $ fio -filename=testfile -bs=4k -rw=randread --io_size=14m -name=job1 Here are some performance numbers for reference: Processors: Intel(R) Xeon(R) 6766E (144 cores) Memory: 512 GiB |-----------------------------------------------------------------------------| | | Cluster size | sequential read | randread | small randread(5%) | |-----------|--------------|-----------------|-----------|--------------------| | Intel QAT | 4096 | 538 MiB/s | 112 MiB/s | 20.76 MiB/s | | Intel QAT | 16384 | 699 MiB/s | 158 MiB/s | 21.02 MiB/s | | Intel QAT | 65536 | 917 MiB/s | 278 MiB/s | 20.90 MiB/s | | Intel QAT | 131072 | 1056 MiB/s | 351 MiB/s | 23.36 MiB/s | | Intel QAT | 262144 | 1145 MiB/s | 431 MiB/s | 26.66 MiB/s | | deflate | 4096 | 499 MiB/s | 108 MiB/s | 21.50 MiB/s | | deflate | 16384 | 422 MiB/s | 125 MiB/s | 18.94 MiB/s | | deflate | 65536 | 452 MiB/s | 159 MiB/s | 13.02 MiB/s | | deflate | 131072 | 452 MiB/s | 177 MiB/s | 11.44 MiB/s | | deflate | 262144 | 466 MiB/s | 194 MiB/s | 10.60 MiB/s | Signed-off-by: Bo Liu <liubo03@inspur.com> Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com> Link: https://lore.kernel.org/r/20250522094931.28956-1-liubo03@inspur.com [ Gao Xiang: refine the commit message. ] Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
What: /sys/fs/erofs/features/
|
|
Date: November 2021
|
|
Contact: "Huang Jianan" <huangjianan@oppo.com>
|
|
Description: Shows all enabled kernel features.
|
|
Supported features:
|
|
zero_padding, compr_cfgs, big_pcluster, chunked_file,
|
|
device_table, compr_head2, sb_chksum, ztailpacking,
|
|
dedupe, fragments.
|
|
|
|
What: /sys/fs/erofs/<disk>/sync_decompress
|
|
Date: November 2021
|
|
Contact: "Huang Jianan" <huangjianan@oppo.com>
|
|
Description: Control strategy of sync decompression:
|
|
|
|
- 0 (default, auto): enable for readpage, and enable for
|
|
readahead on atomic contexts only.
|
|
- 1 (force on): enable for readpage and readahead.
|
|
- 2 (force off): disable for all situations.
|
|
|
|
What: /sys/fs/erofs/<disk>/drop_caches
|
|
Date: November 2024
|
|
Contact: "Guo Chunhai" <guochunhai@vivo.com>
|
|
Description: Writing to this will drop compression-related caches,
|
|
currently used to drop in-memory pclusters and cached
|
|
compressed folios:
|
|
|
|
- 1 : invalidate cached compressed folios
|
|
- 2 : drop in-memory pclusters
|
|
- 3 : drop in-memory pclusters and cached compressed folios
|
|
|
|
What: /sys/fs/erofs/accel
|
|
Date: May 2025
|
|
Contact: "Bo Liu" <liubo03@inspur.com>
|
|
Description: Used to set or show hardware accelerators in effect
|
|
and multiple accelerators are separated by '\n'.
|
|
Supported accelerator(s): qat_deflate.
|
|
Disable all accelerators with an empty string (echo > accel).
|