On 9/9/25 11:13 AM, Yu Kuai wrote: > Hi, Jens > > Redundant data is used to enhance data fault tolerance, and the storage > method for redundant data vary depending on the RAID levels. And it's > important to maintain the consistency of redundant data. > > Bitmap is used to record which data blocks have been synchronized and which > ones need to be resynchronized or recovered. Each bit in the bitmap > represents a segment of data in the array. When a bit is set, it indicates > that the multiple redundant copies of that data segment may not be > consistent. Data synchronization can be performed based on the bitmap after > power failure or readding a disk. If there is no bitmap, a full disk > synchronization is required. > > Due to known performance issues with md-bitmap and the unreasonable > implementations: > > - self-managed IO submitting like filemap_write_page(); > - global spin_lock > - ... > > I have decided not to continue optimizing based on the current bitmap > implementation, this new bitmap is invented without locking from IO fast > path and can be used with fast disks. > > Key features for the new bitmap: > - IO fastpath is lockless, if user issues lots of write IO to the same > bitmap bit in a short time, only the first write has additional > overhead to update bitmap bit, no additional overhead for the following > writes; > - support only resync or recover written data, means in the case creating > new array or replacing with a new disk, there is no need to do a full > disk resync/recovery; Much better! Though I suspect you forgot to add more where you have the "..." above, I just removed it. Pulled, thanks. -- Jens Axboe