Re: [PATCH] md/raid1: honor REQ_NOWAIT when waiting for behind writes
Abd-Alrhman Masalkhi <[email protected]>
| Newsgroups | gmane.linux.raid,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
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