Re: [PATCH v2 6/7] md/raid1,raid10: skip futile retries on P2PDMA mapping failures
Mykola Marzhan <[email protected]> Tue, 21 Jul 2026 19:50:54 +0200
| Newsgroups | org.kernel.vger.linux-raid,org.infradead.lists.linux-nvme,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kernel.vger.linux-rdma |
|---|---|
| Message-ID | <CAPzsNDsLr_BABgizujN0CgnLNfzS3S37vQ133fjbJzFMvRs7CQ@mail.gmail.com> |
Thanks you! On 2026-07-20 10:49, Logan Gunthorpe wrote: > My eyes glazed over a bit. But one point is that maybe this could be > split into multiple patches: one patch introduces R1BIO_P2PDMA, one > patch for raid1 and another patch for raid10? That might make it a bit > more manageable. I have split it in v3 into a raid1 patch and a raid10 patch. I am not sure about separate "introduce the bit" patches. R1BIO_P2PDMA and R10BIO_P2PDMA are entries in the two personalities' with own r*bio state enums. The commit messages are shorter now. > Also, I'm not sure if it's possible without digging deeper but, instead > of adding a !p2pdma_unmappable check to every if() statement in the > raid*_end_write_request() functions, might it be possible to factor out > a helper function and return early from it? An early return doesn't work here: on a mapping failure the function must still fall through to set R1BIO_WriteError, so the completion path runs the (single, whole-range) retry and records the bad range -- only WantReplacement and the FailFast md_error() are skipped. v3 folds the two tests into one branch now, which reads better and keeps the fall-through. Please check v3. > Maybe the helper could be > shared between raid10 and raid1 as they look very similar. The > differences between the two are minimal -- there might be a bug fix that > was applied to one that should be applied to both? I compared the two sides after splitting: the P2PDMA handling is symmetric, and the remaining differences are pre-existing personality differences rather than missed fixes. A shared helper would be heavier than the two open-coded branches, so I kept it per-personality. Mykola