[PATCH 0/2] md/raid5: reduce resync/recovery dispatch overhead
From: Hiroshi Nishida
Date: Fri Jul 10 2026 - 09:24:58 EST
Two changes to how resync/recovery submits work, reducing per-stripe
overhead on the rebuild path. Neither adds memory.
1/2 submits a window of stripes per raid5_sync_request() call instead
of one at a time. On a rebuild this reduces the number of
raid5_sync_request() invocations by ~30x (a call-count measurement,
not a throughput figure) and bounds the per-stripe jiffy-sleep that
otherwise throttles progress when the stripe cache is under
pressure.
2/2 reserves a small amount of stripe cache for user I/O during a
rebuild, so foreground I/O is not starved by the resync stream. A
pure rebuild with no competing I/O is unchanged.
Both touch only the resync/recovery path and are independent of the other
md patches I'm sending separately.
Hiroshi Nishida (2):
md/raid5: submit a window of stripes during resync/recovery
md/raid5: reserve stripe cache for user I/O during rebuild
drivers/md/raid5.c | 68 +++++++++++++++++++++++++++++++++++++---------
drivers/md/raid5.h | 2 ++
2 files changed, 57 insertions(+), 13 deletions(-)
base-commit: 55b77337bdd088c77461588e5ec094421b89911b
--
2.43.0