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