changelog since v3: - remove unnecessary struct z_erofs_write_index_ctx, and add a helper z_erofs_mt_fix_index to fix extents->blkaddr before writing index - rename: z_erofs_vle_compress_ctx -> z_erofs_compressed_segment_ctx - rename: z_erofs_file_compress_ctx -> z_erofs_compressed_inode_ctx - leave tryrecompress_trailing() unchanged as it's only used in ztailpacking scenario which is not supported yet
Gao Xiang (2): erofs-utils: add a helper to get available processors erofs-utils: lib: introduce atomic operations Yifan Zhao (3): erofs-utils: introduce multi-threading framework erofs-utils: mkfs: add --worker=# parameter erofs-utils: mkfs: introduce inner-file multi-threaded compression configure.ac | 17 + include/erofs/atomic.h | 28 ++ include/erofs/compress.h | 1 + include/erofs/config.h | 5 + include/erofs/internal.h | 3 + include/erofs/workqueue.h | 37 ++ lib/Makefile.am | 4 + lib/compress.c | 703 +++++++++++++++++++++++++++++------- lib/compressor.c | 2 + lib/compressor_deflate.c | 11 +- lib/compressor_libdeflate.c | 6 +- lib/compressor_liblzma.c | 5 +- lib/config.c | 16 + lib/workqueue.c | 132 +++++++ mkfs/main.c | 38 ++ 15 files changed, 877 insertions(+), 131 deletions(-) create mode 100644 include/erofs/atomic.h create mode 100644 include/erofs/workqueue.h create mode 100644 lib/workqueue.c -- 2.44.0