[{"id":3347851,"web_url":"http://patchwork.ozlabs.org/comment/3347851/","msgid":"<87v813278d.fsf@suse.de>","list_archive_url":null,"date":"2024-07-17T18:39:30","subject":"Re: [PATCH V2 03/11] migration: save cpr mode","submitter":{"id":85343,"url":"http://patchwork.ozlabs.org/api/people/85343/","name":"Fabiano Rosas","email":"farosas@suse.de"},"content":"Steve Sistare <steven.sistare@oracle.com> writes:\n\n> Save the mode in CPR state, so the user does not need to explicitly specify\n> it for the target.  Modify migrate_mode() so it returns the incoming mode on\n> the target.\n>\n> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>\n> ---\n>  include/migration/cpr.h |  7 +++++++\n>  migration/cpr.c         | 23 ++++++++++++++++++++++-\n>  migration/migration.c   |  1 +\n>  migration/options.c     |  9 +++++++--\n>  4 files changed, 37 insertions(+), 3 deletions(-)\n>\n> diff --git a/include/migration/cpr.h b/include/migration/cpr.h\n> index 8e7e705..42b4019 100644\n> --- a/include/migration/cpr.h\n> +++ b/include/migration/cpr.h\n> @@ -8,6 +8,13 @@\n>  #ifndef MIGRATION_CPR_H\n>  #define MIGRATION_CPR_H\n>  \n> +#include \"qapi/qapi-types-migration.h\"\n> +\n> +#define MIG_MODE_NONE MIG_MODE__MAX\n\nWhat happens when a QEMU that knows about a new mode migrates into a\nQEMU that doesn't know that mode, i.e. sees it as MIG_MODE__MAX?\n\nI'd just use -1.\n\n> +\n> +MigMode cpr_get_incoming_mode(void);\n> +void cpr_set_incoming_mode(MigMode mode);\n> +\n>  typedef int (*cpr_walk_fd_cb)(int fd);\n>  void cpr_save_fd(const char *name, int id, int fd);\n>  void cpr_delete_fd(const char *name, int id);\n> diff --git a/migration/cpr.c b/migration/cpr.c\n> index 313e74e..1c296c6 100644\n> --- a/migration/cpr.c\n> +++ b/migration/cpr.c\n> @@ -21,10 +21,23 @@\n>  typedef QLIST_HEAD(CprFdList, CprFd) CprFdList;\n>  \n>  typedef struct CprState {\n> +    MigMode mode;\n>      CprFdList fds;\n>  } CprState;\n>  \n> -static CprState cpr_state;\n> +static CprState cpr_state = {\n> +    .mode = MIG_MODE_NONE,\n> +};\n> +\n> +MigMode cpr_get_incoming_mode(void)\n> +{\n> +    return cpr_state.mode;\n> +}\n> +\n> +void cpr_set_incoming_mode(MigMode mode)\n> +{\n> +    cpr_state.mode = mode;\n> +}\n>  \n>  /****************************************************************************/\n>  \n> @@ -124,11 +137,19 @@ void cpr_resave_fd(const char *name, int id, int fd)\n>  /*************************************************************************/\n>  #define CPR_STATE \"CprState\"\n>  \n> +static int cpr_state_presave(void *opaque)\n> +{\n> +    cpr_state.mode = migrate_mode();\n> +    return 0;\n> +}\n> +\n>  static const VMStateDescription vmstate_cpr_state = {\n>      .name = CPR_STATE,\n>      .version_id = 1,\n>      .minimum_version_id = 1,\n> +    .pre_save = cpr_state_presave,\n>      .fields = (VMStateField[]) {\n> +        VMSTATE_UINT32(mode, CprState),\n>          VMSTATE_QLIST_V(fds, CprState, 1, vmstate_cpr_fd, CprFd, next),\n>          VMSTATE_END_OF_LIST()\n>      }\n> diff --git a/migration/migration.c b/migration/migration.c\n> index e394ad7..0f47765 100644\n> --- a/migration/migration.c\n> +++ b/migration/migration.c\n> @@ -411,6 +411,7 @@ void migration_incoming_state_destroy(void)\n>          mis->postcopy_qemufile_dst = NULL;\n>      }\n>  \n> +    cpr_set_incoming_mode(MIG_MODE_NONE);\n>      yank_unregister_instance(MIGRATION_YANK_INSTANCE);\n>  }\n>  \n> diff --git a/migration/options.c b/migration/options.c\n> index 645f550..305397a 100644\n> --- a/migration/options.c\n> +++ b/migration/options.c\n> @@ -22,6 +22,7 @@\n>  #include \"qapi/qmp/qnull.h\"\n>  #include \"sysemu/runstate.h\"\n>  #include \"migration/colo.h\"\n> +#include \"migration/cpr.h\"\n>  #include \"migration/misc.h\"\n>  #include \"migration.h\"\n>  #include \"migration-stats.h\"\n> @@ -758,8 +759,12 @@ uint64_t migrate_max_postcopy_bandwidth(void)\n>  \n>  MigMode migrate_mode(void)\n>  {\n> -    MigrationState *s = migrate_get_current();\n> -    MigMode mode = s->parameters.mode;\n> +    MigMode mode = cpr_get_incoming_mode();\n> +\n> +    if (mode == MIG_MODE_NONE) {\n> +        MigrationState *s = migrate_get_current();\n> +        mode = s->parameters.mode;\n> +    }\n>  \n>      assert(mode >= 0 && mode < MIG_MODE__MAX);\n>      return mode;","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=hx4clKv5;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=e/LQYr0g;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=hx4clKv5;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=e/LQYr0g;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","smtp-out1.suse.de;\n\tnone"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4WPPrX0Kf8z20FF\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Jul 2024 04:40:27 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1sU9Yv-00038s-5K; Wed, 17 Jul 2024 14:39:37 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <farosas@suse.de>) id 1sU9Yu-00038O-Cm\n for qemu-devel@nongnu.org; Wed, 17 Jul 2024 14:39:36 -0400","from smtp-out1.suse.de ([195.135.223.130])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <farosas@suse.de>) id 1sU9Ys-0003B9-KZ\n for qemu-devel@nongnu.org; Wed, 17 Jul 2024 14:39:36 -0400","from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out1.suse.de (Postfix) with ESMTPS id 5845921A77;\n Wed, 17 Jul 2024 18:39:33 +0000 (UTC)","from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D5C481368F;\n Wed, 17 Jul 2024 18:39:32 +0000 (UTC)","from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n by imap1.dmz-prg2.suse.org with ESMTPSA id P5GGJuQPmGbSTgAAD6G6ig\n (envelope-from <farosas@suse.de>); Wed, 17 Jul 2024 18:39:32 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1721241573;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=7fJQXeToqjFz8yCd9Lvcj3zs1EICaJgUO/2Q+sMPnSk=;\n b=hx4clKv5yI9EEk5uTuVe/RjwqkgDlqdUCFEwUONGTdmSQwzsybKvLRWu4lKvlf2K35BNVH\n nNcGyfym/MoI+By0LyxnPNnMaeHxhGavY/eZJsmXM8r2RGV3r9+KApmRrPCIebcIoIkRMw\n 7osM1B0dYSEke0joH7YYWc92mWD36xc=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1721241573;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=7fJQXeToqjFz8yCd9Lvcj3zs1EICaJgUO/2Q+sMPnSk=;\n b=e/LQYr0guZUY8yK/Eots/wbMmfT5r1YfZ1fsp8k4HeF8sV2I4I9vNsjdivl4yMiC7A9K4U\n nLuxt8yJr1Kx+sAw==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1721241573;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=7fJQXeToqjFz8yCd9Lvcj3zs1EICaJgUO/2Q+sMPnSk=;\n b=hx4clKv5yI9EEk5uTuVe/RjwqkgDlqdUCFEwUONGTdmSQwzsybKvLRWu4lKvlf2K35BNVH\n nNcGyfym/MoI+By0LyxnPNnMaeHxhGavY/eZJsmXM8r2RGV3r9+KApmRrPCIebcIoIkRMw\n 7osM1B0dYSEke0joH7YYWc92mWD36xc=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1721241573;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=7fJQXeToqjFz8yCd9Lvcj3zs1EICaJgUO/2Q+sMPnSk=;\n b=e/LQYr0guZUY8yK/Eots/wbMmfT5r1YfZ1fsp8k4HeF8sV2I4I9vNsjdivl4yMiC7A9K4U\n nLuxt8yJr1Kx+sAw=="],"From":"Fabiano Rosas <farosas@suse.de>","To":"Steve Sistare <steven.sistare@oracle.com>, qemu-devel@nongnu.org","Cc":"Peter Xu <peterx@redhat.com>, David Hildenbrand <david@redhat.com>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Eduardo Habkost\n <eduardo@habkost.net>, Philippe Mathieu-Daude <philmd@linaro.org>, Paolo\n Bonzini <pbonzini@redhat.com>, \"Daniel P. Berrange\" <berrange@redhat.com>,\n Markus Armbruster <armbru@redhat.com>, Steve Sistare\n <steven.sistare@oracle.com>","Subject":"Re: [PATCH V2 03/11] migration: save cpr mode","In-Reply-To":"<1719776434-435013-4-git-send-email-steven.sistare@oracle.com>","References":"<1719776434-435013-1-git-send-email-steven.sistare@oracle.com>\n <1719776434-435013-4-git-send-email-steven.sistare@oracle.com>","Date":"Wed, 17 Jul 2024 15:39:30 -0300","Message-ID":"<87v813278d.fsf@suse.de>","MIME-Version":"1.0","Content-Type":"text/plain","X-Spamd-Result":"default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n FREEMAIL_ENVRCPT(0.00)[gmail.com]; TAGGED_RCPT(0.00)[];\n RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[];\n MISSING_XM_UA(0.00)[]; RCVD_TLS_ALL(0.00)[];\n MIME_TRACE(0.00)[0:+]; RCPT_COUNT_SEVEN(0.00)[11];\n MID_RHS_MATCH_FROM(0.00)[];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n FROM_HAS_DN(0.00)[];\n FREEMAIL_CC(0.00)[redhat.com,gmail.com,habkost.net,linaro.org,oracle.com];\n TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[];\n RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[];\n FUZZY_BLOCKED(0.00)[rspamd.com];\n DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo]","X-Spam-Score":"-2.80","Received-SPF":"pass client-ip=195.135.223.130; envelope-from=farosas@suse.de;\n helo=smtp-out1.suse.de","X-Spam_score_int":"-43","X-Spam_score":"-4.4","X-Spam_bar":"----","X-Spam_report":"(-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3348337,"web_url":"http://patchwork.ozlabs.org/comment/3348337/","msgid":"<77c7e2b3-e067-434b-ba5c-c5a176f532d4@oracle.com>","list_archive_url":null,"date":"2024-07-18T15:47:26","subject":"Re: [PATCH V2 03/11] migration: save cpr mode","submitter":{"id":71906,"url":"http://patchwork.ozlabs.org/api/people/71906/","name":"Steve Sistare","email":"steven.sistare@oracle.com"},"content":"On 7/17/2024 2:39 PM, Fabiano Rosas wrote:\n> Steve Sistare <steven.sistare@oracle.com> writes:\n> \n>> Save the mode in CPR state, so the user does not need to explicitly specify\n>> it for the target.  Modify migrate_mode() so it returns the incoming mode on\n>> the target.\n>>\n>> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>\n>> ---\n>>   include/migration/cpr.h |  7 +++++++\n>>   migration/cpr.c         | 23 ++++++++++++++++++++++-\n>>   migration/migration.c   |  1 +\n>>   migration/options.c     |  9 +++++++--\n>>   4 files changed, 37 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/include/migration/cpr.h b/include/migration/cpr.h\n>> index 8e7e705..42b4019 100644\n>> --- a/include/migration/cpr.h\n>> +++ b/include/migration/cpr.h\n>> @@ -8,6 +8,13 @@\n>>   #ifndef MIGRATION_CPR_H\n>>   #define MIGRATION_CPR_H\n>>   \n>> +#include \"qapi/qapi-types-migration.h\"\n>> +\n>> +#define MIG_MODE_NONE MIG_MODE__MAX\n> \n> What happens when a QEMU that knows about a new mode migrates into a\n> QEMU that doesn't know that mode, i.e. sees it as MIG_MODE__MAX?\n> \n> I'd just use -1.\n\nGood idea, thanks - steve\n\n>> +\n>> +MigMode cpr_get_incoming_mode(void);\n>> +void cpr_set_incoming_mode(MigMode mode);\n>> +\n>>   typedef int (*cpr_walk_fd_cb)(int fd);\n>>   void cpr_save_fd(const char *name, int id, int fd);\n>>   void cpr_delete_fd(const char *name, int id);\n>> diff --git a/migration/cpr.c b/migration/cpr.c\n>> index 313e74e..1c296c6 100644\n>> --- a/migration/cpr.c\n>> +++ b/migration/cpr.c\n>> @@ -21,10 +21,23 @@\n>>   typedef QLIST_HEAD(CprFdList, CprFd) CprFdList;\n>>   \n>>   typedef struct CprState {\n>> +    MigMode mode;\n>>       CprFdList fds;\n>>   } CprState;\n>>   \n>> -static CprState cpr_state;\n>> +static CprState cpr_state = {\n>> +    .mode = MIG_MODE_NONE,\n>> +};\n>> +\n>> +MigMode cpr_get_incoming_mode(void)\n>> +{\n>> +    return cpr_state.mode;\n>> +}\n>> +\n>> +void cpr_set_incoming_mode(MigMode mode)\n>> +{\n>> +    cpr_state.mode = mode;\n>> +}\n>>   \n>>   /****************************************************************************/\n>>   \n>> @@ -124,11 +137,19 @@ void cpr_resave_fd(const char *name, int id, int fd)\n>>   /*************************************************************************/\n>>   #define CPR_STATE \"CprState\"\n>>   \n>> +static int cpr_state_presave(void *opaque)\n>> +{\n>> +    cpr_state.mode = migrate_mode();\n>> +    return 0;\n>> +}\n>> +\n>>   static const VMStateDescription vmstate_cpr_state = {\n>>       .name = CPR_STATE,\n>>       .version_id = 1,\n>>       .minimum_version_id = 1,\n>> +    .pre_save = cpr_state_presave,\n>>       .fields = (VMStateField[]) {\n>> +        VMSTATE_UINT32(mode, CprState),\n>>           VMSTATE_QLIST_V(fds, CprState, 1, vmstate_cpr_fd, CprFd, next),\n>>           VMSTATE_END_OF_LIST()\n>>       }\n>> diff --git a/migration/migration.c b/migration/migration.c\n>> index e394ad7..0f47765 100644\n>> --- a/migration/migration.c\n>> +++ b/migration/migration.c\n>> @@ -411,6 +411,7 @@ void migration_incoming_state_destroy(void)\n>>           mis->postcopy_qemufile_dst = NULL;\n>>       }\n>>   \n>> +    cpr_set_incoming_mode(MIG_MODE_NONE);\n>>       yank_unregister_instance(MIGRATION_YANK_INSTANCE);\n>>   }\n>>   \n>> diff --git a/migration/options.c b/migration/options.c\n>> index 645f550..305397a 100644\n>> --- a/migration/options.c\n>> +++ b/migration/options.c\n>> @@ -22,6 +22,7 @@\n>>   #include \"qapi/qmp/qnull.h\"\n>>   #include \"sysemu/runstate.h\"\n>>   #include \"migration/colo.h\"\n>> +#include \"migration/cpr.h\"\n>>   #include \"migration/misc.h\"\n>>   #include \"migration.h\"\n>>   #include \"migration-stats.h\"\n>> @@ -758,8 +759,12 @@ uint64_t migrate_max_postcopy_bandwidth(void)\n>>   \n>>   MigMode migrate_mode(void)\n>>   {\n>> -    MigrationState *s = migrate_get_current();\n>> -    MigMode mode = s->parameters.mode;\n>> +    MigMode mode = cpr_get_incoming_mode();\n>> +\n>> +    if (mode == MIG_MODE_NONE) {\n>> +        MigrationState *s = migrate_get_current();\n>> +        mode = s->parameters.mode;\n>> +    }\n>>   \n>>       assert(mode >= 0 && mode < MIG_MODE__MAX);\n>>       return mode;","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256\n header.s=corp-2023-11-20 header.b=NWQAIqAK;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com\n header.b=tHuu6cQO;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4WPxzG0f62z1ySl\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Jul 2024 01:48:10 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1sUTMC-0005gL-0d; Thu, 18 Jul 2024 11:47:48 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <steven.sistare@oracle.com>)\n id 1sUTM6-0005fb-Ic\n for qemu-devel@nongnu.org; Thu, 18 Jul 2024 11:47:44 -0400","from mx0b-00069f02.pphosted.com ([205.220.177.32])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <steven.sistare@oracle.com>)\n id 1sUTM3-0006T6-Ip\n for qemu-devel@nongnu.org; Thu, 18 Jul 2024 11:47:42 -0400","from pps.filterd (m0246630.ppops.net [127.0.0.1])\n by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id\n 46IFjioc029947;\n Thu, 18 Jul 2024 15:47:37 GMT","from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com\n (iadpaimrmta01.appoci.oracle.com [130.35.100.223])\n by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 40f5yfg04w-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Thu, 18 Jul 2024 15:47:36 +0000 (GMT)","from pps.filterd\n (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])\n by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19)\n with ESMTP id 46IFlWZ6003706; Thu, 18 Jul 2024 15:47:36 GMT","from nam04-bn8-obe.outbound.protection.outlook.com\n (mail-bn8nam04lp2044.outbound.protection.outlook.com [104.47.74.44])\n by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id\n 40dwf0kjyp-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Thu, 18 Jul 2024 15:47:36 +0000","from IA1PR10MB7447.namprd10.prod.outlook.com (2603:10b6:208:44c::10)\n by CH2PR10MB4341.namprd10.prod.outlook.com (2603:10b6:610:78::9) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.19; Thu, 18 Jul\n 2024 15:47:34 +0000","from IA1PR10MB7447.namprd10.prod.outlook.com\n ([fe80::f2fe:d6c6:70c4:4572]) by IA1PR10MB7447.namprd10.prod.outlook.com\n ([fe80::f2fe:d6c6:70c4:4572%6]) with mapi id 15.20.7784.016; Thu, 18 Jul 2024\n 15:47:34 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=\n message-id:date:subject:to:cc:references:from:in-reply-to\n :content-type:content-transfer-encoding:mime-version; s=\n corp-2023-11-20; bh=lkHqHPdVPX9/hJgVZFbd0yz+1SO1/cxn26knYIzz9x8=; b=\n NWQAIqAK+MX/29TyImHIHn3MyKSTbcEpSbIo3dn32rXsecc86VNsip+BiT57bjui\n AYabp7hYALK6jR3c1qnYfPnVDmnhzaqhyOtF6F2bXhM00COuY3jxnYaz0xM+GFXe\n LVibDh37bG3RVMVrXbS/4XAP5vT5q6pxFJcuSrGZK0dSbxkUNZ7nAD8gT35OekD2\n bRefRRi7h6pmOgS4dqDBp019W8OF/7d3lk2l8kld87avRBSKoIp6mmza4/aruaAF\n YDgjU/xH36H1ndQlthPcL8HQlQaikScR/mAxCJL6XpiSoCAUSGXE+N11p0njtKqf\n NJ24RYtcLAwFGgTe5wPvQA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=lkHqHPdVPX9/hJgVZFbd0yz+1SO1/cxn26knYIzz9x8=;\n b=tHuu6cQOtLjehFrHZN5r6r0/btJLCwVtrKKym0qKq8uGeLl3ysDHxfFOEgvpjXgYD4SVuFZu9x4ldz0jlIDHTX16EHYh+vwiM+IHoXuIqTqNkVnnKimtg8KlNy5TIIwBcVxUPmpIFyBXM1KXHxylyu3IjVleBVzIKmRYAGCv0RU="],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Gi6tp/NaFEfR5rLHaozKci5/NsUfMMfJY9e281Fjf8+u4xjOd3lQSq7oyc0YsuXjbufxZD8g/hTLWPwBwA9bdDxwzpJkgWVpU3kmMi8eYcs3Br5uEerC8fBIEAI67xDTN6MMWdvY2sjUfSVzeh0BrU4z8ZiAeF+EUPgtwHNtLWWvy26zKBtFU5Sz49sbdYlXSkodVzL9lKTbl8u98YfZSRtkH3eWgZk1iv5sUWZVw2NSfFSPeqyEN/PdpXleE/4nFsh4/R34gqujSXDp0f3edLfIBbAGWJWEjnRZnsa3jZ7XFGYHEASKAHr7qVSJJsFpLqp38RT4LygikoZSNbpUKw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=lkHqHPdVPX9/hJgVZFbd0yz+1SO1/cxn26knYIzz9x8=;\n b=kALcFq3i3SlKRQ6+KX3cGtstQtu9VcCCNt1mA3TdGW5qPKDGFM4xpix7/9aktK0A+a3orAyfbZ5CZenVbHZJIr+8Ecnbfi7E/HjSNnTRlzlRDRy4Sy/K61Pw6FuYaeEH/PwW7uEGhL6CXwEq9qJl2fIKRtwzhmXtaduDE9nh2NNY0J1JYjkRU8e/9Q1Im2C8emO45hguvVwwSKaiUmw6mrWfFm1BAl4nqI9E1sls8n06plrRQfAWtHSV5889+Ba7mZlFe6+nv+DDo/W43caJ/fkVAsXR/5uQoInGOyLIE8gr7NCC4uJt/wGD78HWM3E7yLFm9jFRQT3Q06N7NVJbjQ==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;\n dkim=pass header.d=oracle.com; arc=none","Message-ID":"<77c7e2b3-e067-434b-ba5c-c5a176f532d4@oracle.com>","Date":"Thu, 18 Jul 2024 11:47:26 -0400","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH V2 03/11] migration: save cpr mode","To":"Fabiano Rosas <farosas@suse.de>, qemu-devel@nongnu.org","Cc":"Peter Xu <peterx@redhat.com>, David Hildenbrand <david@redhat.com>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Eduardo Habkost <eduardo@habkost.net>,\n Philippe Mathieu-Daude <philmd@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>, \"Daniel P. Berrange\"\n <berrange@redhat.com>, Markus Armbruster <armbru@redhat.com>","References":"<1719776434-435013-1-git-send-email-steven.sistare@oracle.com>\n <1719776434-435013-4-git-send-email-steven.sistare@oracle.com>\n <87v813278d.fsf@suse.de>","Content-Language":"en-US","From":"Steven Sistare <steven.sistare@oracle.com>","Organization":"Oracle Corporation","In-Reply-To":"<87v813278d.fsf@suse.de>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"LO4P123CA0380.GBRP123.PROD.OUTLOOK.COM\n (2603:10a6:600:18f::7) To IA1PR10MB7447.namprd10.prod.outlook.com\n (2603:10b6:208:44c::10)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"IA1PR10MB7447:EE_|CH2PR10MB4341:EE_","X-MS-Office365-Filtering-Correlation-Id":"31746d7a-281d-46ab-0fe2-08dca740f0ca","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|376014|7416014|1800799024|366016;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?5WHFviQ+JnYG5H5t2KvobnUAvQHMp43?=\n\t=?utf-8?q?9Nh2ZDs/KOSjX6nBVG/l/3DaFYKPw1A2ED6IOqzMTEvlGlRQb/iDq+DOm2e0MvOiI?=\n\t=?utf-8?q?GBH0M1qdgqDdVKjjMz6BtLfPsmSKfTfYW8pHdV6dNnCcqvAWVNNROUJQRDdrtPNlu?=\n\t=?utf-8?q?Qwb9nR3iVNo5hpr+SeAF/POMHjLdgXsjGnNDiQadGNnazGQ7cOGGJypVYsjca9+Ne?=\n\t=?utf-8?q?PWxr4IPssO6AVI/eUpBluLycaibJkSbSmqz0rwo1SlAaLvnMo3qhWWYXBNrg3pdR7?=\n\t=?utf-8?q?NcVblbh4YPFlDs9ja4nj9+9a/vms7f/LxIOqkmmlnSlnIEQpcmhayGnCcungqYcb4?=\n\t=?utf-8?q?kzQdZMCsnpPUkS1Uqo8jlBPkRBnETVNqMEGYvwYSCRxWr+ubRsou8siDvWxQT/KIO?=\n\t=?utf-8?q?/Fcz+5EIHwFI5s3LK0RTib+j9OWaxJwjPqlQ5EWRxKph1ngY9qN4yAqpatpiarO/a?=\n\t=?utf-8?q?TC0ttNzsrvENWFwju+ULN+35oJyTYdjl7W9iAqMWDbHpUiMbwvpqzJ9NIbjikAbL0?=\n\t=?utf-8?q?FKKitFy3lNRpT2Sor8FJk0mRzB68kW4DmhHI/wj+oz5nmNAmz/B6BnCaf9JX75NZA?=\n\t=?utf-8?q?+i1MWhFQafNKFk0shOpfVhR/XtThhkAbd/vKT+SM9jG/B4lzEnrtbBcig+0Ta/CNp?=\n\t=?utf-8?q?szz2YjdhyOej9jPg6dbk+OTKRG12n3Yyq3kEVGdDE6DblXQ7LkBP/bRmOiyOSk5M+?=\n\t=?utf-8?q?74GkKcdw7+0FkZoxFDhLlCctz5yjAFgqCdgaEcWDE+Qq75YHm/Sp8xBhRgUVyNkH4?=\n\t=?utf-8?q?5/eHlRwx/ttvI45BDB8s5rmHPhdJwAI8xMroSFTpgFeYdzQz1x3zdBsZ5L+AQvCJ2?=\n\t=?utf-8?q?NApetBCIgvhuWKK6XEnbTq6oYirMIzbxDkDOUj3kBA1Bo1OeC46d4ocodE9DQP++y?=\n\t=?utf-8?q?5ZIIOBuxQrYjrra0KENOrHqHltdUQhbi3BeL5tOZBt8oCWMQ3DGBWmO2zrtV48kV2?=\n\t=?utf-8?q?yN6N0Fajy2FhfG9ugciuUGEg0juWXs858mh57MhWhqFMv9m+mKIEHYMozcrr8Fd8e?=\n\t=?utf-8?q?PBfp/WapkH4X6Al7db82QqCcjsOAehHYu1uYf4npvY1SsmgAi03aSF2R/3xP3X4gT?=\n\t=?utf-8?q?xz922CBPu3S399E8G16F1vo/W+6CNtqZZsCwG8ry3U1+bUvsx8EhJzg4iIjdvLnDE?=\n\t=?utf-8?q?sxLeSO1dQl939R8mOU+F0UgGjmD6CCN+pmYnpzzeELYPk+U5EUohUfBHDJEyUepvm?=\n\t=?utf-8?q?CACjsqkaAWw1IN01y4x+da42majzYIEU/4UuLqxsFMeZ9J97v5ArA+zUu4j9sEau9?=\n\t=?utf-8?q?yN6+rG4uorU2BSPTDZ6s8LObg/oGbQ/CqAQ=3D=3D?=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:IA1PR10MB7447.namprd10.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(376014)(7416014)(1800799024)(366016); DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?99kYQ+1VF6HBwLKTIb/u2gG6ijiq?=\n\t=?utf-8?q?Vbr+vGF+RGBxaYYomUT7Ea8qoeTsD7eyX3c0thCEeO34vqsp23RnrfLiyEdk0hYqg?=\n\t=?utf-8?q?LEjcosK4O6TbhZivBytqidjN/oXvVpCR6BcUqv5uFa7YSUmTQwFcnh5oKX9sro0PM?=\n\t=?utf-8?q?kqlrZwbQzzZagAZC0cz+XQQEnOzJTk77engy9es1ZkobczCXmcTyg5aGK+k7AlS3X?=\n\t=?utf-8?q?0ZqaqozbCShnlXeRaPNUU68Jysx6Y8uyEyu3RXcJ63yl1rfUGenT+8T8184KnF0j2?=\n\t=?utf-8?q?TK9RQu5H2FjSgDsZ8883mJoMgqGrJN3WPC8ENBN8s4q4eLH0GKdjAXF7CfCskS+4P?=\n\t=?utf-8?q?sGH7yTcKhqElKY3+JF77llqPzj0y0HK0fu2cnTBS2Sspzz9oUx4n2v6GlK7LdT7wl?=\n\t=?utf-8?q?5Mq+hkt0mFSWSYU/eZYIswBrpEGpxFCkA8IbQcooHLQDaxWT/58Yk8xpbGGaccIsj?=\n\t=?utf-8?q?p5kl/qX2JJjuG5ecbQ0iEAYkNki8rki62xp9OMW0WLAZSjYlfIkjKCJk+DpolH9+U?=\n\t=?utf-8?q?8ZjPrxsLcAviYR3EldKPV6qSe0aY7i3NP7ZHM9EfeQ76WjEYOjyfEvGbVmUErgrKI?=\n\t=?utf-8?q?BzjrblEjBg0woNgM44ocCFyay4zzG+byki6iwdAALXpH+ePBpsO1NRrkxRANEq8WA?=\n\t=?utf-8?q?1fVoKL1IOREqY+tuhyuZ+ywxSJ0Z64ojDfrsRol1Nx1lMnO2/3wodvZI7n1syeEWR?=\n\t=?utf-8?q?7UMrjBiFZCKTbm109l25ubxPmB/lW3j8vLT9wx1jxJ4oarTemLqWT9ftbqCA8DINo?=\n\t=?utf-8?q?7YSZfwjeYRcOvc1TKhod4XfScAgOtUEX+cbUvl0O5rT4tloZqdX1caTe8OH5IirL+?=\n\t=?utf-8?q?KG47IuQXjx03cOpW8kuS84EFBSSasBcULo2H/jo8M15ON3FqPk7lfnrwNMPxM6j+I?=\n\t=?utf-8?q?OSyfmYQ5rprBvT4bLr/prFrM71DjXHK/85/uyFqdSqSGU6+RytN3mTxyzdCXA+W33?=\n\t=?utf-8?q?eT1sB9u6g31kv+nkjgMJxPR7vcRMkW7syhidzDd6Zc2EFtrF/ZvvZtqxp78ciZ3yz?=\n\t=?utf-8?q?OmeREr+6np0vgKd5VT8EvMZOvICb6C1lQsV1iKaP+P8swNmEeOsUtL7sa+/8lmFh1?=\n\t=?utf-8?q?TEw2IVgp0yz/UTA3GN20Bb4QoGyjDogS187ciDUcPNGoeBvh1A9Lpu/ChhrOK1Z3v?=\n\t=?utf-8?q?oYUw11bgF3TtgeY7td5X8kWSPG0rI+/fGiDcZmD2QLoGiuDHtSjq0t4KZjzVlPbWd?=\n\t=?utf-8?q?Ow3xlvjym0NsJ+UIJzH5xnp5dAqjy/JjnmsZlP8tHMAOO3xbNe2U1wU4uCGI6SAHc?=\n\t=?utf-8?q?2eweSW3aidoUpL7jpsj7gM2IAz8SVoBt/1BkrAa6MBo5wjUc5ojr2cL5FVq3HZ2DW?=\n\t=?utf-8?q?pOn1Ex+KpXbpL7vslH430QgwzCXRChUJzanM29s7iwYn3GMb4AQgl12pEMv54W+Cs?=\n\t=?utf-8?q?O4EJBwrzEQiSZDUrzG6SztyjGOyqoWnwRlBW3edoo0BfyIvvOqHKlp+AQ0Y4dg3k/?=\n\t=?utf-8?q?6SRmfMG2xpS0l6jBmc9Oq38eIO3lhDGNt9fxcEvEiqicUc2Wmjal/ZDY1VZzl68qP?=\n\t=?utf-8?q?ISazMiiVf2XXGaYGBOW/m/dw4bnCgkkEWA=3D=3D?=","X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0":"\n fA/VEk/FPD6udIMhzOEaWxxOJDWugwzjDd/5GE0EG8FVvTplDuSus7NsjKrUP/dLVF3I+hwIhmLlPZimX45+TtSFyAlA9T8V+c3qmr/NLO68385bkx9iJ1YLQrD1fmcPYrXn/bjcnwoUOk7qPgPxlCHeMKpzQ9c6KkvHM2As0SFZOdw02w0ZWmxgXMCPKek95auvaboiLvvWAsW7Xob2zyb5PKFDWbVClij6A0gv8/0V1xymtqNYvS8/2ec1WQkgeBOzgbJ4ei7clfm1NGIyNjqO50ZiGcJyuhET54Agk8h2hKj83cVv8O/wnYw6fwT8Khc8L3MX/+zJFbtmxc6ErU7kV/0Dc2qUoU9mRW+AclkCYFFsOGPJ48PyxOUH19Td9q3u4E0GJ3FI1eG2a0ZEMx1akUu72dpv7IoKm06Co5ybjpDVA5yYeLxgI4dtaobLpLUSlVVJa24xyZI0h7Xp6o9kx9D7p4PLccX0V0mim93EuoWaloKqxmV+LIh9tr/ngZ+M42UHaaRkf1PxwkGCerKMYFbpbglZUamUrxqYlKB9VTWKnsEgEFleziPklENbUVIgUPtQwsHofesvYV5s/IgivauFBYkJJkJ2xaiBYGM=","X-OriginatorOrg":"oracle.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 31746d7a-281d-46ab-0fe2-08dca740f0ca","X-MS-Exchange-CrossTenant-AuthSource":"IA1PR10MB7447.namprd10.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"18 Jul 2024 15:47:34.0601 (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"4e2c6054-71cb-48f1-bd6c-3a9705aca71b","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n BCE4ug3EvzUUK6mpNCK62mitmw55wf4m/MHg/Y/+R+Sa0km68KSTCZTx0f9zWCVGxfM7SQ389N97PSdBwS5Q95rEXREH5ZfjlenzTfSLvzA=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CH2PR10MB4341","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16\n definitions=2024-07-18_11,2024-07-18_01,2024-05-17_01","X-Proofpoint-Spam-Details":"rule=notspam policy=default score=0 adultscore=0\n mlxscore=0 phishscore=0\n suspectscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0\n classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2407110000\n definitions=main-2407180101","X-Proofpoint-GUID":"7I7l8MewFqoVWidavxeyh1vkOM3zuZVw","X-Proofpoint-ORIG-GUID":"7I7l8MewFqoVWidavxeyh1vkOM3zuZVw","Received-SPF":"pass client-ip=205.220.177.32;\n envelope-from=steven.sistare@oracle.com; helo=mx0b-00069f02.pphosted.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]