Re: [PATCH v6] fsck.erofs: add multi-threaded decompression

Nithurshen <[email protected]> Sun, 26 Jul 2026 16:32:30 +0530
Newsgroups org.ozlabs.lists.linux-erofs
Message-ID <[email protected]>
Hi Xiang,

I have integrated the multi-threaded decompression framework on
top of the concurrent directory traversal patch and ran the
benchmarks against our single-threaded baseline. All integrity
checks passed successfully. Note that this data is an average of
5 runs of extraction of the same file with purging all cache
before each extraction.

Here is the extraction time breakdown and performance improvement:

| Alg   | Cluster | ST Base | MT Trav | MT Comb | Imp(P1) | Imp(P2) | Imp(All) |
|-------|---------|---------|---------|---------|---------|---------|----------|
| lz4hc | 4096    | 4.17s   | 3.62s   | 3.38s   | 13.2%   | 6.6%    | 19.0%    |
| lz4hc | 8192    | 6.02s   | 3.73s   | 3.56s   | 38.0%   | 4.6%    | 40.9%    |
| lz4hc | 16384   | 5.34s   | 4.61s   | 4.24s   | 13.7%   | 8.0%    | 20.6%    |
| lz4hc | 32768   | 5.24s   | 3.79s   | 3.34s   | 27.7%   | 11.9%   | 36.3%    |
| lz4hc | 65536   | 4.23s   | 3.61s   | 3.49s   | 14.7%   | 3.3%    | 17.5%    |
| zstd  | 4096    | 4.63s   | 4.62s   | 3.75s   | 0.2%    | 18.8%   | 19.0%    |
| zstd  | 8192    | 4.78s   | 3.95s   | 3.84s   | 17.4%   | 2.8%    | 19.7%    |
| zstd  | 16384   | 4.29s   | 3.68s   | 3.65s   | 14.2%   | 0.8%    | 14.9%    |
| zstd  | 32768   | 4.33s   | 3.68s   | 3.18s   | 15.0%   | 13.6%   | 26.6%    |
| zstd  | 65536   | 4.34s   | 3.82s   | 3.31s   | 12.0%   | 13.4%   | 23.7%    |
| lzma  | 4096    | 56.37s  | 36.57s  | 20.60s  | 35.1%   | 43.7%   | 63.5%    |
| lzma  | 8192    | 64.48s  | 45.00s  | 18.49s  | 30.2%   | 58.9%   | 71.3%    |
| lzma  | 16384   | 69.83s  | 52.34s  | 21.97s  | 25.0%   | 58.0%   | 68.5%    |
| lzma  | 32768   | 74.88s  | 55.37s  | 20.88s  | 26.1%   | 62.3%   | 72.1%    |
| lzma  | 65536   | 80.66s  | 63.64s  | 19.81s  | 21.1%   | 68.9%   | 75.4%    |

*(Imp(P1): Improvement of MT Traversal over ST Baseline)*
*(Imp(P2): Improvement of Combined Patch over MT Traversal)*
*(Imp(All): Total Improvement of Combined Patch over ST Baseline)*

Average Overall Improvements:
* LZMA: ~70.2% improvement overall.
* LZ4HC: ~26.9% improvement overall.
* ZSTD: ~20.8% improvement overall.

Regarding performance:
By combining concurrent directory traversal with the multi-threaded
decompression pipeline (featuring algorithm-aware batching and fast-
path bypasses), we have successfully decoupled CPU-heavy compute
from I/O-bound extraction.

Please let me know your thoughts on this combined patch.

Thanks,
Nithurshen