Re: [PATCH 0/5] md: fix/prevent dm-raid regressions
From: Yu Kuai <hidden>
Date: 2024-01-22 01:19:23
Also in:
dm-devel, lkml
Hi, 在 2024/01/21 12:41, Song Liu 写道:
On Sat, Jan 20, 2024 at 2:41 AM Yu Kuai [off-list ref] wrote:quoted
From: Yu Kuai <redacted> There are some problems that we fixed in md/raid, and some apis is changed. However, dm-raid rely the old apis(noted that old apis is problematic in corner cases), and now there are regressions in lvm2 testsuite. This patchset fix some regressions(patch 1-3), and revert changes to prevent regressions(patch 4,5). Noted that the problems in patch 4,5 is not clear yet, and I'm not able to locate the root cause ASAP, hence I decide to revert changes to prevent regressions first.Thanks for looking into this! Patch 1-3 look good to me. But since we need to back port these fixes to 6.7 kernels, let's make it very clear what issues are being fixed. Please: 1. Test on both Linus' master branch and 6.7.y, and explain which tests are failing before the fixes. (From my tests, the two branches don't have the same test results). We can put these results in the cover letter and include them in a merge commit. 2. If possible, add Fixes tag to all patches. 3. Add more details in the commit log, so it is clear what is being fixed. 4. Add "reported-by" and maybe also "closes" tag.
Will do this is the next version. I verified that the following tests will pass now in my VM: shell/integrity-caching.sh shell/lvconvert-raid-reshape.sh
For patch 4-5, especially 5, I wonder whether the same issue also happens with md. We can probably ship 4-5 now, with the same improvements as patch 1-3.
With patch 1-3, the test lvconvert-raid-reshape.sh won't hang anymore, however it still fails and complain that ext4 is corrupted, and I'm still trying to understand how reshape works in dm-raid. :(
I will run more tests on my side.
Notice that the problem Mykulas mentioned in the patch md: partially revert "md/raid6: use valid sector values to determine if an I/O should wait on the reshape" still exist. And again, I'm stll trying to understand how raid5 works in detail.
Mykulas, please also review and test these patches. Thanks, Songquoted
Yu Kuai (5): md: don't ignore suspended array in md_check_recovery() md: don't ignore read-only array in md_check_recovery() md: make sure md_do_sync() will set MD_RECOVERY_DONE md: revert commit fa2bbff7b0b4 ("md: synchronize flush io with array reconfiguration") for dm-raid md: use md_reap_sync_thread() directly for dm-raid drivers/md/md.c | 58 ++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 22 deletions(-) -- 2.39.2.