[PATCH v2 0/5] makedumpfile: --split: assign fair I/O workloads in appropriate time
Zhou Wenjian
zhouwj-fnst at cn.fujitsu.com
Mon Oct 13 02:34:21 PDT 2014
The issue is discussed at http://lists.infradead.org/pipermail/kexec/2014-March/011289.html
This patch implements the idea of 2-pass algorhythm with smaller memory to manage splitblock table.
Exactly the algorhythm is still 3-pass,but the time of second pass is much shorter.
The tables below show the performence with different size of cyclic-buffer and splitblock.
The test is executed on the machine having 128G memory.
the value is total time (including first pass and second pass).
the value in brackets is the time of second pass.
sec
cyclic-buffer 1 2 4 8 16 32 64
splitblock-size
1M 4.74(0.00) 4.22(0.01) 3.94(0.01) 3.78(0.02) 3.71(0.03) 3.73(0.07) 3.74(0.10)
2M 4.74(0.00) 4.19(0.00) 3.94(0.01) 3.80(0.03) 3.71(0.03) 3.72(0.07) 3.72(0.09)
4M 4.73(0.00) 4.21(0.01) 3.95(0.01) 3.78(0.02) 3.70(0.02) 3.73(0.08) 3.73(0.10)
8M 4.73(0.00) 4.19(0.00) 3.94(0.01) 3.83(0.02) 3.73(0.03) 3.72(0.07) 3.74(0.10)
16M 4.74(0.01) 4.21(0.00) 3.94(0.01) 3.76(0.01) 3.73(0.03) 3.73(0.08) 3.74(0.10)
32M 4.72(0.00) 4.20(0.02) 3.92(0.01) 3.77(0.02) 3.71(0.02) 3.70(0.06) 3.74(0.10)
64M 4.74(0.01) 4.20(0.00) 3.95(0.01) 3.78(0.02) 3.70(0.02) 3.71(0.07) 3.72(0.09)
128M 4.73(0.01) 4.20(0.00) 3.94(0.01) 3.78(0.02) 3.76(0.03) 3.72(0.08) 3.74(0.09)
256M 4.75(0.02) 4.22(0.02) 3.96(0.03) 3.78(0.02) 3.70(0.03) 3.70(0.07) 3.74(0.11)
512M 4.77(0.04) 4.21(0.03) 3.97(0.04) 3.79(0.03) 3.73(0.04) 3.75(0.09) 3.82(0.13)
1G 4.82(0.09) 4.26(0.07) 4.00(0.08) 3.83(0.07) 3.76(0.08) 3.73(0.08) 3.76(0.12)
2G 8.26(3.54) 7.34(3.14) 6.86(2.93) 6.56(2.80) 6.44(2.76) 6.45(2.79) 6.42(2.80)
the performence of 3-pass algorhythm
origin 8.25(3.54) 7.26(3.11) 6.80(2.91) 6.52(2.80) 6.39(2.76) 6.40(2.78) 6.45(2.85)
sec
cyclic-buffer 128 256 512 1024 2048 4096 8192
splitblock-size
1M 3.83(0.21) 3.94(0.33) 4.16(0.54) 4.61(0.99) 7.03(3.41) 8.73(5.11) 8.69(5.08)
2M 3.86(0.21) 3.92(0.32) 4.16(0.54) 4.64(0.98) 7.02(3.41) 8.71(5.09) 8.72(5.09)
4M 3.82(0.21) 3.95(0.32) 4.18(0.55) 4.62(0.99) 7.05(3.44) 8.70(5.09) 8.68(5.07)
8M 3.82(0.21) 3.95(0.33) 4.17(0.54) 4.58(0.97) 7.03(3.41) 8.79(5.16) 8.71(5.09)
16M 3.83(0.21) 3.93(0.31) 4.15(0.54) 4.60(0.98) 7.06(3.43) 8.76(5.13) 8.73(5.10)
32M 3.84(0.22) 3.93(0.32) 4.15(0.54) 4.61(0.98) 7.00(3.40) 8.69(5.08) 8.75(5.13)
64M 3.84(0.21) 3.94(0.33) 4.15(0.54) 4.60(0.98) 7.04(3.42) 8.74(5.10) 8.80(5.16)
128M 3.85(0.22) 3.97(0.33) 4.16(0.54) 4.60(0.98) 7.07(3.44) 8.68(5.07) 8.69(5.07)
256M 3.84(0.21) 3.94(0.33) 4.16(0.55) 4.64(1.00) 7.02(3.41) 8.74(5.11) 8.73(5.11)
512M 3.85(0.24) 3.97(0.34) 4.17(0.56) 4.61(0.99) 7.05(3.44) 8.73(5.11) 8.75(5.13)
1G 3.85(0.22) 3.96(0.35) 4.18(0.56) 4.65(1.00) 7.06(3.44) 8.76(5.12) 8.72(5.11)
2G 6.53(2.91) 6.86(3.25) 7.54(3.92) 8.95(5.31) 10.60(6.97) 14.08(10.47) 14.32(10.60)
the performence of 3-pass algorhythm
origin 6.64(3.05) 6.81(3.24) 7.51(3.93) 8.86(5.30) 10.51(6.94) 13.92(10.36) 14.11(10.55)
v1->v2:
use splitblock instead of block
add restriction (align to the page size) to splitblock size
adjust the position of prepare_splitblock_table and check the return code
use --splitblock-size to specify splitblock size and modify the print_info.c
Zhou Wenjian (5):
Add support for splitblock
Add tools for reading and writing from splitblock table
Add module of generating table
Add module of calculating start_pfn and end_pfn in each dumpfile
Add support for --splitblock-size
makedumpfile.8 | 16 ++++
makedumpfile.c | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
makedumpfile.h | 17 ++++
print_info.c | 16 ++++-
4 files changed, 296 insertions(+), 7 deletions(-)
More information about the kexec
mailing list