[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH COLO-Frame v11 09/39] COLO/migration: Create a n
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH COLO-Frame v11 09/39] COLO/migration: Create a new communication path from destination to source |
Date: |
Tue, 24 Nov 2015 18:40:23 +0000 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
* zhanghailiang (address@hidden) wrote:
> This new communication path will be used for returning messages
> from destination to source.
>
> Signed-off-by: zhanghailiang <address@hidden>
> Signed-off-by: Li Zhijian <address@hidden>
> Cc: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> v11:
> - Rebase master to use qemu_file_get_return_path() for opening return path
> v10:
> - fix the the error log (Dave's suggestion).
> ---
> migration/colo.c | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/migration/colo.c b/migration/colo.c
> index 6880aa0..0ab9618 100644
> --- a/migration/colo.c
> +++ b/migration/colo.c
> @@ -36,6 +36,15 @@ bool migration_incoming_in_colo_state(void)
>
> static void colo_process_checkpoint(MigrationState *s)
> {
> + int ret = 0;
> +
> + s->rp_state.from_dst_file = qemu_file_get_return_path(s->to_dst_file);
> + if (!s->rp_state.from_dst_file) {
> + ret = -EINVAL;
> + error_report("Open QEMUFile from_dst_file failed");
> + goto out;
> + }
> +
> qemu_mutex_lock_iothread();
> vm_start();
> qemu_mutex_unlock_iothread();
> @@ -43,8 +52,16 @@ static void colo_process_checkpoint(MigrationState *s)
>
> /*TODO: COLO checkpoint savevm loop*/
>
> +out:
> + if (ret < 0) {
> + error_report("%s: %s", __func__, strerror(-ret));
> + }
> migrate_set_state(&s->state, MIGRATION_STATUS_COLO,
> MIGRATION_STATUS_COMPLETED);
> +
> + if (s->rp_state.from_dst_file) {
> + qemu_fclose(s->rp_state.from_dst_file);
> + }
> }
>
> void migrate_start_colo_process(MigrationState *s)
> @@ -59,12 +76,34 @@ void migrate_start_colo_process(MigrationState *s)
> void *colo_process_incoming_thread(void *opaque)
> {
> MigrationIncomingState *mis = opaque;
> + int ret = 0;
>
> migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE,
> MIGRATION_STATUS_COLO);
>
> + mis->to_src_file = qemu_file_get_return_path(mis->from_src_file);
> + if (!mis->to_src_file) {
> + ret = -EINVAL;
> + error_report("colo incoming thread: Open QEMUFile to_src_file
> failed");
> + goto out;
> + }
> + /* Note: We set the fd to unblocked in migration incoming coroutine,
> + * But here we are in the colo incoming thread, so it is ok to set the
> + * fd back to blocked.
> + */
> + qemu_set_block(qemu_get_fd(mis->from_src_file));
> +
> /* TODO: COLO checkpoint restore loop */
>
> +out:
> + if (ret < 0) {
> + error_report("colo incoming thread will exit, detect error: %s",
> + strerror(-ret));
> + }
> +
> + if (mis->to_src_file) {
> + qemu_fclose(mis->to_src_file);
> + }
> migration_incoming_exit_colo();
>
> return NULL;
> --
> 1.8.3.1
>
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- Re: [Qemu-devel] [PATCH COLO-Frame v11 04/39] migration: Export migrate_set_state(), (continued)
- [Qemu-devel] [PATCH COLO-Frame v11 05/39] migration: Add state records for migration incoming, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 02/39] migration: Introduce capability 'x-colo' to migration, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 20/39] COLO: synchronize PVM's state to SVM periodically, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 28/39] COLO failover: Don't do failover during loading VM's state, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 19/39] COLO: Add checkpoint-delay parameter for migrate-set-parameters, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 30/39] COLO: Update the global runstate after going into colo state, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 32/39] COLO: Separate the process of saving/loading ram and device state, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 38/39] colo: Use default buffer-filter to buffer and release packets, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 09/39] COLO/migration: Create a new communication path from destination to source, zhanghailiang, 2015/11/24
- Re: [Qemu-devel] [PATCH COLO-Frame v11 09/39] COLO/migration: Create a new communication path from destination to source,
Dr. David Alan Gilbert <=
- [Qemu-devel] [PATCH COLO-Frame v11 10/39] COLO: Implement colo checkpoint protocol, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 12/39] QEMUSizedBuffer: Introduce two help functions for qsb, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 11/39] COLO: Add a new RunState RUN_STATE_COLO, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 14/39] ram: Split host_from_stream_offset() into two helper functions, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 23/39] COLO: Implement failover work for Primary VM, zhanghailiang, 2015/11/24
- [Qemu-devel] [PATCH COLO-Frame v11 25/39] COLO: implement default failover treatment, zhanghailiang, 2015/11/24