qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] qmp interface for save vmstate to image


From: Pavel Hrdina
Subject: Re: [Qemu-devel] [RFC] qmp interface for save vmstate to image
Date: Thu, 21 Mar 2013 14:53:02 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4

On 03/21/2013 02:42 PM, Paolo Bonzini wrote:
Il 21/03/2013 14:38, Stefan Hajnoczi ha scritto:
There already is a guest RAM cloning mechanism: fork the QEMU process.
Then you have a copy-on-write guest RAM.

In a little more detail:

1. save non-RAM device state
2. quiesce QEMU to a state that is safe for forking
3. create an EventNotifier for live savevm completion signal
4. fork and pass completion EventNotifier to child
5. parent continues running VM
6. child performs vmsave of copy-on-write guest RAM
7. child signals completion EventNotifier and terminates
8. parent raises live savevm completion QMP event

Forking a threaded program is not so easy, but it could be done if the
child is very simple and only uses syscalls to communicate back with the
parent:

1. save non-RAM device state
2. quiesce QEMU to a state that is safe for forking
3. create a memory map and a pipe
4. fork and pass the write end of the pipe to the child
5. parent continues running VM
6. child reads the memory map and writes data to the pipe
7. parent copies data from the pipe to the migration stream
8. child exits, parent raises live savevm completion QMP event

Paolo


As I just wrote to Stefan, I've already heard the fork idea.
I was trying to do it without forking the QEMU, but it will need support from KVM and it could be harder to do instead of forking the QEMU.

I'll start working on this.

Thanks Paolo

Pavel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]