From nobody Mon Sep 16 19:18:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (BodyHash is different from the expected one); dmarc=fail(p=none dis=none) header.from=nutanix.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1719514118658713.3566549082261; Thu, 27 Jun 2024 11:48:38 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 73E6E1184; Thu, 27 Jun 2024 14:48:37 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id BA80111B0; Thu, 27 Jun 2024 14:48:14 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id EAF1CCDD; Thu, 27 Jun 2024 13:59:39 -0400 (EDT) Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com [148.163.151.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 26BD3A42 for ; Thu, 27 Jun 2024 13:59:39 -0400 (EDT) Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45RB8nNZ020416; Thu, 27 Jun 2024 10:59:38 -0700 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2043.outbound.protection.outlook.com [104.47.55.43]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 3ywx60khe2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Jun 2024 10:59:37 -0700 (PDT) Received: from LV8PR02MB10287.namprd02.prod.outlook.com (2603:10b6:408:1fa::10) by CYYPR02MB9709.namprd02.prod.outlook.com (2603:10b6:930:c1::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Thu, 27 Jun 2024 17:59:35 +0000 Received: from LV8PR02MB10287.namprd02.prod.outlook.com ([fe80::b769:6234:fd94:5054]) by LV8PR02MB10287.namprd02.prod.outlook.com ([fe80::b769:6234:fd94:5054%3]) with mapi id 15.20.7698.025; Thu, 27 Jun 2024 17:59:35 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=proofpoint20171006; bh=Hn6prJJTTISiW KXFGnro70dMMn/YHB74zvH1xIMLMxk=; b=Su8yMmQadzwp4MhsQlQLrFba+5JCL TxdABdMGUaOOnjpgRHPIjiMpwOqAtrI3vV3R7I6aZPMWv7Z3gfn8BFbRy6bPyOE/ WlsCkHug7LQyhhDzuD38gLFOjvswkSazFiXbMAho2wEhqZ4aKQvegICpxaI6UaKP 7yWlvvZi/4PX6R9x679/PFh31DA6OrohlAVxbLoU7p1lRjog93NZYFZ7BivS2jvE EiL7go7BFStTavQ3l/L74LJtN4vV32zGByDsH+d6T1Bl8Y1W4UrShj2eaRVPApDt nZRVzlwBmk4uR9Q467OmBKv/EwTYQJKPLO8QFAY0gMSnXWM3iHbzsdkFw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oR3C9Rio4TCGSIkOEUBo6oFa6k0XXedsiXPcnYC8mYnbg1R9vuh4/7BhR41xv2KKpC0nZU6T7NpomhmyztzX9xIhOa9+wp5e//YZX6vBq1HLlO5SW/enrjD202kFxtgcGgJxjtsVxFXmAPHTMSgkaJagzCaxUu47QU7gpCvFxaAgxiN8J+/N+KhtyOBAa7WHhBUfWw4sjprqk9zOcM7+PV4Sq7DvrpDeCFi7eVBaPTRiTZ5bYJusAWmc+jJrimHe1iAoTYPNzWrl+6UDIoqb9ywzRl++fmhHSDxWlDEPIeBFMnYCPQ4fOb3ekiL44ehKnJstewBJa1H6rtegrVkt9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=Hn6prJJTTISiWKXFGnro70dMMn/YHB74zvH1xIMLMxk=; b=myixtY8WHpSm/ZxKJpLrCPjiYWh7+4TH2eJoCZqdKtPLW1IUMwLdBeeIrDHOq86qvTMF8jKKhrWAWyxpfT7jSSLjLA/MqVQIyoBKG5LDUqmyWKffQGjcCaLxMYuTPjn2SMG1bOS5QRhC6MnM0XwhwoEZlF3j34Vrnj0ECITzSI94/H1BYIT/FxHSfxuxfpuaN1/C5AmulvvRTimghmLZffoqvKfaJuf1azFopcMZBMOxBK3wgkFI5s8ZrOKUyG5rWwfqNLDdoFoSNvhi6wNFpLMp0HuwW7pYWnvStRWkLNWn4khbQy1Q55aRX1UBtHMDr9Zkd2U+8mYnRWAqZYTjLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hn6prJJTTISiWKXFGnro70dMMn/YHB74zvH1xIMLMxk=; b=GSDZDievJ27YKikm+6QRwna5FjQTW6MaFfoA2Td0gFILE0x/ruAyzn5o+JG9l+YeTyOFa5bfjUNc8ztphpgc9Ea7ZEburj+YHQXUqr/uVO/1IPckbdUx7cZv5optR0V078NEgJNUfT7tC0NrboGE9mpKdc3qWejYsUynGLndChNAiwr+fVeMNztVRUImuOnJnfa0iwWrkC4NLkduZodoBqJT9hFbuzObPTvDKcokk9QJ+M++rVSggsjm/HPustmxItaNyieQKWs4ulUG/RhxGvq6D4PLIkbm78IysneRLr+g3DZzC57Ljq8MJXEhUlJah+ginVQkz7gw99hAl+XN2w== From: Jon Kohler To: devel@lists.libvirt.org Subject: [PATCH] qemu: fix switchover-ack regression for old qemu Date: Thu, 27 Jun 2024 11:11:56 -0700 Message-ID: <20240627181158.2369752-1-jon@nutanix.com> X-Mailer: git-send-email 2.43.0 X-ClientProxiedBy: BY5PR04CA0030.namprd04.prod.outlook.com (2603:10b6:a03:1d0::40) To LV8PR02MB10287.namprd02.prod.outlook.com (2603:10b6:408:1fa::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV8PR02MB10287:EE_|CYYPR02MB9709:EE_ X-MS-Office365-Filtering-Correlation-Id: 825a3272-9a3d-43b5-63a4-08dc96d2e783 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|366016|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?T3wyLHu1wg7KlqGDLR4rdhHJN21tIac1iUDWBbMyRR3hRwjJDTNH1RUg4bCd?= =?us-ascii?Q?42fRZ7hqwOjdxnII/2hadi4aKAxX4ohoxd7jTazdJJt0kIqVgQ6xJc6gIldd?= =?us-ascii?Q?jeDnqUdzkHy1cFZfnea7BickgtD2y0fJMgNWBHMlQ33OTjs2mOOow3ut7QS9?= =?us-ascii?Q?q29SUh+Rp6ykzqefJzltvE01rTsnDWxiFat5yvaZ1yJjeGw1wxI+2y+P9PIv?= =?us-ascii?Q?4R4Gyfs8SObPxzu2zlApUjzPJWJwsL0+nu0OBOmBboA8aqt9L36BpDu63CGx?= =?us-ascii?Q?+ooVx6Mdc9rrz/u0xKPV850NncBHQfAlbJvf1+muM7kfmTRJ5o/yG2Gkz9hI?= =?us-ascii?Q?3oGjiYEyjRnAZ8K8+pOZP8iow8PnKJSLELU1JDPpAp3r/Wev6SjN7HurPuvs?= =?us-ascii?Q?Bj1kXGOFtn9xWxX/+pZbg7ih1EnGoGSjCr4PdIQU9OwZtQff60M26Fy36cgR?= =?us-ascii?Q?3YwyDS5F9N1dF3eX3BjtH3y6xLLBVOEgHLDWZ3/kfQZ/reacdMqY1SPDSYAL?= =?us-ascii?Q?Vbfm7fM4cwLY23zb/+8Tm2CZrTVgkhGOwCc6LnewXDB9MFd+rp7vN0Wz+8Z5?= =?us-ascii?Q?P+TtG/Dmufeguh9sUs1BpqM8tI0l2Vz3KhS95Ito3dXt1GXE7szJ6AfR3dpn?= =?us-ascii?Q?fu9RRCBPlCUKuzJAtZ8lhFkvq1g/ZbSRjsnM6wf3BDVaVtHFIaDeXuLAAbu2?= =?us-ascii?Q?9x6wTGGifguzsZX4ZQH2IhJQlnIQSlxngS0X49T283HxGfABuhjaItcpOjXV?= =?us-ascii?Q?dxjQjG8IO8YrruL6b5c/JT9arqk7dYfvkVs2Vwuq+XkUX+x+q2C67t/1aV8a?= =?us-ascii?Q?FAa5be8TJILXNPPcIZ9dGRtbBYbEfUZNKRUK5OPoXCuINtRpPvzFJ76cjdoi?= =?us-ascii?Q?Ww8Rdwxc7i9etlhIFxxXwqy+GTnGw7j2e4Mp0KUXtP2ctNzmIr9vWJ+kKdIB?= =?us-ascii?Q?IbcMC/JNpq8dMCERYOfVPRduJuoCUO/OUH7pk/zyRBSQVYHaqWoWQNbM8zAc?= =?us-ascii?Q?M0MGaupaJYETdEZhsMQPgbbUJpKtlLyOb2St7asqLJyYlL+3CIJqNZCbVN5P?= =?us-ascii?Q?SNX3iAX+mFv/mp9bd+0k2p7cBattOjoyadW0fBuodlKoRkw9ZIkxt88bxk3u?= =?us-ascii?Q?iPmHvc6C8nOK/CbDxcET1NKq/zd8tbqacYBqYLGzljBKVPUrwoVknw/4Lm+d?= =?us-ascii?Q?7W3Tfz2bqmVCs0QlmMJXoXpzmJfyPybJfl1gVpQX+45kcEkm3oZ/AvxDxU9E?= =?us-ascii?Q?StlGQRZRuLlPYRbnjGEAxxnJ1WtgnwaqVU7hrNa/nG3vlr8m9yOQ/RLas01m?= =?us-ascii?Q?W5EJIk6E82ja0vZbV08nSyLI2icgib9NsmLnSpbrDyZWAzcbDBgaebZ4doOm?= =?us-ascii?Q?5GGDRxHz/4gkl+K3u3UA9RWAcsf4F4J+2lRh+vcv8bEpPJAbyA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR02MB10287.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(366016)(376014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+o2SIHkfuN0WZkSBQGWa0/LR3J4WGGuxDvEC+cC4dJordUjUXaL5HBzj1Yoa?= =?us-ascii?Q?/tvilj5ccwVkiLNa+wbJEMy7oFBU0zcZymZV/gBxgXG7Nh8MT+YbMzpiaRD7?= =?us-ascii?Q?/yV38khS1/kYETpxy4yut3FxxkngzJTlZJ6OgMc3QMcWEwQeW250/r1VtcaR?= =?us-ascii?Q?I9njD4VJisM6GEkXMzhzF7G6BRYiXmd7xUsI8uMJa7Ccz9ad+fhHcgqsuV0V?= =?us-ascii?Q?yc/aiRhlC8l9W5FDZl4xaXTQJB27pAHufAxRLXzPiDUMrGyuBq3on3TFsJlA?= =?us-ascii?Q?HpCvwJFgskrmM/ivJWZ14iAqzkcWoXNsnYuLSHt25F7L+ZnmmOXHSVxQF8ua?= =?us-ascii?Q?QkqbW00SLReoJGaiJUMMY7y3fNuWmjQ9gbiG/XETCrZIkoKWDNRjcwDYWx+o?= =?us-ascii?Q?Bd4Ai9JHF8dzT97eirvRSx1gsgdCnnozKj5gIRAYhUGgj1dDAsFJxXmTz8OF?= =?us-ascii?Q?+CWxHD4L//0RexHrd48FDGYJkCZ/PK7VetKSjIwAfL6R8LLcYON1NPsiUsOs?= =?us-ascii?Q?dKfMk3wiHiFylLTTqyAVDszSqB9ciIXBKF0gs0viz+ely43FWx53w4EeEQ9b?= =?us-ascii?Q?fWcH3F4uSYTwpfMYWiN0i/TKzi2yMES+I1M6i5IaPrO2uPN1ISH57afDARG1?= =?us-ascii?Q?o9bDfoqd0YRCi5J4f3iaYFwJLDjHbVoyHzgPPu060YOP0MCI6sPLwtanHrTZ?= =?us-ascii?Q?06+abxvYbTe3PhPVa+vy2sAhFIEdITQphBHqtLke4SlFzD5Hw0IINaxUqVIb?= =?us-ascii?Q?dDQOJuIlezT0mqCsrlRt336YTSfBEnrj4ItDO9uSKTF2y4qqdfZu+u0NJrN0?= =?us-ascii?Q?8EZ4ExWvPxgso2qOW13K35M6Mtr843LgDc+cXv4CKLgEOGTmYVhVU/uDT9xt?= =?us-ascii?Q?KLOzJepJicl1B3aRoqGnJ6FmNyTP6/OnJEcceFv1k7THrGB8VaIb/ufwFk7Z?= =?us-ascii?Q?E/0RK0nvQZhBUGeFBK4J+yQLNVTnCSTxKmtR3YJcaSZABoIOPkm540+peZuu?= =?us-ascii?Q?etlaTkIuHFKF8TjdX5pDu3y+2smENCAbjhBsIlJR97nduxbSHGC7EL+JDBXv?= =?us-ascii?Q?HixwId+FtDbLGhhmBIyU/Hi6iynLBBaXDtJ+Cv1GHnxBMzO8m14xKq4C5b4X?= =?us-ascii?Q?u4hFuyuEin5UmfEYrKHcF1pYqQ1c/U9Te1xv6QzvzEbS5pyhsVcfvIw6RK5i?= =?us-ascii?Q?XaF5mWoIgrhx02Fh22MFBoTAgtCa4kW7ZsaRAEfRXBAOMcxQqFJm74zcZTHH?= =?us-ascii?Q?/dhSs9+w34SggfdOLU3IqBVJs6s9d3lwpoo7h6BCk2uKuVfTz+d5jZxAJO8p?= =?us-ascii?Q?IADvSMtgSc/1OH7vBSVssvLApWVm8kLf/RzKGmMQDV3fk3X5j5iZgCEGQzU8?= =?us-ascii?Q?3VtqQSN9Z4O7TWWZr7tQn91FuP3P2NUD0p3QMtYS7FnD/kZzNnCE3FV/xuEH?= =?us-ascii?Q?z9g29LzZc3JiTGECFqXBhc8cnuufzKUCgIFKtV8R8A/GVUfAVjdvxcy/Ghe+?= =?us-ascii?Q?rx0cBSJ+Zl4DoXiQmJ4fNK8+w2CHNQ54xSGu9OT39KHjnPBaPSqwfW3R46E3?= =?us-ascii?Q?6YBXx6wP8klXBQbM+NoYAfPDHnqrxIjf9wUuaCdZ0J6ZxpyyCeZBzJ0I5h+H?= =?us-ascii?Q?kg=3D=3D?= X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 825a3272-9a3d-43b5-63a4-08dc96d2e783 X-MS-Exchange-CrossTenant-AuthSource: LV8PR02MB10287.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2024 17:59:35.2205 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iLyJceExkCWKbYFx2jNYp0d242vh+e6sCk12zUhD8+U0YctiDjx4xJTDLC0fzL9EkW4RrA5ZewfwJUgXha3UyMxNtypTj4GeiKdH8FOQHC8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR02MB9709 X-Proofpoint-ORIG-GUID: XV3ksxsP1320uJ0u48gLov404N5wR7RA X-Proofpoint-GUID: XV3ksxsP1320uJ0u48gLov404N5wR7RA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-27_13,2024-06-27_03,2024-05-17_01 X-Proofpoint-Spam-Reason: safe Content-Transfer-Encoding: quoted-printable X-MailFrom: jon@nutanix.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0 Message-ID-Hash: LTENLAIV2PZMQ5JDI37AW3TOH3JWP7IQ X-Message-ID-Hash: LTENLAIV2PZMQ5JDI37AW3TOH3JWP7IQ X-Mailman-Approved-At: Thu, 27 Jun 2024 18:48:12 -0400 CC: Jon Kohler , Avihai Horon , Jiri Denemark , Markus Armbruster , Peter Xu , YangHang Liu X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1719514120416100001 Content-Type: text/plain; charset="utf-8" When enabling switchover-ack on qemu from libvirt, the .party value was set to both source and target; however, qemuMigrationParamsCheck() only takes that into account to validate that the remote side of the migration supports the flag if it is marked optional or auto/always on. In the case of switchover-ack, when enabled on only the dst and not the src, the migration will fail if the src qemu does not support switchover-ack, as the dst qemu will issue a switchover-ack msg: qemu/migration/savevm.c -> loadvm_process_command -> migrate_send_rp_switchover_ack(mis) -> migrate_send_rp_message(mis, MIG_RP_MSG_SWITCHOVER_ACK, 0, NULL) Since the src qemu doesn't understand messages with header_type =3D=3D MIG_RP_MSG_SWITCHOVER_ACK, qemu will kill the migration with error: qemu-kvm: RP: Received invalid message 0x0007 length 0x0000 qemu-kvm: Unable to write to socket: Bad file descriptor Looking at the original commit [1] for optional migration capabilities, it seems that the spirit of optional handling was to enhance a given existing capability where possible. Given that switchover-ack exclusively depends on return-path, adding it as optional to that cap feels right. [1] 61e34b08568 ("qemu: Add support for optional migration capabilities") Fixes: 1cc7737f69e ("qemu: add support for qemu switchover-ack") Signed-off-by: Jon Kohler Cc: Alex Williamson Cc: Avihai Horon Cc: Jiri Denemark Cc: Markus Armbruster Cc: Peter Xu Cc: YangHang Liu Reviewed-by: Jiri Denemark --- src/qemu/qemu_migration_params.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 9593b6ba65..98822012cc 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -210,17 +210,13 @@ static const qemuMigrationParamsFlagMapItem qemuMigra= tionParamsFlagMap[] =3D { {.match =3D QEMU_MIGRATION_FLAG_FORBIDDEN, .flag =3D VIR_MIGRATE_TUNNELLED, .cap =3D QEMU_MIGRATION_CAP_RETURN_PATH, + .optional =3D QEMU_MIGRATION_CAP_SWITCHOVER_ACK, .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, =20 {.match =3D QEMU_MIGRATION_FLAG_REQUIRED, .flag =3D VIR_MIGRATE_ZEROCOPY, .cap =3D QEMU_MIGRATION_CAP_ZERO_COPY_SEND, .party =3D QEMU_MIGRATION_SOURCE}, - - {.match =3D QEMU_MIGRATION_FLAG_FORBIDDEN, - .flag =3D VIR_MIGRATE_TUNNELLED, - .cap =3D QEMU_MIGRATION_CAP_SWITCHOVER_ACK, - .party =3D QEMU_MIGRATION_SOURCE | QEMU_MIGRATION_DESTINATION}, }; =20 /* Translation from VIR_MIGRATE_PARAM_* typed parameters to --=20 2.43.0