[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v3 3/3] migration: reduce time of loading non-iterable vmstate
From: |
Chuang Xu |
Subject: |
[RFC v3 3/3] migration: reduce time of loading non-iterable vmstate |
Date: |
Tue, 13 Dec 2022 21:35:10 +0800 |
The duration of loading non-iterable vmstate accounts for a significant
portion of downtime (starting with the timestamp of source qemu stop and
ending with the timestamp of target qemu start). Most of the time is spent
committing memory region changes repeatedly.
This patch packs all the changes to memory region during the period of
loading non-iterable vmstate in a single memory transaction. With the
increase of devices, this patch will greatly improve the performance.
Here are the test results:
test vm info:
- 32 CPUs 128GB RAM
- 8 16-queue vhost-net device
- 16 4-queue vhost-user-blk device.
time of loading non-iterable vmstate
before about 210 ms
after about 40 ms
Signed-off-by: Chuang Xu <xuchuangxclwt@bytedance.com>
---
migration/savevm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/migration/savevm.c b/migration/savevm.c
index a0cdb714f7..19785e5a54 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2617,6 +2617,9 @@ int qemu_loadvm_state_main(QEMUFile *f,
MigrationIncomingState *mis)
uint8_t section_type;
int ret = 0;
+ /* call memory_region_transaction_begin() before loading vmstate */
+ memory_region_transaction_begin();
+
retry:
while (true) {
section_type = qemu_get_byte(f);
@@ -2684,6 +2687,10 @@ out:
goto retry;
}
}
+
+ /* call memory_region_transaction_commit() after loading vmstate */
+ memory_region_transaction_commit();
+
return ret;
}
--
2.20.1
- Re: [RFC v3 1/3] memory: add depth assert in address_space_to_flatview, (continued)
Re: [RFC v3 1/3] memory: add depth assert in address_space_to_flatview, Peter Maydell, 2022/12/15
[RFC v3 2/3] virtio: support delay of checks in virtio_load(), Chuang Xu, 2022/12/13
[RFC v3 3/3] migration: reduce time of loading non-iterable vmstate,
Chuang Xu <=
Re: [RFC v3 0/3] migration: reduce time of loading non-iterable vmstate, Peter Xu, 2022/12/16