All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
To: Wen Congyang <wency@cn.fujitsu.com>, qemu-devel@nongnu.org
Cc: lizhijian@cn.fujitsu.com, quintela@redhat.com,
	yunhong.jiang@intel.com, eddie.dong@intel.com,
	peter.huangpeng@huawei.com, dgilbert@redhat.com,
	arei.gonglei@huawei.com, stefanha@redhat.com,
	amit.shah@redhat.com, hongyang.yang@easystack.cn
Subject: Re: [Qemu-devel] [PATCH COLO-Frame v11 08/39] migration: Rename the'file' member of MigrationState
Date: Fri, 11 Dec 2015 11:40:36 +0800	[thread overview]
Message-ID: <566A45B4.3070800@huawei.com> (raw)
In-Reply-To: <56691E8B.1050407@cn.fujitsu.com>

On 2015/12/10 14:41, Wen Congyang wrote:
> On 11/24/2015 05:25 PM, zhanghailiang wrote:
>> Rename the 'file' member of MigrationState to 'to_dst_file'.
>>
>> Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
>> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
>> ---
>> v11:
>> - Only rename 'file' member of MigrationState
>
> You forgot to update migration/rdma.c.
>

Good catch, i will fix it, thanks.

> Thanks
> Wen Congyang
>
>> ---
>>   include/migration/migration.h |  2 +-
>>   migration/exec.c              |  4 +--
>>   migration/fd.c                |  4 +--
>>   migration/migration.c         | 72 ++++++++++++++++++++++---------------------
>>   migration/postcopy-ram.c      |  6 ++--
>>   migration/savevm.c            |  2 +-
>>   migration/tcp.c               |  4 +--
>>   migration/unix.c              |  4 +--
>>   8 files changed, 51 insertions(+), 47 deletions(-)
>>
>> diff --git a/include/migration/migration.h b/include/migration/migration.h
>> index a57a734..ba5bcec 100644
>> --- a/include/migration/migration.h
>> +++ b/include/migration/migration.h
>> @@ -140,7 +140,7 @@ struct MigrationState
>>       size_t xfer_limit;
>>       QemuThread thread;
>>       QEMUBH *cleanup_bh;
>> -    QEMUFile *file;
>> +    QEMUFile *to_dst_file;
>>       int parameters[MIGRATION_PARAMETER_MAX];
>>
>>       int state;
>> diff --git a/migration/exec.c b/migration/exec.c
>> index 8406d2b..9037109 100644
>> --- a/migration/exec.c
>> +++ b/migration/exec.c
>> @@ -36,8 +36,8 @@
>>
>>   void exec_start_outgoing_migration(MigrationState *s, const char *command, Error **errp)
>>   {
>> -    s->file = qemu_popen_cmd(command, "w");
>> -    if (s->file == NULL) {
>> +    s->to_dst_file = qemu_popen_cmd(command, "w");
>> +    if (s->to_dst_file == NULL) {
>>           error_setg_errno(errp, errno, "failed to popen the migration target");
>>           return;
>>       }
>> diff --git a/migration/fd.c b/migration/fd.c
>> index 3e4bed0..9a9d6c5 100644
>> --- a/migration/fd.c
>> +++ b/migration/fd.c
>> @@ -50,9 +50,9 @@ void fd_start_outgoing_migration(MigrationState *s, const char *fdname, Error **
>>       }
>>
>>       if (fd_is_socket(fd)) {
>> -        s->file = qemu_fopen_socket(fd, "wb");
>> +        s->to_dst_file = qemu_fopen_socket(fd, "wb");
>>       } else {
>> -        s->file = qemu_fdopen(fd, "wb");
>> +        s->to_dst_file = qemu_fdopen(fd, "wb");
>>       }
>>
>>       migrate_fd_connect(s);
>> diff --git a/migration/migration.c b/migration/migration.c
>> index 41eac0d..a4c690d 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -834,7 +834,7 @@ static void migrate_fd_cleanup(void *opaque)
>>
>>       flush_page_queue(s);
>>
>> -    if (s->file) {
>> +    if (s->to_dst_file) {
>>           trace_migrate_fd_cleanup();
>>           qemu_mutex_unlock_iothread();
>>           if (s->migration_thread_running) {
>> @@ -844,8 +844,8 @@ static void migrate_fd_cleanup(void *opaque)
>>           qemu_mutex_lock_iothread();
>>
>>           migrate_compress_threads_join();
>> -        qemu_fclose(s->file);
>> -        s->file = NULL;
>> +        qemu_fclose(s->to_dst_file);
>> +        s->to_dst_file = NULL;
>>       }
>>
>>       assert((s->state != MIGRATION_STATUS_ACTIVE) &&
>> @@ -862,7 +862,7 @@ static void migrate_fd_cleanup(void *opaque)
>>   void migrate_fd_error(MigrationState *s)
>>   {
>>       trace_migrate_fd_error();
>> -    assert(s->file == NULL);
>> +    assert(s->to_dst_file == NULL);
>>       migrate_set_state(&s->state, MIGRATION_STATUS_SETUP,
>>                         MIGRATION_STATUS_FAILED);
>>       notifier_list_notify(&migration_state_notifiers, s);
>> @@ -871,7 +871,7 @@ void migrate_fd_error(MigrationState *s)
>>   static void migrate_fd_cancel(MigrationState *s)
>>   {
>>       int old_state ;
>> -    QEMUFile *f = migrate_get_current()->file;
>> +    QEMUFile *f = migrate_get_current()->to_dst_file;
>>       trace_migrate_fd_cancel();
>>
>>       if (s->rp_state.from_dst_file) {
>> @@ -942,7 +942,7 @@ MigrationState *migrate_init(const MigrationParams *params)
>>       s->bytes_xfer = 0;
>>       s->xfer_limit = 0;
>>       s->cleanup_bh = 0;
>> -    s->file = NULL;
>> +    s->to_dst_file = NULL;
>>       s->state = MIGRATION_STATUS_NONE;
>>       s->params = *params;
>>       s->rp_state.from_dst_file = NULL;
>> @@ -1122,8 +1122,9 @@ void qmp_migrate_set_speed(int64_t value, Error **errp)
>>
>>       s = migrate_get_current();
>>       s->bandwidth_limit = value;
>> -    if (s->file) {
>> -        qemu_file_set_rate_limit(s->file, s->bandwidth_limit / XFER_LIMIT_RATIO);
>> +    if (s->to_dst_file) {
>> +        qemu_file_set_rate_limit(s->to_dst_file,
>> +                                 s->bandwidth_limit / XFER_LIMIT_RATIO);
>>       }
>>   }
>>
>> @@ -1393,7 +1394,7 @@ out:
>>   static int open_return_path_on_source(MigrationState *ms)
>>   {
>>
>> -    ms->rp_state.from_dst_file = qemu_file_get_return_path(ms->file);
>> +    ms->rp_state.from_dst_file = qemu_file_get_return_path(ms->to_dst_file);
>>       if (!ms->rp_state.from_dst_file) {
>>           return -1;
>>       }
>> @@ -1415,7 +1416,7 @@ static int await_return_path_close_on_source(MigrationState *ms)
>>        * rp_thread will exit, however if there's an error we need to cause
>>        * it to exit.
>>        */
>> -    if (qemu_file_get_error(ms->file) && ms->rp_state.from_dst_file) {
>> +    if (qemu_file_get_error(ms->to_dst_file) && ms->rp_state.from_dst_file) {
>>           /*
>>            * shutdown(2), if we have it, will cause it to unblock if it's stuck
>>            * waiting for the destination.
>> @@ -1458,7 +1459,7 @@ static int postcopy_start(MigrationState *ms, bool *old_vm_running)
>>        * Cause any non-postcopiable, but iterative devices to
>>        * send out their final data.
>>        */
>> -    qemu_savevm_state_complete_precopy(ms->file, true);
>> +    qemu_savevm_state_complete_precopy(ms->to_dst_file, true);
>>
>>       /*
>>        * in Finish migrate and with the io-lock held everything should
>> @@ -1476,9 +1477,9 @@ static int postcopy_start(MigrationState *ms, bool *old_vm_running)
>>        * will notice we're in POSTCOPY_ACTIVE and not actually
>>        * wrap their state up here
>>        */
>> -    qemu_file_set_rate_limit(ms->file, INT64_MAX);
>> +    qemu_file_set_rate_limit(ms->to_dst_file, INT64_MAX);
>>       /* Ping just for debugging, helps line traces up */
>> -    qemu_savevm_send_ping(ms->file, 2);
>> +    qemu_savevm_send_ping(ms->to_dst_file, 2);
>>
>>       /*
>>        * While loading the device state we may trigger page transfer
>> @@ -1512,7 +1513,7 @@ static int postcopy_start(MigrationState *ms, bool *old_vm_running)
>>       qsb = qemu_buf_get(fb);
>>
>>       /* Now send that blob */
>> -    if (qemu_savevm_send_packaged(ms->file, qsb)) {
>> +    if (qemu_savevm_send_packaged(ms->to_dst_file, qsb)) {
>>           goto fail_closefb;
>>       }
>>       qemu_fclose(fb);
>> @@ -1524,9 +1525,9 @@ static int postcopy_start(MigrationState *ms, bool *old_vm_running)
>>        * Although this ping is just for debug, it could potentially be
>>        * used for getting a better measurement of downtime at the source.
>>        */
>> -    qemu_savevm_send_ping(ms->file, 4);
>> +    qemu_savevm_send_ping(ms->to_dst_file, 4);
>>
>> -    ret = qemu_file_get_error(ms->file);
>> +    ret = qemu_file_get_error(ms->to_dst_file);
>>       if (ret) {
>>           error_report("postcopy_start: Migration stream errored");
>>           migrate_set_state(&ms->state, MIGRATION_STATUS_POSTCOPY_ACTIVE,
>> @@ -1569,8 +1570,8 @@ static void migration_completion(MigrationState *s, int current_active_state,
>>           if (!ret) {
>>               ret = vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
>>               if (ret >= 0) {
>> -                qemu_file_set_rate_limit(s->file, INT64_MAX);
>> -                qemu_savevm_state_complete_precopy(s->file, false);
>> +                qemu_file_set_rate_limit(s->to_dst_file, INT64_MAX);
>> +                qemu_savevm_state_complete_precopy(s->to_dst_file, false);
>>               }
>>           }
>>           qemu_mutex_unlock_iothread();
>> @@ -1581,7 +1582,7 @@ static void migration_completion(MigrationState *s, int current_active_state,
>>       } else if (s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE) {
>>           trace_migration_completion_postcopy_end();
>>
>> -        qemu_savevm_state_complete_postcopy(s->file);
>> +        qemu_savevm_state_complete_postcopy(s->to_dst_file);
>>           trace_migration_completion_postcopy_end_after_complete();
>>       }
>>
>> @@ -1602,7 +1603,7 @@ static void migration_completion(MigrationState *s, int current_active_state,
>>           }
>>       }
>>
>> -    if (qemu_file_get_error(s->file)) {
>> +    if (qemu_file_get_error(s->to_dst_file)) {
>>           trace_migration_completion_file_err();
>>           goto fail;
>>       }
>> @@ -1647,24 +1648,24 @@ static void *migration_thread(void *opaque)
>>
>>       rcu_register_thread();
>>
>> -    qemu_savevm_state_header(s->file);
>> +    qemu_savevm_state_header(s->to_dst_file);
>>
>>       if (migrate_postcopy_ram()) {
>>           /* Now tell the dest that it should open its end so it can reply */
>> -        qemu_savevm_send_open_return_path(s->file);
>> +        qemu_savevm_send_open_return_path(s->to_dst_file);
>>
>>           /* And do a ping that will make stuff easier to debug */
>> -        qemu_savevm_send_ping(s->file, 1);
>> +        qemu_savevm_send_ping(s->to_dst_file, 1);
>>
>>           /*
>>            * Tell the destination that we *might* want to do postcopy later;
>>            * if the other end can't do postcopy it should fail now, nice and
>>            * early.
>>            */
>> -        qemu_savevm_send_postcopy_advise(s->file);
>> +        qemu_savevm_send_postcopy_advise(s->to_dst_file);
>>       }
>>
>> -    qemu_savevm_state_begin(s->file, &s->params);
>> +    qemu_savevm_state_begin(s->to_dst_file, &s->params);
>>
>>       s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_HOST) - setup_start;
>>       current_active_state = MIGRATION_STATUS_ACTIVE;
>> @@ -1678,10 +1679,10 @@ static void *migration_thread(void *opaque)
>>           int64_t current_time;
>>           uint64_t pending_size;
>>
>> -        if (!qemu_file_rate_limit(s->file)) {
>> +        if (!qemu_file_rate_limit(s->to_dst_file)) {
>>               uint64_t pend_post, pend_nonpost;
>>
>> -            qemu_savevm_state_pending(s->file, max_size, &pend_nonpost,
>> +            qemu_savevm_state_pending(s->to_dst_file, max_size, &pend_nonpost,
>>                                         &pend_post);
>>               pending_size = pend_nonpost + pend_post;
>>               trace_migrate_pending(pending_size, max_size,
>> @@ -1702,7 +1703,7 @@ static void *migration_thread(void *opaque)
>>                       continue;
>>                   }
>>                   /* Just another iteration step */
>> -                qemu_savevm_state_iterate(s->file, entered_postcopy);
>> +                qemu_savevm_state_iterate(s->to_dst_file, entered_postcopy);
>>               } else {
>>                   trace_migration_thread_low_pending(pending_size);
>>                   migration_completion(s, current_active_state,
>> @@ -1711,7 +1712,7 @@ static void *migration_thread(void *opaque)
>>               }
>>           }
>>
>> -        if (qemu_file_get_error(s->file)) {
>> +        if (qemu_file_get_error(s->to_dst_file)) {
>>               migrate_set_state(&s->state, current_active_state,
>>                                 MIGRATION_STATUS_FAILED);
>>               trace_migration_thread_file_err();
>> @@ -1719,7 +1720,8 @@ static void *migration_thread(void *opaque)
>>           }
>>           current_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
>>           if (current_time >= initial_time + BUFFER_DELAY) {
>> -            uint64_t transferred_bytes = qemu_ftell(s->file) - initial_bytes;
>> +            uint64_t transferred_bytes = qemu_ftell(s->to_dst_file) -
>> +                                         initial_bytes;
>>               uint64_t time_spent = current_time - initial_time;
>>               double bandwidth = transferred_bytes / time_spent;
>>               max_size = bandwidth * migrate_max_downtime() / 1000000;
>> @@ -1735,11 +1737,11 @@ static void *migration_thread(void *opaque)
>>                   s->expected_downtime = s->dirty_bytes_rate / bandwidth;
>>               }
>>
>> -            qemu_file_reset_rate_limit(s->file);
>> +            qemu_file_reset_rate_limit(s->to_dst_file);
>>               initial_time = current_time;
>> -            initial_bytes = qemu_ftell(s->file);
>> +            initial_bytes = qemu_ftell(s->to_dst_file);
>>           }
>> -        if (qemu_file_rate_limit(s->file)) {
>> +        if (qemu_file_rate_limit(s->to_dst_file)) {
>>               /* usleep expects microseconds */
>>               g_usleep((initial_time + BUFFER_DELAY - current_time)*1000);
>>           }
>> @@ -1757,7 +1759,7 @@ static void *migration_thread(void *opaque)
>>           qemu_savevm_state_cleanup();
>>       }
>>       if (s->state == MIGRATION_STATUS_COMPLETED) {
>> -        uint64_t transferred_bytes = qemu_ftell(s->file);
>> +        uint64_t transferred_bytes = qemu_ftell(s->to_dst_file);
>>           s->total_time = end_time - s->total_time;
>>           if (!entered_postcopy) {
>>               s->downtime = end_time - start_time;
>> @@ -1794,7 +1796,7 @@ void migrate_fd_connect(MigrationState *s)
>>       s->expected_downtime = max_downtime/1000000;
>>       s->cleanup_bh = qemu_bh_new(migrate_fd_cleanup, s);
>>
>> -    qemu_file_set_rate_limit(s->file,
>> +    qemu_file_set_rate_limit(s->to_dst_file,
>>                                s->bandwidth_limit / XFER_LIMIT_RATIO);
>>
>>       /* Notify before starting migration thread */
>> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
>> index 22d6b18..f74016d 100644
>> --- a/migration/postcopy-ram.c
>> +++ b/migration/postcopy-ram.c
>> @@ -733,7 +733,8 @@ void postcopy_discard_send_range(MigrationState *ms, PostcopyDiscardState *pds,
>>
>>       if (pds->cur_entry == MAX_DISCARDS_PER_COMMAND) {
>>           /* Full set, ship it! */
>> -        qemu_savevm_send_postcopy_ram_discard(ms->file, pds->ramblock_name,
>> +        qemu_savevm_send_postcopy_ram_discard(ms->to_dst_file,
>> +                                              pds->ramblock_name,
>>                                                 pds->cur_entry,
>>                                                 pds->start_list,
>>                                                 pds->length_list);
>> @@ -753,7 +754,8 @@ void postcopy_discard_send_finish(MigrationState *ms, PostcopyDiscardState *pds)
>>   {
>>       /* Anything unsent? */
>>       if (pds->cur_entry) {
>> -        qemu_savevm_send_postcopy_ram_discard(ms->file, pds->ramblock_name,
>> +        qemu_savevm_send_postcopy_ram_discard(ms->to_dst_file,
>> +                                              pds->ramblock_name,
>>                                                 pds->cur_entry,
>>                                                 pds->start_list,
>>                                                 pds->length_list);
>> diff --git a/migration/savevm.c b/migration/savevm.c
>> index 0ad1b93..f102870 100644
>> --- a/migration/savevm.c
>> +++ b/migration/savevm.c
>> @@ -1163,7 +1163,7 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp)
>>           .shared = 0
>>       };
>>       MigrationState *ms = migrate_init(&params);
>> -    ms->file = f;
>> +    ms->to_dst_file = f;
>>
>>       if (qemu_savevm_state_blocked(errp)) {
>>           return -EINVAL;
>> diff --git a/migration/tcp.c b/migration/tcp.c
>> index ae89172..e083d68 100644
>> --- a/migration/tcp.c
>> +++ b/migration/tcp.c
>> @@ -39,11 +39,11 @@ static void tcp_wait_for_connect(int fd, Error *err, void *opaque)
>>
>>       if (fd < 0) {
>>           DPRINTF("migrate connect error: %s\n", error_get_pretty(err));
>> -        s->file = NULL;
>> +        s->to_dst_file = NULL;
>>           migrate_fd_error(s);
>>       } else {
>>           DPRINTF("migrate connect success\n");
>> -        s->file = qemu_fopen_socket(fd, "wb");
>> +        s->to_dst_file = qemu_fopen_socket(fd, "wb");
>>           migrate_fd_connect(s);
>>       }
>>   }
>> diff --git a/migration/unix.c b/migration/unix.c
>> index b591813..5492dd6 100644
>> --- a/migration/unix.c
>> +++ b/migration/unix.c
>> @@ -39,11 +39,11 @@ static void unix_wait_for_connect(int fd, Error *err, void *opaque)
>>
>>       if (fd < 0) {
>>           DPRINTF("migrate connect error: %s\n", error_get_pretty(err));
>> -        s->file = NULL;
>> +        s->to_dst_file = NULL;
>>           migrate_fd_error(s);
>>       } else {
>>           DPRINTF("migrate connect success\n");
>> -        s->file = qemu_fopen_socket(fd, "wb");
>> +        s->to_dst_file = qemu_fopen_socket(fd, "wb");
>>           migrate_fd_connect(s);
>>       }
>>   }
>>
>
>
>
>
> .
>

  reply	other threads:[~2015-12-11  3:41 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-24  9:25 [Qemu-devel] [PATCH COLO-Frame v11 00/39] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 01/39] configure: Add parameter for configure to enable/disable COLO support zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 02/39] migration: Introduce capability 'x-colo' to migration zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 03/39] COLO: migrate colo related info to secondary node zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 04/39] migration: Export migrate_set_state() zhanghailiang
2015-11-24 17:31   ` Dr. David Alan Gilbert
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 05/39] migration: Add state records for migration incoming zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 06/39] migration: Integrate COLO checkpoint process into migration zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 07/39] migration: Integrate COLO checkpoint process into loadvm zhanghailiang
2015-11-24 18:14   ` Dr. David Alan Gilbert
2015-11-25  6:39     ` zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 08/39] migration: Rename the'file' member of MigrationState zhanghailiang
2015-11-24 18:26   ` Dr. David Alan Gilbert
2015-11-25  6:48     ` zhanghailiang
2015-12-10  6:41   ` Wen Congyang
2015-12-11  3:40     ` Hailiang Zhang [this message]
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 09/39] COLO/migration: Create a new communication path from destination to source zhanghailiang
2015-11-24 18:40   ` Dr. David Alan Gilbert
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 10/39] COLO: Implement colo checkpoint protocol zhanghailiang
2015-11-24 19:00   ` Dr. David Alan Gilbert
2015-11-25 14:01     ` Eric Blake
2015-11-26  6:52       ` Hailiang Zhang
2015-11-26  7:12     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 11/39] COLO: Add a new RunState RUN_STATE_COLO zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 12/39] QEMUSizedBuffer: Introduce two help functions for qsb zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 13/39] COLO: Save PVM state to secondary side when do checkpoint zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 14/39] ram: Split host_from_stream_offset() into two helper functions zhanghailiang
2015-12-01 18:19   ` Dr. David Alan Gilbert
2015-12-03  7:19     ` Hailiang Zhang
2015-12-03  7:29       ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 15/39] COLO: Load PVM's dirty pages into SVM's RAM cache temporarily zhanghailiang
2015-12-01 19:02   ` Dr. David Alan Gilbert
2015-12-03  8:25     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 16/39] ram/COLO: Record the dirty pages that SVM received zhanghailiang
2015-12-01 19:36   ` Dr. David Alan Gilbert
2015-12-03  8:29     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 17/39] COLO: Load VMState into qsb before restore it zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 18/39] COLO: Flush PVM's cached RAM into SVM's memory zhanghailiang
2015-11-27  5:29   ` Li Zhijian
2015-12-01 12:02     ` Hailiang Zhang
2015-12-01 20:06   ` Dr. David Alan Gilbert
2015-12-03  8:50     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 19/39] COLO: Add checkpoint-delay parameter for migrate-set-parameters zhanghailiang
2015-12-09 18:50   ` Dr. David Alan Gilbert
2015-12-11  3:20     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 20/39] COLO: synchronize PVM's state to SVM periodically zhanghailiang
2015-12-09 18:53   ` Dr. David Alan Gilbert
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 21/39] COLO failover: Introduce a new command to trigger a failover zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 22/39] COLO failover: Introduce state to record failover process zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 23/39] COLO: Implement failover work for Primary VM zhanghailiang
2015-12-10 18:34   ` Dr. David Alan Gilbert
2015-12-11  7:54     ` Hailiang Zhang
2015-12-11  9:22       ` Dr. David Alan Gilbert
2015-12-11  9:38         ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 24/39] COLO: Implement failover work for Secondary VM zhanghailiang
2015-12-10 18:50   ` Dr. David Alan Gilbert
2015-12-11  8:27     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 25/39] COLO: implement default failover treatment zhanghailiang
2015-12-10 19:01   ` Dr. David Alan Gilbert
2015-12-11  9:48     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 26/39] qmp event: Add event notification for COLO error zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 27/39] COLO failover: Shutdown related socket fd when do failover zhanghailiang
2015-12-10 20:03   ` Dr. David Alan Gilbert
2015-12-11  8:57     ` Hailiang Zhang
2015-12-11  9:18       ` Dr. David Alan Gilbert
2015-12-11  9:29         ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 28/39] COLO failover: Don't do failover during loading VM's state zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 29/39] COLO: Process shutdown command for VM in COLO state zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 30/39] COLO: Update the global runstate after going into colo state zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 31/39] savevm: Split load vm state function qemu_loadvm_state zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 32/39] COLO: Separate the process of saving/loading ram and device state zhanghailiang
2015-11-27  5:10   ` Li Zhijian
2015-12-01 12:07     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 33/39] COLO: Split qemu_savevm_state_begin out of checkpoint process zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 34/39] net/filter-buffer: Add default filter-buffer for each netdev zhanghailiang
2015-11-27 11:39   ` Yang Hongyang
2015-11-28  5:55     ` Hailiang Zhang
2015-11-30  1:19   ` Li Zhijian
2015-12-01  8:56     ` Hailiang Zhang
2015-12-03  1:17   ` Wen Congyang
2015-12-03  3:53     ` Hailiang Zhang
2015-12-03  6:25       ` Wen Congyang
2015-12-03  6:48         ` Hailiang Zhang
2015-12-03  7:21           ` Yang Hongyang
2015-12-03  8:37             ` Hailiang Zhang
2015-12-07  7:38             ` Hailiang Zhang
2015-12-08  1:49               ` Yang Hongyang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 35/39] filter-buffer: Accept zero interval zhanghailiang
2015-11-27 11:42   ` Yang Hongyang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 36/39] filter-buffer: Introduce a helper function to enable/disable default filter zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 37/39] filter-buffer: Introduce a helper function to release packets zhanghailiang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 38/39] colo: Use default buffer-filter to buffer and " zhanghailiang
2015-11-27 12:51   ` Yang Hongyang
2015-11-28  6:15     ` Hailiang Zhang
2015-11-24  9:25 ` [Qemu-devel] [PATCH COLO-Frame v11 39/39] COLO: Add block replication into colo process zhanghailiang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=566A45B4.3070800@huawei.com \
    --to=zhang.zhanghailiang@huawei.com \
    --cc=amit.shah@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=dgilbert@redhat.com \
    --cc=eddie.dong@intel.com \
    --cc=hongyang.yang@easystack.cn \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=wency@cn.fujitsu.com \
    --cc=yunhong.jiang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.