qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 02/18] savevm: export qemu_save_device_state()


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 02/18] savevm: export qemu_save_device_state()
Date: Wed, 21 Aug 2013 13:13:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8

Il 21/08/2013 09:18, Lei Li ha scritto:
> Export qemu_save_device_state() for localhost migration.
> 
> Signed-off-by: Lei Li <address@hidden>
> ---
>  include/sysemu/sysemu.h |    1 +
>  savevm.c                |    7 ++++++-
>  2 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
> index d7a77b6..f1f15f4 100644
> --- a/include/sysemu/sysemu.h
> +++ b/include/sysemu/sysemu.h
> @@ -80,6 +80,7 @@ int qemu_savevm_state_iterate(QEMUFile *f);
>  void qemu_savevm_state_complete(QEMUFile *f);
>  void qemu_savevm_state_cancel(void);
>  uint64_t qemu_savevm_state_pending(QEMUFile *f, uint64_t max_size);
> +int qemu_save_device_state(QEMUFile *f);
>  int qemu_loadvm_state(QEMUFile *f);
>  
>  /* SLIRP */
> diff --git a/savevm.c b/savevm.c
> index 03fc4d9..f89e979 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -2049,7 +2049,12 @@ static int qemu_savevm_state(QEMUFile *f)
>      return ret;
>  }
>  
> -static int qemu_save_device_state(QEMUFile *f)
> +/**
> + * Save all of the device states to stream QEMUFile
> + *
> + * Return negative if there has been an error
> + **/
> +int qemu_save_device_state(QEMUFile *f)
>  {
>      SaveStateEntry *se;
>  
> 

This should also not be needed.  Device state will be sent on the Unix
socket, while page data will be sent on the pipe.

I suggest you start from scratch.  Do a simple RFC series that does
normal live migration with dirty bitmap, but uses a side channel (pipe
passed via SCM_RIGHTS) for RAM.  This will ensure you get the hooks right.

Then you have two things to work on: (1) make the capability enforce
non-live migration, probably by adding another RunState and adding it to
runstate_needs_reset; (2) improve the hooks to use vmsplice.

Paolo



reply via email to

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