qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Denis V. Lunev" <den@openvz.org>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Igor Redko <redkoi@virtuozzo.com>,
	quintela@redhat.com, qemu-devel@nongnu.org, annam@virtuozzo.com,
	amit.shah@redhat.com, jsnow@redhat.com
Subject: Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode
Date: Thu, 8 Oct 2015 20:05:39 +0300	[thread overview]
Message-ID: <5616A263.5080704@openvz.org> (raw)
In-Reply-To: <20151007135653.GF2710@work-vm>

On 10/07/2015 04:56 PM, Dr. David Alan Gilbert wrote:
> * Denis V. Lunev (den@openvz.org) wrote:
>> From: Igor Redko <redkoi@virtuozzo.com>
>>
>> In this patch the ability to start a migration with test-only
>> capability was added. It allows to gather the guest VM’s memory
>> usage statistics avoiding time and memory overheads and real
>> data transmission.  New MIGRATION_STATUS_TEST_COMPLETED was
>> added to distinguish between test migration and true migration
>> success states.
> Why isn't this just a new transport? i.e. I could do this just by doing
> a migrate to test:   ?
>
> It seems simpler and avoids some of the special casing?
>
> Dave
we would like to avoid VM pause in the migration_thread when
the process is finished. Thus we should have a capability
for this in the rest of the code.

Though we can setup the capability here or in the suitable
place and check that capability in the migration thread
using transport here as a distinction.

Will it be OK for you?

Den

>> Signed-off-by: Igor Redko <redkoi@virtuozzo.com>
>> Reviewed-by: Anna Melekhova <annam@virtuozzo.com>
>> Signed-off-by: Denis V. Lunev <den@openvz.org>
>> ---
>>   migration/migration.c | 12 ++++++++++--
>>   qapi-schema.json      |  4 +++-
>>   2 files changed, 13 insertions(+), 3 deletions(-)
>>
>> diff --git a/migration/migration.c b/migration/migration.c
>> index 3182e15..3470d39 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -790,7 +790,9 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
>>   
>>       s = migrate_init(&params);
>>   
>> -    if (strstart(uri, "tcp:", &p)) {
>> +    if (migrate_is_test()) {
>> +        test_start_migration(s, p, &local_err);
>> +    } else if (strstart(uri, "tcp:", &p)) {
>>           tcp_start_outgoing_migration(s, p, &local_err);
>>   #ifdef CONFIG_RDMA
>>       } else if (strstart(uri, "rdma:", &p)) {
>> @@ -1054,8 +1056,14 @@ static void *migration_thread(void *opaque)
>>           }
>>   
>>           if (qemu_file_get_error(s->file)) {
>> -            migrate_set_state(s, MIGRATION_STATUS_ACTIVE,
>> +            /*FIXME replace magic number with smth legit*/
>> +            if (migrate_is_test() && qemu_file_get_error(s->file) == -42) {
>> +                migrate_set_state(s, MIGRATION_STATUS_ACTIVE,
>> +                              MIGRATION_STATUS_TEST_COMPLETED);
>> +            } else {
>> +                migrate_set_state(s, MIGRATION_STATUS_ACTIVE,
>>                                 MIGRATION_STATUS_FAILED);
>> +            }
>>               break;
>>           }
>>   
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 38bf199..e022f9c 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -432,6 +432,8 @@
>>   #
>>   # @completed: migration is finished.
>>   #
>> +# @test-completed: migration time estimation finished.
>> +#
>>   # @failed: some error occurred during migration process.
>>   #
>>   # Since: 2.3
>> @@ -439,7 +441,7 @@
>>   ##
>>   { 'enum': 'MigrationStatus',
>>     'data': [ 'none', 'setup', 'cancelling', 'cancelled',
>> -            'active', 'completed', 'failed' ] }
>> +            'active', 'completed', 'test-completed', 'failed' ] }
>>   
>>   ##
>>   # @MigrationInfo
>> -- 
>> 2.1.4
>>
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  parent reply	other threads:[~2015-10-08 17:05 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-06 18:46 [Qemu-devel] Debugging Migration John Snow
2015-10-06 19:00 ` Dr. David Alan Gilbert
2015-10-06 22:40 ` Denis V. Lunev
2015-10-06 23:02   ` John Snow
2015-10-07  6:20     ` [Qemu-devel] [RFC 0/8] QEMUFile-way to gather VM's memory statistics Denis V. Lunev
2015-10-07  6:20       ` [Qemu-devel] [PATCH 1/8] migration: fix expected_downtime Denis V. Lunev
2015-10-07  6:20       ` [Qemu-devel] [PATCH 2/8] qemu-file: new hook in qemu-file Denis V. Lunev
2015-10-07  6:20       ` [Qemu-devel] [PATCH 3/8] migration: add new capability test-only Denis V. Lunev
2015-10-07 15:05         ` Eric Blake
2015-10-08 14:54           ` Denis V. Lunev
2015-10-09 15:19             ` Dr. David Alan Gilbert
2015-10-07  6:20       ` [Qemu-devel] [PATCH 4/8] migration: add function for reseting migration bitmap Denis V. Lunev
2015-10-07  6:20       ` [Qemu-devel] [PATCH 5/8] migration: add draft of new transport Denis V. Lunev
2015-10-07  6:20       ` [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync Denis V. Lunev
2015-10-07  9:44         ` Paolo Bonzini
2015-10-08 16:51           ` Denis V. Lunev
2015-10-07  9:44         ` Paolo Bonzini
2015-10-08 16:39           ` Denis V. Lunev
2015-10-07 14:03         ` Dr. David Alan Gilbert
2015-10-07  6:20       ` [Qemu-devel] [PATCH 7/8] migration: new migration test mode Denis V. Lunev
2015-10-07 13:56         ` Dr. David Alan Gilbert
2015-10-07 15:08           ` Eric Blake
2015-10-08 17:01             ` Denis V. Lunev
2015-10-08 17:05               ` Dr. David Alan Gilbert
2015-10-08 17:05           ` Denis V. Lunev [this message]
2015-10-08 18:57             ` Dr. David Alan Gilbert
2015-10-07  6:20       ` [Qemu-devel] [PATCH 8/8] migration: add output of gathered statistics Denis V. Lunev
2015-10-07 14:19       ` [Qemu-devel] [RFC 0/8] QEMUFile-way to gather VM's memory statistics Dr. David Alan Gilbert
2015-10-07  6:38     ` [Qemu-devel] Debugging Migration Denis V. Lunev

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=5616A263.5080704@openvz.org \
    --to=den@openvz.org \
    --cc=amit.shah@redhat.com \
    --cc=annam@virtuozzo.com \
    --cc=dgilbert@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=redkoi@virtuozzo.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).