[RFC PATCH 0/3 V2] Rewrite the implementation of iobarrier for raid1.

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

 



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
>>READ: io=8861.6MB, aggrb=15123KB/s, minb=15123KB/s, maxb=15123KB/s, mint=600012msec, maxt=600012msec
cat /proc/mdstat
>>speed=25522K/sec

TestB:
fio --rw=write --bs=512k --filename=/dev/md0 --offset=1000199467008 --rate=50M --name=test --runtime=600s
>>WRITE: io=1939.6MB, aggrb=3309KB/s, minb=3309KB/s, maxb=3309KB/s, mint=600033msec, maxt=600033msec
cat /proc/mdstat
>>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 
>>READ: io=12547MB, aggrb=40810KB/s, minb=40810KB/s, maxb=40810KB/s, mint=314815msec, maxt=314815msec
cat /proc/mdstat:
>>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
>>WRITE: io=30001MB, aggrb=51200KB/s, minb=51200KB/s, maxb=51200KB/s, mint=600001msec, maxt=600001msec
cat /proc/mdstat
>>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
>>READ: io=29725MB, aggrb=50729KB/s, minb=50729KB/s, maxb=50729KB/s, mint=600004msec, maxt=600004msec
cat /proc/mdstat
>>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
>> WRITE: io=30001MB, aggrb=51200KB/s, minb=51200KB/s, maxb=51200KB/s, mint=600001msec, maxt=600001msec
cat /proc/mdstat
>>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(-)

-- 
1.8.1.2
ÿôèº{.nÇ+?·?®?­?+%?Ëÿ±éݶ¥?wÿº{.nÇ+?·¥?{±þ¶¢wø§¶?¡Ü¨}©?²Æ zÚ&j:+v?¨þø¯ù®w¥þ?à2?Þ?¨è­Ú&¢)ß¡«a¶Úÿÿûàz¿äz¹Þ?ú+?ù???Ý¢jÿ?wèþf





[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