[PATCH 0/8] raid1 io serialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx>

Hi,

If asynchronous write io happened in raid1 array, data could be inconsistent
among member devices though usually people would think the data should always
be the same in each devices for raid1.

And since we had addressed data inconsistency issue for write behind device
if it is a multiqueue device, then it is possible and straightforward to extend
the same mechanism to address similar issue.

with this patchset, we can enable io serialization for write. Of course, the
performance is not better than before, it could drop around 10% during my
tests.

Patch 1 just renames all the write-behind stuffs, no function change.
Patch 2 adds is_force parameter to mddev_create/destroy_serial_pool.
Patch 3 serialize_policy sysfs node is added to enable/disable serialization.
Patch 4 serializes the overlap write.
Patch 5 makes serial_info_pool still available if serialize_policy is true.
Patch 6 replaces list with rb tree for performance reason.
Patch 7 uses bucket based mechanism to improve performance further.
Patch 8 reorgnizes code.

Thanks,
Guoqing

Guoqing Jiang (8):
  md: rename wb stuffs
  md: add is_force parameter for some funcs
  md: add serialize_policy sysfs node for raid1
  raid1: serialize the overlap write
  md: don't destroy serial_info_pool if serialize_policy is true
  md: switch from list to rb tree for IO serialization
  md/raid1: use bucket based mechanism for IO serialization
  md/raid1: introduce wait_for_serialization

 drivers/md/md-bitmap.c |  20 ++--
 drivers/md/md.c        | 226 +++++++++++++++++++++++++++++++++--------
 drivers/md/md.h        |  34 ++++---
 drivers/md/raid1.c     | 210 ++++++++++++++++++++++++++++----------
 4 files changed, 369 insertions(+), 121 deletions(-)

-- 
2.17.1




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux