[PATCH -next v2 0/7] limit the number of plugged bio

From: Yu Kuai
Date: Wed Apr 26 2023 - 04:22:29 EST


From: Yu Kuai <yukuai3@xxxxxxxxxx>

Changes in v2:
- remove the patch to rename raid1-10.c

This patchset tries to limit the number of plugged bio for raid1 and
raid10, which is done in the last patch, other patches are some refactor
and optimizations.

This patchset is tested with a new test [1], this test triggers dirty
pages writeback for 10s, and in the meantime checks disk inflight.

Before this patchset, test will fail because inflight exceed threshold
(threshold is set to 4096 in the test, in theory this can be mutch
greater as long as there are enough dirty pages and memory).

After this patchset, inflight is within 96 (MAX_PLUG_BIO * copies).

[1] https://lore.kernel.org/linux-raid/20230426073447.1294916-1-yukuai1@xxxxxxxxxxxxxxx/

Yu Kuai (7):
md/raid10: prevent soft lockup while flush writes
md/raid1-10: factor out a helper to add bio to plug
md/raid1-10: factor out a helper to submit normal write
md/raid1-10: submit write io directly if bitmap is not enabled
md/md-bitmap: add a new helper to unplug bitmap asynchrously
md/raid1-10: don't handle pluged bio by daemon thread
md/raid1-10: limit the number of plugged bio

drivers/md/md-bitmap.c | 55 +++++++++++++++++++++++++++++++++----
drivers/md/md-bitmap.h | 10 +++++++
drivers/md/raid1-10.c | 62 ++++++++++++++++++++++++++++++++++++++++++
drivers/md/raid1.c | 29 ++++----------------
drivers/md/raid10.c | 47 +++++++-------------------------
5 files changed, 136 insertions(+), 67 deletions(-)

--
2.39.2