Skip to contentSkip to conversation

Rewrite the implementation of iobarrier for raid1.

RFC PATCH New majianpeng 1 participant 1 message Aug 19, 2013 MD RAID

lore
Share & tools
lore

majianpeng

author
#0 lore raw

v2 cover Rewrite the implementation of iobarrier for raid1.

Hi Neil,
I rewrite the implementation of iobarrier for raid1.
Patch1/2 are only to easy implemented for patch3.They don't effect the performance.

Performance Result:
Requirement:
A: sync_speed_max = sync_speed_min = 200000
B: echo repair > sync_action

Without the patch3:
TestA:
fio --rw=read --bs=512k --filename=/dev/md0 --offset=1000199467008 --rate=50M --ratemin=30M --name=test --runtime=600s

Quoted 1 line
Quoted 1 line

READ: io=8861.6MB, aggrb=15123KB/s, minb=15123KB/s, maxb=15123KB/s, mint=600012msec, maxt=600012msec

cat /proc/mdstat

Quoted 1 line
Quoted 1 line

speed=25522K/sec

TestB:
fio --rw=write --bs=512k --filename=/dev/md0 --offset=1000199467008 --rate=50M --name=test --runtime=600s

Quoted 1 line
Quoted 1 line

WRITE: io=1939.6MB, aggrb=3309KB/s, minb=3309KB/s, maxb=3309KB/s, mint=600033msec, maxt=600033msec

cat /proc/mdstat

Quoted 1 line
Quoted 1 line

speed=7732K/sec

With the patch3:
TestA:(Make sure the position of read after resync)
fio --rw=read --bs=512k --filename=/dev/md0 --offset=1000199467008 --rate=50m --name=test

Quoted 1 line
Quoted 1 line

READ: io=12547MB, aggrb=40810KB/s, minb=40810KB/s, maxb=40810KB/s, mint=314815msec, maxt=314815msec

cat /proc/mdstat:

Quoted 1 line
Quoted 1 line

speed=43745K/sec

TestB:(Make sure the position of write after resync)
fio --rw=write --bs=512k --filename=/dev/md0 --offset=1000199467008 --rate=50m --name=test --runtime=600

Quoted 1 line
Quoted 1 line

WRITE: io=30001MB, aggrb=51200KB/s, minb=51200KB/s, maxb=51200KB/s, mint=600001msec, maxt=600001msec

cat /proc/mdstat

Quoted 1 line
Quoted 1 line

speed=26686K/sec

TestC:(Make sure the position of read before resync)
fio --rw=read --bs=512k --filename=/dev/md0 --offset=0 --rate=50m --name=test --runtime=600

Quoted 1 line
Quoted 1 line

READ: io=29725MB, aggrb=50729KB/s, minb=50729KB/s, maxb=50729KB/s, mint=600004msec, maxt=600004msec

cat /proc/mdstat

Quoted 1 line
Quoted 1 line

speed=44839K/sec

TestD:(Make sure the positon of write before resync)
fio --rw=write --bs=512k --filename=/dev/md0 --offset=0 --rate=50m --name=test --runtime=600

Quoted 1 line
Quoted 1 line

WRITE: io=30001MB, aggrb=51200KB/s, minb=51200KB/s, maxb=51200KB/s, mint=600001msec, maxt=600001msec

cat /proc/mdstat

Quoted 1 line
Quoted 1 line

speed=30884K/sec

V1:http://www.spinics.net/lists/raid/msg41710.html

Jianpeng Ma (3):
raid1: Add a filed freeze_array to indicate whether raid in freeze
state.
radi1: Relace raise_barrier/lower_barrrier with
freeze_array/unfreeze_array for reconfigure the array.
raid1: Rewrite the implementation of iobarrier.

 drivers/md/raid1.c | 174 ++++++++++++++++++++++++++++++++++++++++++-----------
 drivers/md/raid1.h |   5 ++
 2 files changed, 145 insertions(+), 34 deletions(-)
Signature · 1 line
1.8.1.2