Il 21/08/2013 09:18, Lei Li ha scritto:
> Export RAM_SAVE_xxx flags for localhost migration.
> 
> Signed-off-by: Lei Li <li...@linux.vnet.ibm.com>
> ---
>  arch_init.c                   |   12 ------------
>  include/migration/migration.h |   14 ++++++++++++++
>  2 files changed, 14 insertions(+), 12 deletions(-)
> 
> diff --git a/arch_init.c b/arch_init.c
> index 68a7ab7..1ea7c29 100644
> --- a/arch_init.c
> +++ b/arch_init.c
> @@ -108,18 +108,6 @@ static bool mig_throttle_on;
>  static int dirty_rate_high_cnt;
>  static void check_guest_throttling(void);
>  
> -/***********************************************************/
> -/* ram save/restore */
> -
> -#define RAM_SAVE_FLAG_FULL     0x01 /* Obsolete, not used anymore */
> -#define RAM_SAVE_FLAG_COMPRESS 0x02
> -#define RAM_SAVE_FLAG_MEM_SIZE 0x04
> -#define RAM_SAVE_FLAG_PAGE     0x08
> -#define RAM_SAVE_FLAG_EOS      0x10
> -#define RAM_SAVE_FLAG_CONTINUE 0x20
> -#define RAM_SAVE_FLAG_XBZRLE   0x40
> -/* 0x80 is reserved in migration.h start with 0x100 next */
> -
>  
>  static struct defconfig_file {
>      const char *filename;
> diff --git a/include/migration/migration.h b/include/migration/migration.h
> index 6a24e65..5336117 100644
> --- a/include/migration/migration.h
> +++ b/include/migration/migration.h
> @@ -158,12 +158,26 @@ void ram_control_before_iterate(QEMUFile *f, uint64_t 
> flags);
>  void ram_control_after_iterate(QEMUFile *f, uint64_t flags);
>  void ram_control_load_hook(QEMUFile *f, uint64_t flags);
>  
> +
> +/***********************************************************/
> +/* ram save/restore */
> +
> +#define RAM_SAVE_FLAG_FULL     0x01 /* Obsolete, not used anymore */
> +#define RAM_SAVE_FLAG_COMPRESS 0x02
> +#define RAM_SAVE_FLAG_MEM_SIZE 0x04
> +#define RAM_SAVE_FLAG_PAGE     0x08
> +#define RAM_SAVE_FLAG_EOS      0x10
> +#define RAM_SAVE_FLAG_CONTINUE 0x20
> +#define RAM_SAVE_FLAG_XBZRLE   0x40
> +
>  /* Whenever this is found in the data stream, the flags
>   * will be passed to ram_control_load_hook in the incoming-migration
>   * side. This lets before_ram_iterate/after_ram_iterate add
>   * transport-specific sections to the RAM migration data.
>   */
>  #define RAM_SAVE_FLAG_HOOK     0x80
> +/* Start with 0x100 next */
> +
>  
>  #define RAM_SAVE_CONTROL_NOT_SUPP -1000
>  #define RAM_SAVE_CONTROL_DELAYED  -2000
> 

This also looks like an encapsulation violation.

Localhost migration is not very different in concept from RDMA (except
that it runs with the VM stopped, but that's just because you do
MADV_DONTNEED---it's not specific to the migration transport), and it
manages to do everything without touching arch_init.c and migration.c.

Paolo

Reply via email to