On 3/1/2023 12:41 PM, Logan Gunthorpe wrote: > Hi, > > This is the next iteration of the patchset to add a zeroing option > which bypasses the inital sync for arrays. This version of the patch > has some minor cleanup and collected a number of review and ack tags. > > This patch set adds the --write-zeroes option which will imply > --assume-clean and write zeros to the data region in each disk before > starting the array. This can take some time so each disk is done in > parallel in its own fork. To make the forking code easier to > understand this patch set also starts with some cleanup of the > existing Create code. > > We tested write-zeroes requests on a number of modern nvme drives of > various manufacturers and found most are not as optimized as the > discard path. A couple drives that were tested did not support > write-zeroes at all but still performed similarly with the kernel > falling back to writing zero pages. Typically we see it take on the > order of one minute per 100GB of data zeroed. > > One reason write-zeroes is slower than discard is that today's NVMe > devices only allow about 2MB to be zeroed in one command where as > the entire drive can typically be discarded in one command. Partly, > this is a limitation of the spec as there are only 16 bits avalaible 's/avalaible/available/g' > in the write-zeros command size but drives still don't max this out. > Hopefully, in the future this will all be optimized a bit more > and this work will be able to take advantage of that. > > Logan > > -- > > Based on earlier discussion and feedback from Martin this whole series looks good to me. Reviewed-by: Chaitanya Kulkarni <kch@xxxxxxxxxx> -ck