Re: [PATCH] md/raid1: honor REQ_NOWAIT when waiting for behind writes

From: yu kuai

Date: Wed Jun 24 2026 - 02:40:01 EST


Hi,

在 2026/6/22 2:08, Abd-Alrhman Masalkhi 写道:
> What if on a partial nowait failure we just end the master bio as
> success, but set NEEDED on that chunk's bitmap counter and start_sync()
> picks it up for resync? That way we don't have to decide why rdev2
> failed at all, resync just copies from rdev1 to rdev2 without nowait,
> so if it's a real bad block, end_sync_write() records it then.
>
> We kinda have the idea of ending the bio before the write lands on all
> mirrors in write-behind already, though it's not quite the same, there
> the deferred write still lands, here we ACK after it already failed and
> lean on resync to redo it.
>
> My worry is the loaded case: AGAIN under queue pressure isn't that rare,
> so we might end up triggering resync frequently. Do you think that's
> acceptable, or is dropping nowait better? Happy to prototype either way.

Yes, AGAIN under queue pressure isn't rare, and I don't think trigger resync
for a nowait IO failure is acceptable. This can cause lots of offline IO
pressure which will affect disk service life. Meanwhile, resync will cause
performance degradation for user.

I still feel dropping nowait is better.

--
Thanks,
Kuai