Re: [PATCH v7 0/3] md/raid10: fix r10bio width mismatches across reshape
"Chen Cheng" <[email protected]> Mon, 27 Jul 2026 19:17:04 +0800
| Newsgroups | org.kernel.vger.linux-raid,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 2026/7/27 18:54, Mykola Marzhan wrote: > Hi Cheng, > > Here are the test results I promised. v7 fixes it. > > I used one kernel tree, rebuilt incrementally between the two builds, > so the only difference is your three patches. The array is raid10 n2 > with 4 members. The load is four fio jobs: 4k randwrite, O_DIRECT, > iodepth 32. While the load runs, I --add two spares and then > --grow --raid-devices=6. The kernel is KASAN generic with > kasan_multi_shot. Each run is 5 cycles: > > kernel runs cycles grows completed slab-out-of-bounds > base 1 5 5/5 128 (in 4 of 5 cycles) > base + v7 2 5 + 5 10/10 0 > > All 128 base reports are in free_r10bio(): 64 reads and 64 writes, > each of 8 bytes. There is also a second report site, > raid10_make_request(). A warm-up run on the same base hit it too, > with 2 slab-out-of-bounds there alongside 568 in free_r10bio(). So > both report sites are reachable with this workload. > > Every cycle on both kernels logged "md: md0: reshape done." and the > same capacity change, so the grow really did run 10/10 on the patched > kernel, and fio was alive throughout each cycle. > > The bug does not fire in every cycle: per-cycle counts on the base > were 0, 40, 8, 56, 24, so the base hit it in 4 of 5 cycles. That rate > is what gives the patched 10/10 zero its meaning. > > Tested-by: Mykola Marzhan <[email protected]> > Hi Mykola, I see, really thanks for your test result! > One practical note: v7 does not apply to mainline. Patch 2/3 carries > context > > static void __make_request(struct mddev *mddev, struct bio *bio, int sectors) > > but e045d6ed33f8 ("md/raid10: fix writes_pending leak on write request > failures") changed __make_request() to return bool. Applying > 1/3..3/3 with --fuzz=0: > > 8e065a160251 (= e045d6ed33f8^) applies clean > e045d6ed33f8 fails > 55b77337bdd0 fails > v7.2-rc4 fails > current mainline fails > Got it, I must misuse a unclean branch. > So the numbers above are from 8e065a160251, which is the newest base v7 > applies to. A rebase would probably help it get picked up — happy to > re-run the same rig on a v8 if you post one. > I don't want to waste your time, I would re-run reproducer before I send. Reproducer Link: https://github.com/chencheng-fnnas/reproducer/blob/main/repro-raid10-4to5-reshape-r10bio-oob.sh Thanks again, Cheng. > Thanks, > Mykola