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

From: Abd-Alrhman Masalkhi

Date: Wed Jun 24 2026 - 04:09:01 EST


On Wed, Jun 24, 2026 at 14:39 +0800, yu kuai wrote:
> 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.
>

That makes sense. I'll drop nowait for md and post a patch.

> --
> Thanks,
> Kuai

--
Best Regards,
Abd-Alrhman