qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 06/11] migration: Commands are only used inside


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH 06/11] migration: Commands are only used inside migration.c
Date: Mon, 12 Jun 2017 13:34:27 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0

On 01/06/2017 23:29, Juan Quintela wrote:
> So, move them there.  Notice that we export functions that send
> commands, not the command themselves.
> 
> Signed-off-by: Juan Quintela <address@hidden>

Reviewed-by: Laurent Vivier <address@hidden>

> ---
>  include/migration/migration.h | 15 --------------
>  migration/migration.c         | 46 
> +++++++++++++++++++++++++++----------------
>  2 files changed, 29 insertions(+), 32 deletions(-)
> 
> diff --git a/include/migration/migration.h b/include/migration/migration.h
> index dd52d3c..108212c 100644
> --- a/include/migration/migration.h
> +++ b/include/migration/migration.h
> @@ -22,18 +22,6 @@
>  #include "exec/cpu-common.h"
>  #include "qemu/coroutine_int.h"
>  
> -/* Messages sent on the return path from destination to source */
> -enum mig_rp_message_type {
> -    MIG_RP_MSG_INVALID = 0,  /* Must be 0 */
> -    MIG_RP_MSG_SHUT,         /* sibling will not send any more RP messages */
> -    MIG_RP_MSG_PONG,         /* Response to a PING; data (seq: be32 ) */
> -
> -    MIG_RP_MSG_REQ_PAGES_ID, /* data (start: be64, len: be32, id: string) */
> -    MIG_RP_MSG_REQ_PAGES,    /* data (start: be64, len: be32) */
> -
> -    MIG_RP_MSG_MAX
> -};
> -
>  /* State for the incoming migration */
>  struct MigrationIncomingState {
>      QEMUFile *from_src_file;
> @@ -176,9 +164,6 @@ int migrate_decompress_threads(void);
>  bool migrate_use_events(void);
>  
>  /* Sending on the return path - generic and then for each message type */
> -void migrate_send_rp_message(MigrationIncomingState *mis,
> -                             enum mig_rp_message_type message_type,
> -                             uint16_t len, void *data);
>  void migrate_send_rp_shut(MigrationIncomingState *mis,
>                            uint32_t value);
>  void migrate_send_rp_pong(MigrationIncomingState *mis,
> diff --git a/migration/migration.c b/migration/migration.c
> index 48c94c9..603d39d 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -86,6 +86,18 @@ static NotifierList migration_state_notifiers =
>  
>  static bool deferred_incoming;
>  
> +/* Messages sent on the return path from destination to source */
> +enum mig_rp_message_type {
> +    MIG_RP_MSG_INVALID = 0,  /* Must be 0 */
> +    MIG_RP_MSG_SHUT,         /* sibling will not send any more RP messages */
> +    MIG_RP_MSG_PONG,         /* Response to a PING; data (seq: be32 ) */
> +
> +    MIG_RP_MSG_REQ_PAGES_ID, /* data (start: be64, len: be32, id: string) */
> +    MIG_RP_MSG_REQ_PAGES,    /* data (start: be64, len: be32) */
> +
> +    MIG_RP_MSG_MAX
> +};
> +
>  /* When we add fault tolerance, we could have several
>     migrations at once.  For now we don't need to add
>     dynamic creation of migration */
> @@ -292,6 +304,23 @@ static void deferred_incoming_migration(Error **errp)
>      deferred_incoming = true;
>  }
>  
> +/*
> + * Send a message on the return channel back to the source
> + * of the migration.
> + */
> +static void migrate_send_rp_message(MigrationIncomingState *mis,
> +                                    enum mig_rp_message_type message_type,
> +                                    uint16_t len, void *data)
> +{
> +    trace_migrate_send_rp_message((int)message_type, len);
> +    qemu_mutex_lock(&mis->rp_mutex);
> +    qemu_put_be16(mis->to_src_file, (unsigned int)message_type);
> +    qemu_put_be16(mis->to_src_file, len);
> +    qemu_put_buffer(mis->to_src_file, data, len);
> +    qemu_fflush(mis->to_src_file);
> +    qemu_mutex_unlock(&mis->rp_mutex);
> +}
> +
>  /* Request a range of pages from the source VM at the given
>   * start address.
>   *   rbname: Name of the RAMBlock to request the page in, if NULL it's the 
> same
> @@ -462,23 +491,6 @@ void migration_fd_process_incoming(QEMUFile *f)
>  }
>  
>  /*
> - * Send a message on the return channel back to the source
> - * of the migration.
> - */
> -void migrate_send_rp_message(MigrationIncomingState *mis,
> -                             enum mig_rp_message_type message_type,
> -                             uint16_t len, void *data)
> -{
> -    trace_migrate_send_rp_message((int)message_type, len);
> -    qemu_mutex_lock(&mis->rp_mutex);
> -    qemu_put_be16(mis->to_src_file, (unsigned int)message_type);
> -    qemu_put_be16(mis->to_src_file, len);
> -    qemu_put_buffer(mis->to_src_file, data, len);
> -    qemu_fflush(mis->to_src_file);
> -    qemu_mutex_unlock(&mis->rp_mutex);
> -}
> -
> -/*
>   * Send a 'SHUT' message on the return channel with the given value
>   * to indicate that we've finished with the RP.  Non-0 value indicates
>   * error.
> 




reply via email to

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