On Mon, May 11, 2009 at 1:31 AM, Neil Brown <neilb@xxxxxxx> wrote: > On Sunday May 3, raziebe@xxxxxxx wrote: >> Neil Hello >> The bellow is the raid0 grow code.I have decided to fix raid0 and not >> perform the transformation raid0-raid4-raid0 due to two reasons: >> 1. raid0 zones. this patch support any zone transformations. >> 2. Undesired dependency of raid0 over raid4 re-striping code. >> >> The following tests were conducted: >> 1. various chunk sizes, 4K to 512K. ( mainly in 2.6.27 and 2.6.18 ) >> 2. regrow ( tested on 2.6.27 and 2.6.18 ) >> 3. various super blocks. 0.9 , 1, 1.1 and 1.2 ( mainly in 2.6.27 and 2.6.18 ). >> 4. support assembling and mounting older raid version ( older kernels and code before patch) after it was grown. >> >> patch passed checkpatch.pl . other than reshaping code i beautified the code. >> Currently i about to pass this code to our testing team for further tests. >> Other things to do: >> 1. Speedup the reshape process.It is too slow. >> 2. Support for non power 2^n ( page size) chunks. >> >> I will be thankful for your criticism. > > Probably my main criticism at this point is that there is no > commentary explaining how it works. > You appear to have chosen to run your own reshape thread rather than > providing a "resync" method and make use of the md_do_sync thread > which provides speed limiting etc. > Maybe that it a good decision, but as you haven't explained it, it is > hard to be sure. You are correct , I will move to md resync; online reshape is essential. I just need to understand the entire md resync processes for that. I am going to base raid0 reshape code like raid1's, meaning, have two threads, raid0_resync and raid0d for the writes. Thank you Neil > Also, it seems to if an IO request arrives while the reshape is > happening, then it fails with -EBUSY. > I don't think that is a good thing. > 1/ no filesystem is going to be expecting EBUSY so it could cause > serious problems > 2/ if you aren't going to support online reshape so that a device can > be reshaped while it is in use, then there seems to be little point > in putting this code in the kernel. Just write a program that runs > in userspace which reshapes the array while it is not assembled. > > Also, I cannot see any evidence that you checkpoint the reshape at > all. So if your machine crashes during the reshape, everything is > lost. I do not find this acceptable. > > NeilBrown > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html