On Thu, Mar 21, 2013 at 02:42:23PM +0100, 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:

On Linux you should be able to use clone(2) to spawn a thread with
copy-on-write memory.  Too bad it's not portable because it gets around
the messy fork issues.

Stefan

Reply via email to