[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability |
Date: |
Thu, 10 Jan 2019 20:11:24 +0000 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
* Yury Kotov (address@hidden) wrote:
> Hi,
>
> The series adds migration capability which allows to skip 'external' RAM
> blocks
> during migration. External block is a RAMBlock which available from the
> outside
> of current QEMU process (e.g. file in /dev/shm). It's useful for fast local
> migration to update QEMU for the running guests.
Hi Yury,
There have been a few similar patch series around from people wanting
to do similar things.
In particular Lai Jiangshan's
https://lists.nongnu.org/archive/html/qemu-devel/2018-03/msg07511.html
and Cédric Le Goater wanted to skip regions for a different reason.
We merged some of Cédric's code last year so that we now
have the qemu_ram_is_migratable() function - and we should be reusing
that to skip things rather than adding a new check that we have to add
everywhere.
Also, ypu're skipping 'external' things, I think the other suggestion
was to skip 'shared' things (i.e. anything with share=0); skipping
share=on cases sounds easier to me.
Dave
> Patches:
> 1. Add offset validation to make sure that external RAM block has the same
> physical offset on target side,
> 2. Add RAM_EXTERNAL flag to determine external RAM blocks,
> 3. Add ignore-external migration capability,
> 4. Add a test.
>
> 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-external capability on both VMs:
> { "execute": "migrate-set-capabilities" , "arguments":
> { "capabilities": [ { "capability": "x-ignore-external", "state": true }
> ] } }
>
> 4. Start migration.
>
> Regards,
> Yury
>
> Yury Kotov (4):
> migration: add RAMBlock's offset validation
> exec: add RAM_EXTERNAL flag to mark non-QEMU allocated blocks
> migration: introduce ignore-external capability
> tests/migration-test: Add a test for ignore-external capability
>
> backends/hostmem-file.c | 3 +-
> exec.c | 7 ++-
> include/exec/cpu-common.h | 1 +
> include/exec/memory.h | 3 ++
> migration/migration.c | 9 ++++
> migration/migration.h | 1 +
> migration/ram.c | 52 ++++++++++++++++--
> numa.c | 4 +-
> qapi/migration.json | 6 ++-
> tests/migration-test.c | 109 +++++++++++++++++++++++++++++++-------
> 10 files changed, 165 insertions(+), 30 deletions(-)
>
> --
> 2.20.1
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- Re: [Qemu-devel] [PATCH 2/4] exec: add RAM_EXTERNAL flag to mark non-QEMU allocated blocks, (continued)
[Qemu-devel] [PATCH 3/4] migration: introduce ignore-external capability, Yury Kotov, 2019/01/10
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability,
Dr. David Alan Gilbert <=
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability, Eduardo Habkost, 2019/01/11
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability, Yury Kotov, 2019/01/14
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability, no-reply, 2019/01/13
Re: [Qemu-devel] [PATCH 0/4] Add ignore-external migration capability, no-reply, 2019/01/13