[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 0/5] Add ignore-external migration capability
From: |
Yury Kotov |
Subject: |
[Qemu-devel] [PATCH v3 0/5] Add ignore-external migration capability |
Date: |
Fri, 15 Feb 2019 20:45:43 +0300 |
Hi,
The series adds a migration capability, which allows to skip shared RAM blocks
during the migration. It's useful for fast local migration. E.g. to update QEMU
for the running guests.
Usage example:
1. Start source VM:
qemu-system-x86 \
-m 4G \
-object
memory-backend-file,id=mem0,size=4G,share=on,mem-path=/dev/shm/mem0 \
-numa node,memdev=mem0 \
-qmp unix:/tmp/qemu-qmp-1.sock,server,nowait \
2. Start target VM:
qemu-system-x86 \
-m 4G \
-object
memory-backend-file,id=mem0,size=4G,share=on,mem-path=/dev/shm/mem0 \
-numa node,memdev=mem0 \
-qmp unix:/tmp/qemu-qmp-2.sock,server,nowait \
-incoming defer
3. Enable ignore-shared capability on both VMs:
{ "execute": "migrate-set-capabilities" , "arguments":
{ "capabilities": [ { "capability": "x-ignore-shared", "state": true } ] }
}
4. Start migration.
Another use case I keep in mind is to migrate to file. Usage is very similar.
V2 to V3:
* Split "migration: Introduce ignore-shared capability"
* Serialize the capabilities as strings rather than as indexes
* Don't allow to enable postcopy and ignore-shared together
* Skip the test for OSs which don't have /dev/shm
* Add a check whether shared RAM has been really skipped
V1 to V2:
* Keep migration stream compatibility
* Reuse the existing code to ignore unwanted RAMBlocks
* Add capability validation feature
* ignore-external -> ignore-shared
Regards,
Yury
Yury Kotov (5):
exec: Change RAMBlockIterFunc definition
migration: Introduce ignore-shared capability
migration: Add an ability to ignore shared RAM blocks
tests/migration-test: Add a test for ignore-shared capability
migration: Add capabilities validation
exec.c | 38 +++++------
include/exec/cpu-common.h | 7 +-
migration/migration.c | 14 ++++
migration/migration.h | 5 +-
migration/postcopy-ram.c | 48 +++++++------
migration/ram.c | 110 ++++++++++++++++++++++--------
migration/rdma.c | 9 ++-
migration/savevm.c | 137 ++++++++++++++++++++++++++++++++++++++
qapi/migration.json | 5 +-
stubs/ram-block.c | 15 +++++
tests/migration-test.c | 131 +++++++++++++++++++++++++++++-------
util/vfio-helpers.c | 6 +-
12 files changed, 420 insertions(+), 105 deletions(-)
--
2.20.1
- [Qemu-devel] [PATCH v3 0/5] Add ignore-external migration capability,
Yury Kotov <=
- [Qemu-devel] [PATCH v3 2/5] migration: Introduce ignore-shared capability, Yury Kotov, 2019/02/15
- [Qemu-devel] [PATCH v3 4/5] tests/migration-test: Add a test for ignore-shared capability, Yury Kotov, 2019/02/15
- [Qemu-devel] [PATCH v3 5/5] migration: Add capabilities validation, Yury Kotov, 2019/02/15
- [Qemu-devel] [PATCH v3 1/5] exec: Change RAMBlockIterFunc definition, Yury Kotov, 2019/02/15
- [Qemu-devel] [PATCH v3 3/5] migration: Add an ability to ignore shared RAM blocks, Yury Kotov, 2019/02/15