From: Yu Kuai <yukuai3@xxxxxxxxxx> Due to known performance issues with md-bitmap and the unreasonable implementations like following: - self-managed pages, bitmap_storage->filemap; - self-managed IO submitting like filemap_write_page(); - global spin_lock ... I have decided not to continue optimizing based on the current bitmap implementation, and plan to invent a new lock-less bitmap. And build the bitmap as kernel module is a good way for isolation. However, we still encourage anyone who wants to continue optimizing the current implementation, the new bitmap will take some time to be ready. Yu Kuai (13): md/md-bitmap: remove the parameter 'init' for bitmap_ops->resize() md/md-bitmap: merge md_bitmap_group into bitmap_operations md/md-bitmap: add md_bitmap_registered/enabled() helper md/md-bitmap: handle the case bitmap is not enabled before start_sync() md/md-bitmap: handle the case bitmap is not enabled before end_sync() md/dm-raid: check if bitmap is registered in raid_ctr() md/raid1: check bitmap before behind write md/raid1: check before deferencing mddev->bitmap_ops md/raid10: check before deferencing mddev->bitmap_ops md/raid5: check before deferencing mddev->bitmap_ops md: check before deferencing mddev->bitmap_ops md: export some helpers md/md-bitmap: support to build md-bitmap as kernel module drivers/md/Kconfig | 18 ++++ drivers/md/Makefile | 4 +- drivers/md/dm-raid.c | 5 +- drivers/md/md-bitmap.c | 72 ++++++++-------- drivers/md/md-bitmap.h | 54 +++++++++++- drivers/md/md-cluster.c | 2 +- drivers/md/md.c | 183 +++++++++++++++++++++++++++++++--------- drivers/md/md.h | 12 ++- drivers/md/raid1-10.c | 2 +- drivers/md/raid1.c | 79 ++++++++++------- drivers/md/raid10.c | 48 +++++------ drivers/md/raid5.c | 30 ++++--- 12 files changed, 352 insertions(+), 157 deletions(-) -- 2.39.2