Linux-EROFS Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] fsck.erofs: implement multi-threaded extraction
@ 2026-06-21 12:01 Nithurshen
  2026-06-21 12:01 ` [PATCH 1/2] fsck.erofs: add multi-threaded decompression Nithurshen
  2026-06-21 12:01 ` [PATCH 2/2] fsck.erofs: implement concurrent directory traversal Nithurshen
  0 siblings, 2 replies; 3+ messages in thread
From: Nithurshen @ 2026-06-21 12:01 UTC (permalink / raw)
  To: linux-erofs; +Cc: hsiangkao, xiang, Nithurshen

Hi Xiang,

This series introduces multi-threaded decompression and extraction to
fsck.erofs.

The architecture is divided into two decoupled workqueues to prevent
thread pool exhaustion gridlock:

1. `erofs_traverse_wq`: Handles the asynchronous directory walk. It
   localizes the historically global `extract_path` and `dirstack`
   states into individual payloads, safely traversing the tree and
   verifying inodes.
2. `erofs_wq`: Dedicated strictly to processing `z_erofs_decompress_req`
   payloads. Decompression tasks take strict ownership of the raw and
   output buffers, preventing data races.

Testing on heavily packed LZ4HC images demonstrates smooth asynchronous
fan-out, successfully overlapping I/O traversal with decompression
compute.

Nithurshen (2):
  fsck.erofs: add multi-threaded decompression
  fsck.erofs: implement concurrent directory traversal

 fsck/main.c              | 450 ++++++++++++++++++++++++---------------
 include/erofs/cond.h     |  31 +++
 include/erofs/internal.h |  20 +-
 include/erofs/lock.h     |   3 +
 lib/data.c               | 216 ++++++++++++++-----
 5 files changed, 488 insertions(+), 232 deletions(-)
 create mode 100644 include/erofs/cond.h

-- 
2.52.0



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

end of thread, other threads:[~2026-06-21 12:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-21 12:01 [PATCH 0/2] fsck.erofs: implement multi-threaded extraction Nithurshen
2026-06-21 12:01 ` [PATCH 1/2] fsck.erofs: add multi-threaded decompression Nithurshen
2026-06-21 12:01 ` [PATCH 2/2] fsck.erofs: implement concurrent directory traversal Nithurshen

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