All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] fsck.erofs: introduce multi-threaded decompression
@ 2026-05-23  0:37 Nithurshen
  2026-05-23  0:37 ` [PATCH 1/2] fsck.erofs: introduce multi-threaded decompression with static batching Nithurshen
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Nithurshen @ 2026-05-23  0:37 UTC (permalink / raw)
  To: linux-erofs; +Cc: hsiangkao, xiang, Nithurshen

Hi,

As part of my GSoC 2026 proposal to introduce Multi-Threaded 
Decompression Support in fsck.erofs, I am submitting this two-patch 
series which establishes the core workqueue offloading infrastructure.

Baseline profiling of fsck.erofs extracting LZ4HC 4K pclusters showed 
the main thread bottlenecking on synchronous VFS writes while blocking 
decompression tasks. This series decouples the compute payload into the 
existing erofs_workqueue.

- Patch 1 introduces the baseline producer-consumer logic. To avoid 
  massive futex scheduling overhead on tiny 4K clusters, it implements 
  a batching context that groups sequential pclusters into a single 
  erofs_work unit. Buffer memory ownership is strictly delegated to 
  the workers using calloc() to prevent garbage-byte leaks.
  
- Patch 2 implements dynamic, algorithm-aware batching. Fast algorithms 
  (LZ4) are permitted to utilize the maximum batch size (32 pclusters) 
  to hide scheduling latency, whereas compute-heavy algorithms (LZMA) 
  trigger much smaller batches (8 pclusters) to prevent memory bloat 
  and keep the thread pool continuously fed.

The implementation has been verified to produce bit-perfect extractions 
against heavily packed LZ4HC test images.

Nithurshen (2):
  fsck.erofs: introduce multi-threaded decompression with static
    batching
  fsck.erofs: implement dynamic pcluster batching based on algorithm
    complexity

 fsck/main.c              | 234 +++++++++++++++++----------------------
 include/erofs/internal.h |  18 ++-
 lib/data.c               | 206 ++++++++++++++++++++++++----------
 3 files changed, 268 insertions(+), 190 deletions(-)

-- 
2.52.0



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

end of thread, other threads:[~2026-06-08  6:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-23  0:37 [PATCH 0/2] fsck.erofs: introduce multi-threaded decompression Nithurshen
2026-05-23  0:37 ` [PATCH 1/2] fsck.erofs: introduce multi-threaded decompression with static batching Nithurshen
2026-06-07  1:50   ` Gao Xiang
2026-05-23  0:37 ` [PATCH 2/2] fsck.erofs: implement dynamic pcluster batching based on algorithm complexity Nithurshen
2026-06-07  1:52   ` Gao Xiang
2026-06-08  5:07 ` [PATCH v2 0/2] fsck.erofs: add multi-threaded decompression Nithurshen
2026-06-08  5:07   ` [PATCH v2 1/2] fsck.erofs: introduce multi-threaded decompression with static batching Nithurshen
2026-06-08  6:25     ` Gao Xiang
2026-06-08  5:07   ` [PATCH v2 2/2] fsck.erofs: implement algorithm-aware pcluster batching Nithurshen

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.