[PATCH v2 0/9] raid1 io serialization

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

 



From: Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx>

Major changes:

1. rename 0002 patch and change the patch header accordingly.
2. show "n/a" for non raid1 in serialize_policy_show in 0003.
3. 0004 patch is introduced to make two scenarios (both of them could
   enable serialization) can coexists.
4. use generical rb interval tree and introduce struct serial_in_rdev
   in 0007.

----------------------------------- v1 --------------------------------------
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 (9):
  md: rename wb stuffs
  md: prepare for enable raid1 io serialization
  md: add serialize_policy sysfs node for raid1
  md: reorgnize mddev_create/destroy_serial_pool
  raid1: serialize the overlap write
  md: don't destroy serial_info_pool if serialize_policy is true
  md: introduce a new struct 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        | 249 ++++++++++++++++++++++++++++++++---------
 drivers/md/md.h        |  45 +++++---
 drivers/md/raid1.c     | 111 +++++++++---------
 4 files changed, 295 insertions(+), 130 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