All of 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; 13+ 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] 13+ messages in thread

end of thread, other threads:[~2026-07-14  1:18 UTC | newest]

Thread overview: 13+ 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-22  2:08   ` Gao Xiang
2026-06-29  9:55   ` [PATCH 1/2 v2] " Nithurshen
2026-07-05 14:00     ` Gao Xiang
2026-07-06  6:05   ` [PATCH 1/2 v3] " Nithurshen
2026-07-06  6:10     ` Nithurshen
2026-07-08  2:31       ` Gao Xiang
2026-07-13  7:02     ` [PATCH 1/2 v4] " Nithurshen
2026-06-21 12:01 ` [PATCH 2/2] fsck.erofs: implement concurrent directory traversal Nithurshen
2026-07-05 14:05   ` Gao Xiang
2026-07-14  1:10   ` [PATCH v5] fsck.erofs: add multi-threaded decompression Nithurshen
2026-07-14  1:18     ` Nithurshen Karthikeyan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.