[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/2] migration: Store ram size value
From: |
Juan Quintela |
Subject: |
[PATCH 0/2] migration: Store ram size value |
Date: |
Wed, 11 May 2022 01:17:06 +0200 |
Hi
Current migration code recalculates the amount of RAM each time that
is needed. This calculation requires RCU and other operations.
During migration we disable hot/unplug of memory, so we can store it.
Notice the times difference, and specially that ram_bytes_total()
don't appears anymore in the perf output.
total time: 75852 ms
downtime: 264 ms
setup: 273 ms
transferred ram: 19671939 kbytes
throughput: 2132.28 mbps
remaining ram: 0 kbytes
total ram: 1077936904 kbytes
duplicate: 265170289 pages
skipped: 0 pages
normal: 4316628 pages
normal bytes: 17266512 kbytes
dirty sync count: 4
page size: 4 kbytes
multifd bytes: 17341329 kbytes
pages-per-second: 1236658
precopy ram: 2330608 kbytes
downtime ram: 1 kbytes
37.97% live_migration qemu-system-x86_64 [.] buffer_zero_avx512
10.42% live_migration qemu-system-x86_64 [.]
ram_find_and_save_block.part.0
6.67% live_migration qemu-system-x86_64 [.] add_to_iovec
3.71% live_migration qemu-system-x86_64 [.] ram_bytes_total_common
2.79% live_migration qemu-system-x86_64 [.] qemu_ram_is_migratable
2.69% live_migration qemu-system-x86_64 [.] qemu_put_byte.part.0
2.41% live_migration qemu-system-x86_64 [.]
bitmap_test_and_clear_atomic
1.55% live_migration qemu-system-x86_64 [.] qemu_put_be32
1.26% live_migration qemu-system-x86_64 [.] find_next_bit
1.07% multifdsend_0 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.07% multifdsend_13 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.06% multifdsend_6 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.05% multifdsend_2 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.04% multifdsend_15 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.03% multifdsend_12 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.02% live_migration qemu-system-x86_64 [.] migrate_ignore_shared
1.01% multifdsend_7 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.01% multifdsend_3 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
1.01% multifdsend_10 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.98% live_migration qemu-system-x86_64 [.] ram_save_iterate
0.96% multifdsend_4 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.93% multifdsend_8 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.92% multifdsend_5 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.90% multifdsend_14 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.88% multifdsend_9 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.85% multifdsend_1 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.83% multifdsend_11 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.61% live_migration qemu-system-x86_64 [.]
save_zero_page_to_file.part.0
0.48% live_migration [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
Migration status: completed
total time: 70033 ms
downtime: 279 ms
setup: 280 ms
transferred ram: 19692747 kbytes
throughput: 2312.82 mbps
remaining ram: 0 kbytes
total ram: 1077936904 kbytes
duplicate: 265164421 pages
skipped: 0 pages
normal: 4322415 pages
normal bytes: 17289660 kbytes
dirty sync count: 3
page size: 4 kbytes
multifd bytes: 17362190 kbytes
pages-per-second: 2523447
precopy ram: 2330555 kbytes
downtime ram: 1 kbytes
43.64% live_migration qemu-system-x86_64 [.] buffer_zero_avx512
11.32% live_migration qemu-system-x86_64 [.]
ram_find_and_save_block.part.0
7.60% live_migration qemu-system-x86_64 [.] add_to_iovec
2.95% live_migration qemu-system-x86_64 [.] qemu_put_byte.part.0
2.73% live_migration qemu-system-x86_64 [.]
bitmap_test_and_clear_atomic
1.76% live_migration qemu-system-x86_64 [.] qemu_put_be32
1.44% live_migration qemu-system-x86_64 [.] find_next_bit
0.84% multifdsend_1 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.84% multifdsend_7 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.81% multifdsend_15 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.80% multifdsend_4 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.80% multifdsend_3 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.79% multifdsend_12 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.79% multifdsend_14 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.79% multifdsend_11 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.78% multifdsend_13 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.78% live_migration qemu-system-x86_64 [.] ram_save_iterate
0.77% multifdsend_9 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.77% multifdsend_5 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.77% multifdsend_10 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.77% multifdsend_2 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.77% multifdsend_6 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.76% multifdsend_8 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.71% multifdsend_0 [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.66% live_migration qemu-system-x86_64 [.]
save_zero_page_to_file.part.0
0.62% live_migration qemu-system-x86_64 [.] qemu_ram_is_migratable
0.54% live_migration [kernel.kallsyms] [k]
copy_user_enhanced_fast_string
0.51% live_migration qemu-system-x86_64 [.] qemu_put_byte
Please, review.
Thanks, Juan.
Juan Quintela (2):
migration: Split ram_bytes_total_common() in two functions
migration: Calculate ram size once
migration/ram.c | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
--
2.35.1
- [PATCH 0/2] migration: Store ram size value,
Juan Quintela <=