[PATCH v3 00/10] makedumpfile: parallel processing
"Zhou, Wenjian/周文剑"
zhouwj-fnst at cn.fujitsu.com
Tue Jul 21 00:10:30 PDT 2015
Hello Kumagai,
The PATCH v3 has improved the performance.
The performance degradation in PATCH v2 mainly caused by the page_fault
produced by the function compress2().
I wrote some codes to test the performance of compress2. It almost costs
the same time and produces the same amount of page_fault as executing compress2
in thread.
To reduce page_faults, I have to do the following in kdump_thread_function_cyclic().
+ /*
+ * lock memory to reduce page_faults by compress2()
+ */
+ void *temp = malloc(1);
+ memset(temp, 0, 1);
+ mlockall(MCL_CURRENT);
+ free(temp);
+
With this, using a thread or not almost has the same performance.
In our machine, I can get the same result as the following with PATCH v2.
> Test2-1:
> | threads | compress time | exec time |
> | 1 | 76.12 | 82.13 |
>
> Test2-2:
> | threads | compress time | exec time |
> | 1 | 41.97 | 51.46 |
I test the new patch set in the machine, and below is the results.
PATCH V2:
###################################
- System: PRIMEQUEST 1800E
- CPU: Intel(R) Xeon(R) CPU E7540
- memory: 32GB
###################################
************ makedumpfile -d 0 ******************
core-data 0 256 512 768 1024 1280 1536 1792
threads-num
-c
0 158 1505 2119 2129 1707 1483 1440 1273
4 207 589 672 673 636 564 536 514
8 176 327 377 387 367 336 314 291
12 191 272 295 306 288 259 257 240
************ makedumpfile -d 7 ******************
core-data 0 256 512 768 1024 1280 1536 1792
threads-num
-c
0 154 1508 2089 2133 1792 1660 1462 1312
4 203 594 684 701 627 592 535 503
8 172 326 377 393 366 334 313 286
12 182 273 295 308 283 258 249 237
PATCH v3:
###################################
- System: PRIMEQUEST 1800E
- CPU: Intel(R) Xeon(R) CPU E7540
- memory: 32GB
###################################
************ makedumpfile -d 0 ******************
core-data 0 256 512 768 1024 1280 1536 1792
threads-num
-c
0 192 1488 1830
4 62 393 477
8 78 211 258
************ makedumpfile -d 7 ******************
core-data 0 256 512 768 1024 1280 1536 1792
threads-num
-c
0 197 1475 1815
4 62 396 482
8 78 209 252
--
Thanks
Zhou Wenjian
On 07/21/2015 02:29 PM, Zhou Wenjian wrote:
> This patch set implements parallel processing by means of multiple threads.
> With this patch set, it is available to use multiple threads to read
> and compress pages. This parallel process will save time.
> This feature only supports creating dumpfile in kdump-compressed format from
> vmcore in kdump-compressed format or elf format. Currently, sadump and
> xen kdump are not supported.
>
> Qiao Nuohan (10):
> Add readpage_kdump_compressed_parallel
> Add mappage_elf_parallel
> Add readpage_elf_parallel
> Add read_pfn_parallel
> Add function to initial bitmap for parallel use
> Add filter_data_buffer_parallel
> Add write_kdump_pages_parallel to allow parallel process
> Initial and free data used for parallel process
> Make makedumpfile available to read and compress pages parallelly
> Add usage and manual about multiple threads process
>
> Makefile | 2 +
> erase_info.c | 29 ++-
> erase_info.h | 2 +
> makedumpfile.8 | 24 ++
> makedumpfile.c | 1095 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> makedumpfile.h | 80 ++++
> print_info.c | 16 +
> 7 files changed, 1245 insertions(+), 3 deletions(-)
>
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list