From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446522; cv=none; d=zohomail.com; s=zohoarc; b=B++p0cdtjeisaCzcOa4cgQUSj0kv6H6PaEJkbxcqxmwNksR0TDUJS3WKA4VBF9lkzx4GXGL5RfPeNbrFAuSnQ4Y9MHE1sSthK2sqm9mLWTPotwlQYuAD+R0uDAzUtT/wjQN7wHiYWQs0dOzDZhQ/B+5p3a1vDUF/rJUR+dIjMf0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446522; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=HwK2p4T1L+s5e+s9n+9hT46e4+ZnKxyeq7tjYkZiYtk=; b=S3tUVZkhw/cgp7Iw5BpLbPfLQOdGfENVYKqPSu/UJ24sf9RvYK2f+fXYxRc46TQInY1HNRApMlD9COt9VHkjxG2k3FDRBAXuCWXwHT6agpLdB99YzqtNQ8OklP+kSR9566FwJShCsI90qkVJ7+Qpeh4xno3hAkIgtQF9/OhUJwg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446522295729.3014529704352; Mon, 2 Mar 2026 02:15:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Ha-0004ta-Dv; Mon, 02 Mar 2026 05:13:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rr-Qm for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:40 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00061x-1h for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:38 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M2xvy-1vy7Gs15zw-0087EQ for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446414; x=1773051214; i=lukasstraub2@web.de; bh=HwK2p4T1L+s5e+s9n+9hT46e4+ZnKxyeq7tjYkZiYtk=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=ADfR5YCD+99m/4M6kdabq1+iBi2O7/Ao64a30Uy0znoIvIYP7B07ZFJot9ni19F8 g5T54IYzXr+6GDyna2r3VIbzFOF5K/xiJIiVwU/S49WS6Wk2pcjyBDMFk0oAj0oso OQ5iNz7rZiIb0kfrLFndULK8euIiiLx6ezK+XuzK4XyrN72gX97HQ+Jx1iiqgcaQt L/dpJFgS8qfrCaN2iajQOh6ES+02e/Fn4jr4Zs7DX50SRCLhO1sCNFUy9Qyky/xwj YWlK5HEwtmUOUm/XU0VCDS4/YiFG3/hJxPyWH9RI4BnDtlV/u38iWyUMciTnD6u5h oktO6ysEyIcR+qH3uQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 01/21] MAINTAINERS: Add myself as maintainer for COLO migration framework Date: Mon, 2 Mar 2026 11:13:12 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-1-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=637; i=lukasstraub2@web.de; h=from:subject:message-id; bh=1tZjB/3/ppKqe9sB1vbDXigu3FezuQVf4cS6OWdEReY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAEC2QoKCl7LhSRpIQjqxUsFUhcDfd0/DxYT Fl1Cd9eLy+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBAAKCRA1qwsonF2y WBuED/wPZu//QtxmhUqQLI7BMaLQoRJlqu1rI3IN9kNTjEaYoC5WSEHK2oSbLGfaOiA8rpTFrc6 kccObG8jN9igncl9gaVAb4anxYnjZhX569WoVFhE/ntSzg9gcrjab3Qoe0oVS0vPNMBzWb68WRh sHFiStsbttP6oA37DKgYSBIBD48ClQpEP5BGv2xX0Seq2XmXq6ty7a7IZi632lAHrHNgm9mZEyW xUA0gU7xjWdtNqqjsMLBhLGJ/S5AHjCFXdPl/SK/WGAhh8Xy/xcrtBehELIeYDVLoCi6U+9qQrB P5upQlJSrAridgs7dQd4oXfrIza/RiQgTTflfIVrrIb6JBq3roMmhBpirxER1Ij7tyvjSoTkOce o7l12LylN5EufXLSrvuBgvIL9F3nis/ljEwfwbMI7xwM8w72M0r0Oz/iDjnMDkd0nM9gzE3m0WG Hj0afMW/9dekF2e9yT2JN1h1IdI4RRhYUZBNW5dB4KbEnsj6PGSv0Y0qdRZPMTIKIriCv/MtxF7 eTxvKjUayvPlMSyoIHz7Zq0crX/jxLeadBI7iSvj1rHA0Rgq0rH+mn3EUwAxy9FmgwdkDXANo6Q 6bTOePm1OQXyRot3FgEBS5nm5/ZQuc8srpANF1LuXvaDYMz9r+uJ8ViVqC4fgRejhNvlIi7INt0 LpWhwHi1wizf9GQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:i5nH4FsM2xz8ouqS+aAWMDeuzbjNGsb68C6HmFPICImy4oE+vV4 HUgi/vkm8nGdXdC/iSk20pIC5sbcYYUr0mSN0/h5HwGCWglNbiKJxhEXAgQ1HDlaRjiXXJq qarVMYVsPKN2f0gmrR5Eu8a6TmSyhZRQ4+oG6CL/DZqqBJqxoVrY0pDaXCyJlcPw2o1C9VX mWVOKYlvVFrqGXJ2CiLjA== UI-OutboundReport: notjunk:1;M01:P0:RyfQLX/H7VA=;lwY8hXXt6zHKeK3/XaJm6fgeOkc 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446523241158500 I am ready to maintain it. Reviewed-by: Peter Xu Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 606b16762cf2ba24d6bd8bb72421db1325bb1908..ff592384b366acc823f19a6596e= a8f32446763b2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3870,6 +3870,7 @@ F: qapi/yank.json =20 COLO Framework M: Hailiang Zhang +M: Lukas Straub S: Maintained F: migration/colo* F: include/migration/colo.h --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446527; cv=none; d=zohomail.com; s=zohoarc; b=Q74Q/W7nY3JgpP7UI27BT1xcoZcN/SLPL3Pd7Fhh+mAhAuWf4AKqmtOBgkD3godPhIPDWa70uun9xj/Nt0MUtJneAq49Sxn/bD/pe7TgvKu0UEIeI+8XCakdVV8P9MjBHj7zPA2hPz9YIRQyMu5/e0Yjx4h7kmd6loBnMa0ShOk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446527; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ulLSVe9J/4FxIZugf2W3Tsb5eFQh8fOd29S7Dgc9JTM=; b=PIxQeP/3jd/d9le7xInUrkhLHNYcPEFpEN9iGR2OddeUCXPjaqlLZQpuVkRJ2WUvyuoEeHLZC7QmBdEfEJw2S2vUykCxI7iusNG+E4HdiDmZzKbLqoSZDyK/2eo+lsq859Q9JcDFZeanqIkSyFb8K99dJ61YAhK3v2yvAMecVhc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446527827506.7714776910814; Mon, 2 Mar 2026 02:15:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hu-000515-Kl; Mon, 02 Mar 2026 05:14:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rs-Qn for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:40 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HP-00061y-UY for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:38 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MoeY7-1vLScB1awb-00kFXb for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446414; x=1773051214; i=lukasstraub2@web.de; bh=ulLSVe9J/4FxIZugf2W3Tsb5eFQh8fOd29S7Dgc9JTM=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=UFH/f0o6nZ11+8Y3wm8KK5sLsv0k2WkzqjH1fkkukHvdRStMedS5f84D3xItQxpY 1aHYAbNToB9D9q/Bd/YBUZi3N38HoKPg0lXsXElPZIberK1OMisSQsE1mVCiuIvrd SYy/d3Mqf/+WqM+KdOlr8gItX6NIEy4K8Du2XFGVlSJHXdi3OGG/hl7oHxcDX1/pW JhaRkTcnI9/egjIlz4/XoapPUuyweKahgWV4LXxuVP3bfKfrWA47QZMxM8VMnGoFT aGKDQ0WFLKMVLqc5CD6FuHiOwOlNDr22jR6a/8TjjqFr9kc1iZ5KpqYjRUSb115ow Ezt0eUq8SN7ZIXYZUg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 02/21] MAINTAINERS: Remove Hailiang Zhang from COLO migration framework Date: Mon, 2 Mar 2026 11:13:13 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-2-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=747; i=lukasstraub2@web.de; h=from:subject:message-id; bh=KCRVBGcCfPDGLbGpOm74X3+VG1Zpq3Yt87JPJ+cVEVQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAEISbYRup1EUrmTlq1XH1KXNzle0+Ru8RUt C/+10TnKCeJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBAAKCRA1qwsonF2y WGA6EACkAIv7vEyeZCV/ye5nirYmM1DOl5B4SYWJrIQ9h3Nb1ZgsxVokdkXsJduGAcLEKNp5zbF /8oVRjdWEvt/vvAVoWpihp3AAwp916wuG2iTvQ4b62xWrieKxz8i5xd19HBE9POPKrQc2MN3vHs or8I2sZLeCnFEDBQd9EtvCz0OdLO2hzme9YzSueTKLV8nUKsIVeN89XN8tu5Lr/RKImYq1gngYI c30XpCB9kY6ddA0Iw/zeTOHOoN1U67a9lNpt2ApG1UWo1fGsatdfYqYwyDmbyqk3bFupDr2bwwe 82RWc/QEBr4HlYRHES3LsqfoYWaRYDpI29mfopEVlfMCywf1fLHK2jGAHGWc15x+bpR8YR+Lqc1 eHo1ArfBjrRwDKFChSD8IyomSAZ4UnUV3EKCAv7+zBH7SBizFUYHu49pdiuGeuLpADqNnLZfXXi l3gt/3nwXLf+bs8knjgDfyAiQ5uyH3BTzhJ6d3UaGkHlh6Gh+A1Ady4l0T1v8n2iDHNoxheeFqa CM/DyN3nXKwUoGnwy2pphSgFyv6c+Ce8yUP00AkMll450ltVKyKiSPCwWL16l4GGMXlzE74pOrY UGQEYtB347RM2sksAtb8U8KI7ABusdAIqISC6UdQR0u7XyalyqWq7S04Um0IQooqI3m5DNJesAi CKossrM26gmn2mA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:CYsp2I3eYYz47HKzsMys2oxf6xXtKmwSlTRKEc90JPGTUBDjDrj UoeGVkCqPJPjpGQ+gkIyKoGFfTM3kVxvfwCx6pKiFBk2LBrJXpB/EbHpIshRdJFJ2Ea7xFo avAvjb+PDm+XCUXTzc5R+SiyoVWPrdIkY98eG5gOsngp6kuLbwoaeo4m0Zj3ySrHkOXh+dQ z/yLRmcYdIPzu5mVuNk+g== UI-OutboundReport: notjunk:1;M01:P0:+4/boquw/QY=;X4MV3a1mk/p0vRNXQDJ8rj6NOO1 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 fXht58hv7UPAUfryh7t8z5MdfWUBGCn+YnenI1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446529270158500 His last email to the mailing list is from December 2021: https://lore.kernel.org/qemu-devel/20211214075424.6920-1-zhanghailiang@xfus= ion.com/ Reviewed-by: Peter Xu Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index ff592384b366acc823f19a6596ea8f32446763b2..aa8f795783ba936ce2521e08aac= a8de4a112ed33 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3869,7 +3869,6 @@ F: include/qemu/yank.h F: qapi/yank.json =20 COLO Framework -M: Hailiang Zhang M: Lukas Straub S: Maintained F: migration/colo* --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446654; cv=none; d=zohomail.com; s=zohoarc; b=eqLq65evyKgLy/Q/buhsxWOIo+554UAmo+rizltp7h4KUuRmdoM6V5KRWGAnDDsROWCFbkUUFBYoJgGWnMu95ZA9YcIJ9esORRphzBgGu8jF9IuM6XtQp1pE55GRuV8Cpn6O1xMNvb9xQchuTtuhJGgBhahFZRupBQwCxDEPZI8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446654; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=w7yoLFLxOPrYAjZU0Xno21H3kl0o95xRyRJ/F9GznRU=; b=OLT6yPwXjKLMsCx9Zqd7t/If6+RFGkSfQiw3jNgIXFnFuhN7csgjMDoaLlav1st3/2bT+bpIBWT0BD2SmGwWyFLaMa9JOXMyU1b9EDJvRik9Z2rDux00DDsSAjOhrzdvKjUiXTPfW/iEciFivVltH9jQNKrLqSe7wnJGb7esBK8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446654185646.7527922415256; Mon, 2 Mar 2026 02:17:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hs-0004zO-64; Mon, 02 Mar 2026 05:14:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rp-QA for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:40 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-000621-1S for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:38 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1McIkg-1vP3VC22Iu-00hB06 for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446414; x=1773051214; i=lukasstraub2@web.de; bh=w7yoLFLxOPrYAjZU0Xno21H3kl0o95xRyRJ/F9GznRU=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Ofy3ghbrMjpuPryXg6GNcVf6sQyiFtDeZ6J/yfWl8PF8GTgqay3Z/LLa5S9o736W C6Z/ld8LkHSqorJShLD353GgLGi/XkCC3ip4129jEJutClsEoReZ3ZiTtE+kvaBD4 pQvmGWXcK6Oufxco3hMElQ2VYXe0mtGXQbs7DTsXW68ZCZ5FhG5ZQI/XAT7NK+rvY NBDul9cMqE/Wact3+Fkg/2C3j2xnRPi2ZxO+qlWmcOXB9VpJltU9eB3fMdITljY10 Fz24wL3CN577BEDADhUlT+cm/5chOFgogQWRgeYyZ0NTWcElx6lckRud5ihrYSg+g G+Ugaj3PPzePu+JOYg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 03/21] colo: Setup ram cache in normal migration path Date: Mon, 2 Mar 2026 11:13:14 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-3-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2754; i=lukasstraub2@web.de; h=from:subject:message-id; bh=bZqP64D7rElL++ZH8EUI9LK8uvlG56Ai3ztis+On3P4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAEVmhdzxpzDCFQwPTXmCYOdDJiYV2vim568 E2Rx/T+gIWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBAAKCRA1qwsonF2y WP1TD/9+3htYJH/40x1aQSKhhtRvxC0YcxW6OeTrhH9c7i+LW4fhks1KgWcgDqA68krn8keigCJ ot0VMBWo5bDYfBgwCNLcreMCZh4hiBs5xIymv6vLUN+a/IrXP+KHR7J1XCrA+38nBTuLBzaSA0Y zJMF5pztB124yw3pIkLcJprGQy1vyqgcqSGTUO/Di3nNI8p0sNe+cxOklV41drDVQTh1VYQcsBz ykaTEaUwTHav7HL3TsLxuCwZpOSDrbGpbUDpieW/2G5mgqlvQHnUSW36Hzzx2qpqLizGkTr5PCt +L9Dc05aYWiGaT0SksLHVgx8Yb/Q2gR08psSaKQnXPLQjlGXJDITzuh5u08e7X2IhMq+bMVVFR6 p8oL1ahBjW1h99vm1zxsrCwIChxUdggU9TgtcwJc85zXp1cGps9iz/2fKU9LUVf8Phkn0C+U3S3 HGMoRZitXo7JCLETj2vR+h33d9F1jTTtgLTQ9ad4QmHE54Kh7F5Jp3zONJ0BJHEHXEnoDsKOS39 z20Xwdx8H4zZxaEVkdNEvaJSPeWGIeQrQMDWEHRR4IUbFjAeKJxZx6MR9sTeQnmQwbZE2P0mB9b jydMuTylb9MNvCyWIN58z4BOjxu9BgLtORMYpr1Xjo8e6IIgaSiK1wtEhmOfqSnIBDjY/5PvE/G ld0+SfpJ6gck6Bw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:eD8Ovf+J9Z0WU6pZF0Vsm6dYVWeh7smnv2QR7yyKyZInCqho9i+ fGkoKoKwiOcj5P1inh62CUrLIqq68uubERRTD+rGcEuH/UIbXa0GI5vQV7NiQd4c5uzBez/ kvU1XQQab0EjbonP8+/fSVyhuXgTnP/kqlNJ0eFa5KzXxQovWXPKFoDXuxES6suFud3YiZk bszepnfZR+8OXxWTbWUSA== UI-OutboundReport: notjunk:1;M01:P0:R3zT0kodrhA=;XpCPy3z9grOLdKqcXs7T3x2r89M 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 pqZt4eNr59h/KbB2U= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446655962158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Use migrate_colo() to initialize the ram cache in the normal migration path. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/migration.c | 18 ++++++++++++++---- migration/savevm.c | 14 +------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index a5b0465ed30cb812cb294ab901c7a37fe6157dc6..c2b9621190f8678ac6b32d6794d= 9bcb6ffa5e402 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -630,10 +630,6 @@ int migration_incoming_enable_colo(Error **errp) return -EINVAL; } =20 - if (ram_block_discard_disable(true)) { - error_setg(errp, "COLO: cannot disable RAM discard"); - return -EBUSY; - } migration_colo_enabled =3D true; return 0; } @@ -770,6 +766,20 @@ process_incoming_migration_co(void *opaque) =20 assert(mis->from_src_file); =20 + if (migrate_colo()) { + if (ram_block_discard_disable(true)) { + error_setg(&local_err, "COLO: cannot disable RAM discard"); + goto fail; + } + + ret =3D colo_init_ram_cache(&local_err); + if (ret) { + error_prepend(&local_err, "failed to init colo RAM cache: %d: = ", + ret); + goto fail; + } + } + mis->largest_page_size =3D qemu_ram_pagesize_largest(); postcopy_state_set(POSTCOPY_INCOMING_NONE); migrate_set_state(&mis->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 3a16c467b25b8d93b7d40bd0db751158e0278b4f..b88851cdb7974314b8481646a1d= d19642887f210 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2427,19 +2427,7 @@ static int loadvm_process_enable_colo(MigrationIncom= ingState *mis, Error **errp) { ERRP_GUARD(); - int ret; - - ret =3D migration_incoming_enable_colo(errp); - if (ret < 0) { - return ret; - } - - ret =3D colo_init_ram_cache(errp); - if (ret) { - error_prepend(errp, "failed to init colo RAM cache: %d: ", ret); - migration_incoming_disable_colo(); - } - return ret; + return migration_incoming_enable_colo(errp); } =20 static int loadvm_postcopy_handle_switchover_start(Error **errp) --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446712; cv=none; d=zohomail.com; s=zohoarc; b=LuOTVT80khzqxaZqiN3E6D9tKz0CgLWOZg1en+sEMbbp7BrwJSaJLAtYSg1Zp6/8fABV6ksnb3Epmxf+uhLcW4zDfunvSOQWZBM12DP5Q6/L8ujqUxQ5tCxHJQolcVuL4obiEOI6yN31l4IOSv775UFLu9kwIc+3b6RNNDdHXQw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446712; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=cKo1RcLXnUykLSWo5DXiqn6Y9pPE2FE/DD1aFztALAM=; b=KGAxDNsQIkTexN3RG3SLXrxCDfmokmwRRhJ1L3pKauLDApyeOkG+AgT+0cKKjk3cRV6Na3L7lqcXFmrKPHu+NlDs+acEAhsSauelt+JVT76QFW2l4woy6Wc0miMvMqhaWV16NsTMLtiKIYQI20HlwYoxk29HsHRzRBD11W55+mU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446712281765.5352720182418; Mon, 2 Mar 2026 02:18:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Ht-0004zt-45; Mon, 02 Mar 2026 05:14:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004ry-SD for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-000622-2P for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:39 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MfKtN-1vUqGb2SkN-00by4D for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446414; x=1773051214; i=lukasstraub2@web.de; bh=cKo1RcLXnUykLSWo5DXiqn6Y9pPE2FE/DD1aFztALAM=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=DWrDdj9xHtH3DQUCzQCt5xV4fVK/Ky496eNnGXetKo4YS+OVjmKHCWPqBVBx6u8Z FOxccv1zxg6XqmoFLOxVysHMZFnJEYurXchy1i3ZO9sdp41HraRuDYolPOdFeSLDK 8wonHhBw58MVpClLbsjawvudn03TiekIIufkMAuYOuDmkqKJL2eYvOD3ahtOqXyoW oQosZIYp3zQBzTlW2CPFm3bxIJ7/PI+9KgZz7ov6civzxlfapJBzA8bX+il8KDELy GpqrvUcARaxOKhYECVojAYXRm2uzI3RmBg3giItK9NhB6vEAgiSnFurI8RsW7fkw7 zJhu7hGDa0/wqBnIbw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 04/21] colo: Replace migration_incoming_colo_enabled() with migrate_colo() Date: Mon, 2 Mar 2026 11:13:15 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-4-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3533; i=lukasstraub2@web.de; h=from:subject:message-id; bh=n0JNkGWwDvp69U+jS7cX+vJwFoFOUey0gb5uYJ0EtrM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAF3u0RN+7t45ic/4uzj7czfJHI1m5FoRz4S Y6aiUNvD4yJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WJYED/9i1AiwSr412VxBo/p7JSqs+RojkWko1kBStyfk8dOtHfP3g/XZsdL2+F8o9O2V4zj49RC IuUMJqwmXj0PRjQm4yM7NABvh8A/XjJgEUiBzjSFlIzbOv/km3uVupvc1n/AZcBl2q4+iMF69F+ N1SUQFe5aodqYeYvrRmWTsjI3mywU4NSGvfD74LFW5fzJlcKwqsZw3iTXOw2oYMmwoWO3EGFld5 PzwvJH+sSQmc4ldPcTVPmLaoiVQZ2mIlY5TsyVFXSuAQlbARCDCPNuxCyaME8LVzRN4hpJ4QVWU PIcuajRnhPTt7zRgntmUsE5Ek590l5dxIcADFGXM2EXFpubOa+V6SZbm9xDbcoUy/E26bA2/ooM lQoHs5vwoUPC53D+rdwQujmoiiwasRYc3ZSpJIxBwDilVaBS84zVfCreTIw20U2Rh/t34cQ7HpU +nKnKEwaEhBVmErUUktRvXmEY24W1AMVudPHU4YS10aFv7Uqb3ktpa9tT8gEjYxIw2sfdsQowfI G+jXqyCW45G0GwB5GIeJ0zCiO3K1KINaHBH6irMd8HwCYhtD1eBgN08Sn3yG/K3QcTNt6iUWZrl Y80UvrRXUgAcJ4QQddAXfUnta42JEg7s36JMZ6E4TVYMTd9bkAZxV0df84WLm8Ttodj7rutwxZC sSvac8CN4r5n91A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:k8VmHjz5aSMo4GAzNsrQDx9nQfcvd6ntB5btelUObi9j3EIcuj9 gRCwsoZR/vP+sRVqDs/neKUcWMuNtoeAkhHBk3E4yGe8hktkTmtxN9J+UOr+myLWg9keTa6 Mqj2SetVhEj7/veZaEaPoJ791b0EGCLGCd0e0trE6JzvWayER7Ypurk/zH/dDuSSsi1t7FW /9IqX9Ucw6eTw2NmGvqSg== UI-OutboundReport: notjunk:1;M01:P0:5PBLK6g751M=;lWzvm99d72GSQT5n0nIyOAYZAHS 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 VG1SAp8M65mgGwzVYLUx+nfGe7bD33bAaVJucT Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446714324158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- include/migration/colo.h | 1 - migration/colo.c | 2 +- migration/migration.c | 9 ++------- migration/ram.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index d4fe422e4d335d3bef4f860f56400fcd73287a0e..2496a968cc1ce709f706c0efe57= e4f765f163d3c 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -27,7 +27,6 @@ bool migration_in_colo_state(void); /* loadvm */ int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); -bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/colo.c b/migration/colo.c index f7a5bd3619a49a3b4a8306973de7a4411cc0df58..97a224c39c49ff2269f375db471= 12458cab0b4cb 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -935,7 +935,7 @@ void coroutine_fn colo_incoming_co(void) QemuThread th; =20 assert(bql_locked()); - assert(migration_incoming_colo_enabled()); + assert(migrate_colo()); =20 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO, colo_process_incoming_thread, diff --git a/migration/migration.c b/migration/migration.c index c2b9621190f8678ac6b32d6794d9bcb6ffa5e402..ef6aac53343f2217cd1aa37e493= 483703068d1ff 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, } =20 static bool migration_colo_enabled; -bool migration_incoming_colo_enabled(void) -{ - return migration_colo_enabled; -} - void migration_incoming_disable_colo(void) { ram_block_discard_disable(false); @@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque) } else { runstate_set(RUN_STATE_PAUSED); } - } else if (migration_incoming_colo_enabled()) { + } else if (migrate_colo()) { migration_incoming_disable_colo(); vm_start(); } else { @@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque) goto fail; } =20 - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { /* yield until COLO exit */ colo_incoming_co(); } diff --git a/migration/ram.c b/migration/ram.c index fc7ece2c1a10f34aa5a91f58cbe42ea418d7c078..aebf77aa0b861e00516d6f1090a= ebefdd0d97e54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f) * speed of the migration, but it obviously reduce the downtim= e of * back-up all SVM'S memory in COLO preparing stage. */ - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { if (migration_incoming_in_colo_state()) { /* In COLO stage, put all pages into cache temporarily= */ host =3D colo_cache_from_block_offset(block, addr, tru= e); --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446480; cv=none; d=zohomail.com; s=zohoarc; b=hLDdrWNJciq2RGjXvwXFKkZkCSPVpNExBDnbw7GwWXIrvVpMZZqkMxSOpFJPxhIyQXRTboWlUdAF5751xRuxQ1X9jy6EWQAE0KUnqLnSJhPpyoVVeGvU44r2U2jxxmeZ9UMDlCSeirmAXpOJXz3b0ilI/YIIuloPg2lLIA4XmWk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446480; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=YxFt9a3Q8b3rYvpOCIGfX6fMR4sOddj7ZABbx+/ZiI4=; b=Ueqa+/4TaLsJScmAP1E9qi6e3XhumB41Xeu06M1lTV6onoGqGJMs4gHKklioNYKf2mZ9hEFAJaJnxQvHhOXBzMPW1pEQ7Knj0jgETyA+mp/ko2WzJk1X6OH1r00vRnXB4oHqPi9fXvuYXjaHontP0M2EJMnt8V4Vfj42bacGVkU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177244648027225.466949629735723; Mon, 2 Mar 2026 02:14:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hb-0004uE-KL; Mon, 02 Mar 2026 05:13:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004ru-Rl for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-000624-1a for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:38 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M5QmF-1vvdMp2tXx-005eOB for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446414; x=1773051214; i=lukasstraub2@web.de; bh=YxFt9a3Q8b3rYvpOCIGfX6fMR4sOddj7ZABbx+/ZiI4=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=j/aDB9F1iNpYzSAyTLRbj17xgD+D5inxE4rbpNnLWlAbgWGcRDmhnTN6LhRh3hkR CHNpka/+GG8o7wDi0OyimuTxg+nk/mjbV+faErdEeWB8+RA6rs2RUk24Q95d6fZAA Tj4z2fALHd5x2JPNQAfyKhQuNRzNco882EUIkUIWv9U6iCi0KWcs0lyv9g9TpGLiU IfIlxsarnZ5HeZoMlc5Ty1AzA0zUrp+6xw4to+Gzs60iIQMWhaO54KMPjHVmTEzip gzJexsM/w1PIFQOlsxuvYysiVnOh902yM+5fRDFeAGFTe1HbzQP6NyW3G3GhFhzCy ZUPv+ox+lQDb/Gzsog== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 05/21] colo: Remove ENABLE_COLO savevm command and mark it as deprecated Date: Mon, 2 Mar 2026 11:13:16 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-5-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7085; i=lukasstraub2@web.de; h=from:subject:message-id; bh=PhsGvkNE4e8fxdp+HIj1fvwQLxZniTkG8SQ2HFQ0rRg=; b=owEBbAKT/ZANAwAKATWrCyicXbJYAcsmYgBppWAFRuJnmE21hhMJwFQU3nWBVRgXe70mMFXZy 7mSQULRHayJAjIEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WG0PD/dE04vf+dHKSv7OhdBX7x/Er8XfcLWZXbeMhcJst/j1VumrXztcvTgOJLT+MZvbsBpHLbw OJUsqjB8X+jqa8UZ9YAL35Of9oTCv4+Opf3ssKUc+qoeIYTUrqKrnTez0lvRzZ/ZBB5/W14Khsx FytQwCnPBCNrtolKF0RA6VQSIK4nZIUs7ZnJUyv0p7mXV486zPa/ozeJ9y9YQi6IiHezy7oiIh2 LEvxvns1KeaUOlVVseIfdOCDSgPvFOYp4mTJ++XNfVD6P3poKft8HUPxpLtXQzDDPofQnULxGhJ G66kmATJZe9NsfDM4ftsgISIctOhIwtXZ5FUYy8vB1DG6xcHTcc0/bjLGEDfue+MlbmoqxyDFvW EJfTMFcPcTHlV5QvjDyzB7Tvm76cKXDc9qBisTUcNJLfeYw2iww4QxDMIBPhb5dRBXnO32fupAn QNd/c60uK6pgMEf2U/hqfExe7dt1e8IHESjhizFGbU9ooe1veTsdbjFtAehkfL5pn2eV3rDYcAJ J9+yD+Dt+OQtX8Eq92OAxFQCYIVt3IaVQ6IbNXHQdv6eVj27wBKBbhP39qxVpzNMDBzTsUpOWrt TVWhjbfanmCusjT8r2ww1S1xzQsGSWjqE41ZW7TYy7zLOOkr5qpUG2Estdsx1gv+hPglUgZ5dCZ D2NAs9JiO2xKK X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:j+M4cAIFRVAZoHSaFlkRH3iETHJNTkITWUDkBKaL1zzz9WDx7Nl Sc+u0sHmp5zZdu5HaAAT+KZQbDmDAT4T5IftLjxODU8dF4MuQKVjPveqW6cRDZZvFe71y+6 CI+Y2WHasAvRrq2P4xeQbaZjsDHvJqxIA00j0CYXfiRPhTaDp2D+Zz8wArZhB6Ol8ZO1sqK H85lhfpRldSUH//oAV0fw== UI-OutboundReport: notjunk:1;M01:P0:cGCsaCEm0JI=;CTeouTfh8BdZnxtzEloMllPvSCL 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446481491158500 No need for it anymore now that x-colo capability is required on incoming side. There is also no need to send it for backwards compatibility since we only support COLO with the same version on both sides. We mark the command code as deprecated and now error out if such a unhandled command is encountered in loadvm_process_command(). Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- include/migration/colo.h | 2 -- migration/migration.c | 31 ------------------------------- migration/savevm.c | 25 +++++-------------------- migration/savevm.h | 1 - migration/trace-events | 1 - 5 files changed, 5 insertions(+), 55 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 2496a968cc1ce709f706c0efe57e4f765f163d3c..8f94054a10760d0f2598f080643= f45f9944cf051 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,8 +25,6 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(Error **errp); -void migration_incoming_disable_colo(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/migration.c b/migration/migration.c index ef6aac53343f2217cd1aa37e493483703068d1ff..dba5d6ede579da42693d5270ede= 9660fb145238a 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -604,31 +604,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, return migrate_send_rp_message_req_pages(mis, rb, start); } =20 -static bool migration_colo_enabled; -void migration_incoming_disable_colo(void) -{ - ram_block_discard_disable(false); - migration_colo_enabled =3D false; -} - -int migration_incoming_enable_colo(Error **errp) -{ -#ifndef CONFIG_REPLICATION - error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " - "replication module is not built in"); - return -ENOTSUP; -#endif - - if (!migrate_colo()) { - error_setg(errp, "ENABLE_COLO command come in migration stream" - ", but x-colo capability is not set"); - return -EINVAL; - } - - migration_colo_enabled =3D true; - return 0; -} - void migrate_add_address(SocketAddress *address) { MigrationIncomingState *mis =3D migration_incoming_get_current(); @@ -735,7 +710,6 @@ static void process_incoming_migration_bh(void *opaque) runstate_set(RUN_STATE_PAUSED); } } else if (migrate_colo()) { - migration_incoming_disable_colo(); vm_start(); } else { runstate_set(global_state_get_runstate()); @@ -3534,11 +3508,6 @@ static void *migration_thread(void *opaque) qemu_savevm_send_postcopy_advise(s->to_dst_file); } =20 - if (migrate_colo()) { - /* Notify migration destination that we enable COLO */ - qemu_savevm_send_colo_enable(s->to_dst_file); - } - if (migrate_auto_converge()) { /* Start RAMBlock dirty bitmap sync timer */ cpu_throttle_dirty_sync_timer(true); diff --git a/migration/savevm.c b/migration/savevm.c index b88851cdb7974314b8481646a1dd19642887f210..197c89e0e659b889409c3dc9751= 8920ea9c1824f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -90,7 +90,7 @@ enum qemu_vm_cmd { were previously sent during precopy but are dirty. */ MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream= */ - MIG_CMD_ENABLE_COLO, /* Enable COLO */ + MIG_CMD_DEPRECATED_0, /* Prior to 10.2, used as MIG_CMD_ENABLE_CO= LO */ MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */ MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */ MIG_CMD_SWITCHOVER_START, /* Switchover start notification */ @@ -1103,12 +1103,6 @@ static void qemu_savevm_command_send(QEMUFile *f, qemu_fflush(f); } =20 -void qemu_savevm_send_colo_enable(QEMUFile *f) -{ - trace_savevm_send_colo_enable(); - qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL); -} - void qemu_savevm_send_ping(QEMUFile *f, uint32_t value) { uint32_t buf; @@ -2423,13 +2417,6 @@ static int loadvm_handle_recv_bitmap(MigrationIncomi= ngState *mis, return 0; } =20 -static int loadvm_process_enable_colo(MigrationIncomingState *mis, - Error **errp) -{ - ERRP_GUARD(); - return migration_incoming_enable_colo(errp); -} - static int loadvm_postcopy_handle_switchover_start(Error **errp) { SaveStateEntry *se; @@ -2513,7 +2500,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return ret; } } - break; + return 0; =20 case MIG_CMD_PING: tmp32 =3D qemu_get_be32(f); @@ -2524,7 +2511,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return -1; } migrate_send_rp_pong(mis, tmp32); - break; + return 0; =20 case MIG_CMD_PACKAGED: return loadvm_handle_cmd_packaged(mis, errp); @@ -2548,14 +2535,12 @@ static int loadvm_process_command(QEMUFile *f, Erro= r **errp) case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len, errp); =20 - case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis, errp); - case MIG_CMD_SWITCHOVER_START: return loadvm_postcopy_handle_switchover_start(errp); } =20 - return 0; + error_setg(errp, "MIG_CMD 0x%x deprecated (len 0x%x)", cmd, len); + return -EINVAL; } =20 /* diff --git a/migration/savevm.h b/migration/savevm.h index 2ba0881f3bd28dba10e52e16657a0b67b19bb00b..b3d1e8a13ca9a535a6990560ed2= d64739ebe730e 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -65,7 +65,6 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, c= onst char *name, uint16_t len, uint64_t *start_list, uint64_t *length_list); -void qemu_savevm_send_colo_enable(QEMUFile *f); int qemu_save_device_state(QEMUFile *f, Error **errp); int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); diff --git a/migration/trace-events b/migration/trace-events index 90629f828f80b51500776ae2171724369e194573..60e5087e38beccb98588fdffec7= deff9a7f92c88 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -37,7 +37,6 @@ savevm_send_ping(uint32_t val) "0x%x" savevm_send_postcopy_listen(void) "" savevm_send_postcopy_run(void) "" savevm_send_postcopy_resume(void) "" -savevm_send_colo_enable(void) "" savevm_send_recv_bitmap(char *name) "%s" savevm_send_switchover_start(void) "" savevm_state_setup(void) "" --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446496; cv=none; d=zohomail.com; s=zohoarc; b=FYQ4L5AJ1cUf7j6DEjxbvmTEnvBCvV1zIkmKqBaxXRHRcDQlZhzZ0iJfS0Ory08RsXswLHm+aiNkFXLWO2Af2s8INVlnvYpZQRk+uLXUg/IDTPtFHS/iw3+pMzEAr1trXXnNGzImp7f8lx/KyDjOQDmeLI3xyrOZ5xKbEdmtaAo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446496; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; b=eBg6iTkCfdc9nfypVfrLy2/YNom24Znn9nJTApaf7GXK2cJrjFAgVVJJRgkpHMTKrdb+Vxmv0c1j6NBwU8KnmoGsoY8oRAF1+gOZTSarnwvw1Bo6but0fTHVk+9kKBY9w4rvckuSOWWwTWegHpnttr3WYK/QVIPAgavlep5YXR8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446496459988.1901509472672; Mon, 2 Mar 2026 02:14:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hi-0004wZ-MJ; Mon, 02 Mar 2026 05:13:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rx-SJ for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-000628-R2 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:39 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MZjET-1w9ILZ3KLf-00SJyj for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446414; x=1773051214; i=lukasstraub2@web.de; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=qBf8Z2UJtQ5rLE9ijeQaAl50oG/pgQ6iSKctTCg9VhHceUU81rQquqqYngzhTiJe RAT9NdVlqHzbqaiMYQCU0DxYZnFXXbbOpVqeO85YbtVn7c4uyvSLaPADRGTngymZY edNyUzY6MWcywqH1Vi9xrKXOEa1XdLEN2AU2dBlTlfkd9VU14EPnde0q6hiSkKeNZ c+Km95VXm/gnz13fLWWojD7ilXpHJ5sJ5vHEhdrGXRdezXZAKM66J1Sak0w5nFAQW 4pxqeT2bvuLylzi9mWxlAV+sU02O72AylQEQ7XVbQqGKzOChMz1et90RAyYMqbYDQ IoW2j1d0gikzE2daIA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 06/21] ram: Remove colo special-casing Date: Mon, 2 Mar 2026 11:13:17 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-6-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=lukasstraub2@web.de; h=from:subject:message-id; bh=vR/wp6SYVr5uUbTS+XPqPG4RkOoroNdE8dtNpsOBphM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFRb/ijkis+I9elsfqdxE28fYK3vfTiDfBz 25p7sYqDjuJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WGMDD/9f4FaADDga23W9ZLANwKzShih9/DieXv4cqFsq3eAzhnROWWgX2m0vwr3L1/ZDevhGE86 FPLgjR5zqZLWfXBu/ZODypq8aazOdEMCLEGf3Tc7BnJN7eehAuove16h59Fwzd6SN2dgjFXhLll 4/eOSnr7cWRh8cK4BPWLrlclQOJr4Ar+0eg+Nmi4UVOt7ckNM1CmRmGLVGdOuzYIWMBW7nGIiw0 myiBSc4obD9oDot2qwpNhRU+LKRcTY706REAy6iljnL+GsMhDVz4v2+PEjcV7qdSK436sD3HaJF mWD/bjEQkzvK14S7qXe12Qqui61RUb2FV8D4onwXJByqoHFzwh8y9aIDtdy79Sulv+4CTWvw7g6 HIctgpTh6H2g3wTZo3jw80l3u9coNTsTKw9nXwuAPCfoohq4k9iK9Yslpj5DszdDar/qhPHM551 0bf8nrpxUOMFRomsxVfjro7v271VrOJF0AwEgJQ1jO29oY4o1RRZkFQ74y3rbyxox+NObUyz4ts kb9CKP0ILr6A/+igMOheksUnxxomGksDI6AnxSzfpYekaayc5NwjqUI6aqy76K+FsK1nIfJBcpJ Hh95BgRiO6LIh4A4WOGZQbCiDWAIvNutj82WXB3nRzMh4n+9tP1MRFmVYmo9WoGdKydvaAdmd7a jy3tZ4w8/O1ancQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:uryxbsbcF0BJMh6E3oo+L57oneyE7UqqEp56N11aiBAULixTgWZ gRiA11TgF76lhxCUhzsmdDvQPuwxdHDn7e5z4kp7LvSUTGVDrMLInllQyONMM//jU1dcQys KoVfd/t5pgugF31iwVFT6u/z/J2A2jb/0nv/xrXfQ5F4phsOxgUFkua+XPAQdlq0oOP2VgW UlWAK4EU/X+Kla+3Z9V3A== UI-OutboundReport: notjunk:1;M01:P0:hm90QgHNBFs=;LnQGNHFskg4VBAj8ZZnSdwRYZaK GUtmgaQXJ9BQ+u+YUuopRyV2GvF0MAyoFni5rafbsdI96LD8ssKbMqLszo7RpmamGdfCxlU12 BbrQwfGvaX+lYibWGbXIDaSy7U0vF/awlu/jPGkJC3KpaA5xbKcKM3Q1Mim0+dOiggzRQNjJR N6Srkhh7mNMNx/oBpoYm4V55MPkf2rDcvhbFaPZz/QzokcmxiWt/WVzrtv2r+lU9IGUK0VnC9 F5rer+zDjYFCGsjcoKBd57mOGBXaBx1kvSry7d9v3dAyJHjv4HsuZZEO0lw3GJF2EzW3OmD0A kR8VaJrWwpyMxA+gYKeDIGAUe+14rMBr0L0CmmqFbg49ph2g6gaWYcv1JoW0d3HmIXmmNYTCg wgjArOpoes71i6R+LNlX1Trp/i3MW6Ga4lhF/47XEM5Yt2FJ1OPrujqgDV3Q3ilxurS3gQ9Vu Dv4dyatCkBWivL8mUQZchKRgyqjpLM6KilUPkW/8QIe+s4/Qym/vOX2FpJluw5L92L+FPWLRV HmrMEPh+Qx31qzQd0b5BU611BsArMXUyulPPhSEEYE3XK1t1+idW27fO8TPyjXgXInDutjmIg DXxvlafAEE3E4wbBVKsOUILN2vbcAO9Q7oY7aFcvuFNT0pki9pUih1mhIYelVCfY0KoA2kUqI LN2dYtm31M0q45h3x4VHwu4V6amceJtYzRkB822mGiq57PGQ50hycIYE46zO41o3s5Ae9X1X+ 34f8GYg0NQ1VF6kXluYgoCCQbG9AagT9+0VglE0QDAdhMOxpzKa9KLFeyf8mAnx43W3dAHG3L hr1xQal0jNJVGBrQFDmuEOA5EuZmLysvaz77cjtVlyZA/psBMnG6HTQOTopZLRjc0/v8VKYy/ w+iq9SSPGaCt9pZY8EVHO8kciFfwOFBcBiUWJHyzhNzrjj0xFPua6K+9ClNNq4jICRGgKv6rR 5cpOFGrTTwVKknQ1vVEkyKyHHmNpRcMoI5e+l1W498M6J9bt3tuIIeTMtVQeDCeZ2x8kwlA9L NwXKgiQWrenIH7Ku4h6rZcIGHgvtpycdgnzawvHMQuYQF4ua4Ww3ejVr46XoiqvhThx6ulKBA KuSvnGDlUdkqqgVbnK+Ue9sLYoIazXlNXvuo+/+2MMzjFlsQhmJ2TnSFlCqtLQi3Ztm2NnYYN iuKi6AxMGg43bjq8flAkEemFcGG99YFkcXBlyXYQD4HRiEtOnEZ4VU77C/qroG7Gkpy4fMCuE U3Ys9OQvsaHisVFzVc6+yoE5/IKuY51XFkM41fAONZ2PyO4fepgSxmypMSRckvfdykxSMqdAK ug4c8VvWSE5vLjHP5piro4jkCavziIhrWaybxdcQqHMo4SoQ48LZcyAk/X3XAtLDBqJSRauSj f29GTl7PatZoCv7EzQlXhvQxqyDXemCtyRASeb9uXTy5vAFmCwJJDKeMgVmnc+joGrlsanL3s rZIVaoNmjb7aDPQwLWcNasYUQz67fO26kcRBxTRxudm0a7vE14KCLlCq6KPIsZpSU6KkyRR07 i9XWpoX2bhgm/UhlHuhj+zkoT1OO8tL2fo7Z5pwoysELhpQt7DOTOK6zDzev/Wk4ktCqhRGhR IgnY99yBl7KF7ELJcuLiTeDlHt857VWyDgjf4fbsaz8dpjbZoGJ1wPQ2L8I5WxdWqJE+4jhS0 qicUyGy9lcCGdMN3YmMoYznlkUQXEOWU33fDSsVCXCXGhSgV/ehO61xYMO4FDgeu4262C9SAv J6NKQwzQpuGh0cnddaZ/mvltLNttOf/mR8TaKcG0dsgMud+VJDCpMKFss//6OIyWtcRhU9uRM J7x9AihiH3XiaLjFmN2APxqLeImrqDDuu6KD4Zsb9eTZxi92BzBFBLl0ZCd6cfXaHen0BwAU7 HCKAHTYXPEeQiq3RF+OzNog1FSreQdfUF5G0DbXMRFcXBvhj4evtFLhrWHWZLNd5F8RVZ4LFU mnc60ni+WY63OIoJeQNQPf+74eIPtw4GG/QCCXq+1pM7ZPsnmQqANAyskiwDazIb8PtDb4YHf wL0LxpUncAD07fKyIeg46vNH3xLeOxBWf3sAnAvfoUVCSc99Cy0MrVxpDEANillo9fkYEMil8 x+jErkBto9qBxpa0okgJWGqchldV/ef6KiHkKiBUDqwouuvT54eNaZmqfOqTN2enaMXOR6m3v O/wBVye27RfU0HZg6ce7BgwTGjEVREWuHG7FUKMyZF2EQzwaLg1u+tGjxv85LS8vevj/vu0FM /B1B3TI2fyCXJjJTwJ7H1PnSGJVA9rFAw9HMOL+7mOfo2Nz/WF7uZXIVlSFOsdxAcdckIH34e TvNVI1EeqauYNOlvN8V5Y34iwXllA5x3/faXxynGAqd9rRv3gI5ukIRoTLyQYsLCnCkg+jMHn HDMhSudzXu89PUS0S9ttz64YqJOx9Zj+z6vjmtK5OrNQxh/r/EkgezJfDESHjyIQBXhueXqSI cOFjlRAvW9WWoaxVBQIkezRPy93BhH6Kf/lTUuUFuRO+nPWsuOImIZ/qqHVERUiUTmmTvVlDs OZCzcHPJHP7o0Hg6sS+3UGt9NYlQm9R+YS/tbFpgh1AbANcgSJulljOn1MdFOlWeduwr6QdEx FTBhJG2INI8h0eEw2i/LJCoVMBOTvcj4wiXNdo7r9ojC2FgbTHDxFGy2UH1TKr6akbVfcaam0 ShYrNTVZHICiS/XEcSZwvemItMlbRrLA+fO0BraCgjmwKMEkv9wMB3oOGh41Q+0mAFxDWDD3J 0ACbNuD9LR+ZqYWbiPZN4aSFwB5g0Y92EdTVvUb2T87/8e4eJ8Iw+c2QdnSmTeFduFIE1YE+/ 8yFvg/ve02ko7XF0IjCuy92938QatpuPuZ5VF+8jYD7wqzGOVLJuWsJrLJ63iWN5zELxSHvOi FSqDRIbP14mRpAGvwGuPPRDmMlPPLrvCcaIwQ4Kpwo4EjLIg4O5FJUGdRujtHiVzhNuzqAr1h ixFH/c2COEmJeCb3UO5IteViq7PGA53OY6JqpjmFSc8YGfoMIgJNPUx897Vq+GiD5FatSMbsE QsYSMPLjcTyJVLEW5ZH+50/w2GHtE88xan42Dk7MxqVfqbf6itqqTavEu7Ni4qzj/VRT++Cbe LDDk9zONr4QdmXp9UBVNhVQLAUyEWWxP8U99eP5ZUEn10ZDKWATMuRBCZKTOwNnv1a7eamkx+ PxwNDk9perflp5HIonEVuPE3k/pBfD+RgbpjcpzYIrph6IYfXi0VL97q3w2UG2pngsPpy759Q c9+vWjxZTqqXwGXSG8ViRPeQ2cjyj6YmUeT9V9eT0sb5nn6S0Qod+s3f6POVn3SZr3SbbyPdE UeTgVD6nOqVdodKuZGpDMIqdtW6GZGi5ChXUXjRXkh+ZT/drOigZ+RvauaFfEPrZoXQ1czM6y tqO/pTPsyRY/4PbYiu7GQkkVbbCMUl8iSTUKeUmx2pioZzwkOFQ/phM2UXdDxH6KWBAnlwq6Z BHTdrrjxLzO1nIp6e4KuCQX2Y1nlu0LXVw5IrjmuCID1seQEJpkbpUeRKcXemPxAumrmrhhob h5/RZT1zFT0l8sdhWWRmW6e2i3tVq/GVRdy+Epq4ytqtGlhR2saL4PM0++IhV66hJyGj8UhyL KKGUAZeYx3EE/7XvUQV/5b8hrr5KnuLXr1Lyv8xTeTEU2lbHoj+c8CexAZde57oMu8YyH6zQm wNFZIA0Rw5UtoJTfAr605nkoZFGTZnvqxKBtP6P3qXz+upErLVKfTU/jZ4cKPj1zJCqguWNcV YIdA89Bo39VufCYeEa581y+HXGxkRWL/SG46Yiwo57z0WO1bZqO163zVM5Lw5Op9eSRSe63zN HNFoaDDOb2tj9NkURv01Hwulzbdys2eZxMKIvBSz1TC1KRfkKu50iBYnXFgiTdNDckdPuaQBU 7R8LRkeoziQi7eU5SKBKkyEUe7tcrtn/4GwuIYONz2yd1ICTVOTQtn7Ow94hV4qgDTQ3faxMl ZzpWqv5vs53buEBBVyRebP5ijduBmMAmVfhSdBU9mwQ8vYe8F2zah0uhmwoIpCaR1aynVSk9F eBSHDFF0o2he+t5w0KhI+5sr8qc+IBDf1Q2bMxhyXd0UqyFxdJKNHpCWSt+vVbUDJa6A+Zxx/ nXaTiTCroC8uIwafhhrVx1g90fAIQTjtiAdYBWCBEaUMifdKs0Yqk1tRRI6nTKor6XVzsq+90 VrY0rA4uZK4YwWWYyOqIA4AzsZw2l3fDu8usr3C2+YGu5PgLpUphlik4UgUNqKdKno3Qe53tN bFwu6PrvIjnvdHRGcuRc8xemmAij9DMGER6GCegLf3EirxavhK7qZitCImYRVsc1b426NPrDG e73ofXds/Q84edP8aN/vhec7vKuaUyId2FiGCc45nPH/3aZxe1HleICC0I8DFFlOzSaiUpIMo NhQTVxEBJtYMTBoXT9icIT0Nc17peGAdzk2WjgMB4If0n9jF+bp4wBlpgIrbm6Aia3pFeUEni rWynEEsgzueJG+Ze2yHy6aNARp2NKm90lm05t9HY/gs2C15O1sgmUe5RcjSNQ+Gg/iLt9jRzs 3zhir1e2jAooJRK5I1UWnpC09g+VnNADUInM+5mRDj8k8GAvmqEVtAhzZP8NkfVIeomprIkoN qXXN2917Qj3PLGkfaAww3Dw1F8STiBVoJMBVRVnZSUj7X6X6ldwS4BEObaZ2ztxTJ5zjuqR1w nU9/yvP3ot74YnA7k6I5MuV5b9ymPrdzbNgycBSpkBU0lj5HjvLchmVDcmtOCh3uzIGnnOCml Z7nCm4n5F6lp9XxgWN/uCyMdNIFibtxR5CrolU9l0nfOqUQ9Ij9a7BYGwMEwYATWDt3Ki7rE7 3n6ISNwoUHJUF0B0OSbLGS+0SKFL4ZwpbDMXionxmnXBYY+sf7v/hzxswjOkbyP15smluqU7S yHrcCKSFMNhI+7Sz/R5i7H4bt98DsrqdydqUo4x/2eSEAhK0HoZLiZe/Dqte4ka0ac4P6VSEC goWkyo0lrSa59Ixg8KTHDHe6GZQIf5Laqp40fNkBKZ4mGTQdC7zSW/N1a1a5OG8EhE1qDdh01 DU+kIC8r7/ZIWguKTA8kKdJpi1Zx+3vKFSwXpQvxV5YLkG+gdkpZ1z15Oz4qL2NbgWgoz0Ms+ Wm4PnCoHMjKS1ZVn8= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446497287158500 We only enter colo state after the precopy migration is finished so this if is always taken. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/ram.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index aebf77aa0b861e00516d6f1090aebefdd0d97e54..979751f61b30d6c4b878866b501= 1507e7c519176 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3116,12 +3116,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque= , Error **errp) RAMBlock *block; int ret, max_hg_page_size; =20 - /* migration has already setup the bitmap, reuse it. */ - if (!migration_in_colo_state()) { - if (ram_init_all(rsp, errp) !=3D 0) { - return -1; - } + assert(!migration_in_colo_state()); + + if (ram_init_all(rsp, errp) !=3D 0) { + return -1; } + (*rsp)->pss[RAM_CHANNEL_PRECOPY].pss_channel =3D f; =20 /* --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446648; cv=none; d=zohomail.com; s=zohoarc; b=elcPnjLImf4haKntYIDEj2KybCzz2B9g1ZRc3UtXrmksbmGWR+GLrL3kW4drOyzQvYrJZNB4Dc0kKSYVFLhRfmPF3TxZAGMLQPokS6MsdJaOvRZmAA+a0Zh2T08U/lZjV7KiH5jod3hqbrdhRl9ZWfFnOgYziuktev5cfX6jEDs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446648; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=1ICvXz617I/huIhIVtPmcg6MlmFeXbl2B7uO1sTyTmw=; b=chWqjGsZESwmMNgt19Tk2PfGfwKF5xyAmiFbA3Q2gjuI+DPRHRgaae5/WJALTAvPiBPQyccmj5kAQYwWZ+Pa9RbMzQFpBh6wld+tYQE3cihz6EfznRXnujGwAtFIMUoY1AyDQS/2h1fvN6fhMERscOcl10XPVlRAljnrVgAiaU8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446648701741.1954178359018; Mon, 2 Mar 2026 02:17:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hs-0004zn-MO; Mon, 02 Mar 2026 05:14:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rq-RE for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:40 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00062A-S3 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:40 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MovnY-1vLBdA3kfm-00mBDM for ; Mon, 02 Mar 2026 11:13:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=1ICvXz617I/huIhIVtPmcg6MlmFeXbl2B7uO1sTyTmw=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=cqwR+nEXrW+YO/OTm7mvIBwXYP/X1kgDXYG358HXCgUDMvdeKPaWOuF7sUgfWsL+ cD9FRRNyzJltN3dWa5jqye7etPjcprgJldhhivsjjs3rk/vLk7DwX4UzQM1x+YzRu qKlCf36YgxM9GyUxz9wGA6JwauF9ILev7jbhZqNfMkd51hFphZkZKA4PcrDjCvMJP pPKqciSH4n6MXGwjTRkCaB9+PymQWCxvfFQXw/JiUmfp/GGG3MUxc5fmA+jXEcwbB vmUvND6vD+XocX5ynE70PgoyraYOVDcbX//zUHbAZzyB5gJZ62ydFdx3FavhjbXgv VCBUy+T6iYD3TzU66A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 07/21] multifd: Move ram state receive into multifd_ram_state_recv() Date: Mon, 2 Mar 2026 11:13:18 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-7-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1304; i=lukasstraub2@web.de; h=from:subject:message-id; bh=98xoBBDImdpaajW7ylxF0FElE0Zr54AC89SoX41cbBc=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFryjTGguF8A2qc4FZJwVAjuvaP05jRAVqB pMY/9t0DiyJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WFdeD/4iOoPrly4CuyvxHS/P3/WM/SqrgO1IZUDHw/+UVbDf9Q1N7/+TuFld6XHNRGpmKrd7ToC KgHcrdNMmMLwEiRqQ5mowcyapouA4xMw7OpZU5brUE03eOBXl3oPvd4Br7SULAgcd5muCaaEwdn zix7+MF1dTbBaRtjw0FzJvyUPQ2UxDtSrmngEqwd0TH1APFv54gDyzkT4NtwsZm7Jg+g69mdgHc tWMH8aaZx3GL1/IrgBEg+2sXOZW8DC+pfIh7jNtkupPyvZFevbs85Dq6jwUWI76lkLJjeuuCg6E j0WoT4fd9HXf7Tbc+I8CFiXn8MA5pDSxeceRRFFuvmmlkCWGwdh/wpoETMuTcStYEGrJciQTD5g 3/GDSpgplD6ReTlTQG9NhSbHvj2ZBeX1cvpr8BpYJXGWveku6hd1G4Dexh5RSYMNpHciMvQrZSZ YWrIu7alWqL/KwayWUSMBApEIlYnzzo2W051CoqMILgvmSFHOg4BBbt9nL2GeAVPZOjUGAV5LqF Dc2AIbnFR0fI7UZH3rEDdfxUFl9X4M7ivow4/OiaI6fohaKPHpRKZM1wzKcQlYvna4njIhv+l3y yTGSpokqGnOv4FYrbExxSpC8/767Wm95Z0wK+VyVlYRuCCWWxhKY8YyiQPhpHMvT/NIh6fim69c TmOx6518nYB1k3w== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:j9ohNV+iDI9F9R07W6w86BqQ6QLnt+eD8yo4GnLpiwDw0qqwrvM D48Dz5xOk7gD4YB1U7Cv1zo7y7YjBi3/d9CDqm4Gn0bEI3j55OVYAFQO2EBB1//dWBZHErS zZW4z7/sJoku8+RDS/hDjGsZYqcr26YpmZDOnEXwQydfqy7UACha97iod0Wsh2Fju4YKAOW 24rFD/Y7Uy0e+g1rSun0A== UI-OutboundReport: notjunk:1;M01:P0:Db4/GHBE8tU=;1gLdtsI11p2Md8Y0nxpaZr/OGeP UrK49BGKh1iYaRHx4kW1mvDONvjLn4jy0xfDc0wgSvXbYpRfMvf17Tz37VfMVZ3VTKysFfpma v5nptd+qncV+Q7gWHFaIsXTtnBpKBJ/s521GPxeC2WdMFyd+AfXahoez+bcmKhlC1yZEHcRcz Cz9mLGp93yyLjs5rZAMOr2MVQvzksnVivWo3WJqt9IW4B+j2z0Q2dB+N6WCMGseGX4GDk1HNr xope27oBg9t+TVHBKrY/TucuZMkBNbMzg2S0VEIpVSFDH8QzfPHsoz6hJjJV96rQplKHtFEWQ jVOsWio241aG1LPdKu0I7OWUAWQn1+ioeECCXo9SqtF2HEoUGGk+VIqUEFr1YFqdOQs2JXO1M MVtfMxIXy24MgFREUu+JsAeaM0m68yVLuiwsmfM2n+QAoYU0U+7RaAUgIPQIgkHViVQG/ipRL zvfLUhgjEUw6y35JatJys6pUtLBPbCNfRBGwZDCZ1ZIqlBQb9bs4IBr50AyVBsEWpk4yDhVuT Xi409X82wuWcZgfMbcpyhjnEfO5pJ6DOWKG+gaNIBN4WMA5eGZdttUlCvU2o9R7pEFLygrw19 mtLFUFhItkw/Z90z3xYwP8E/oO86QXTjegBFlbnrg+hu9/AYa33iStSnfzxfqLn9XfmfgHaT/ J91eL6uKkevTUHCFf8DC+d2wDoXWHvPO8xgkR3pfRH/RNhJhyWHomXj306acfVcO/QYesoavd yM9UpOl2EnvpJauxeLlXqj2MCoONwmmTrm0d3SL3WUDIVXFqf2JnnK2ITSAzw3ZxvVFACeGSs 4e7KKhqrZ2Mo8OZlpdmVJW6FbdvnJfQkEPL2g0JH/lpCYcvzJDtIOnK0Q4t4FOiZoqcOFK7d/ q4ogy6yJBrctl8/+5E80Qc5Wy4V4IRiquE6jRkA7+pToXOsTXmXjLo2HEOwcrYozilx4oDnqa Q2a/sMg0brR5bVdBbUqQguxDdcIYiEVVmFpnM0eriNJQQRx2Y/QHZGfAWK3ed1CQyso/2f/Bm NXuTWeJbU8Olh7e/CtUyMi2ONPlEbtLgvAyH+mur9zfnr+uMFpl7F4ht5EZar6qaahPF+T2du AidnB937qoiZRNa0K6Yfw13dpBuLrovmrYEPIHjCfKl9BLs+6l7/JP8ITgAfn/8zPed6iumCr 4rYIwO/4iYOYD6UHrjd64ejquTskqD58oYpKhPUo7fuDQANoygeEYeEe1RpG0rpKaZvIELm8r 7b2KVQKipfnRhQWQeXXOsXI1xQMpwehH3pgfXL5rdh40vNKADgeHsLZtf1qbZQHi6TAd2YSnP ypZM1xg5MnE7AEU8YsL23Euj/WsPwVwXoah8rn3oMCFd3Ff9YNVdKhWiuxzl37bqMWUwEknP3 QhhU9YKM9Rr+YJ0dWqayNAq8c7P64Ij/UBgLezRxhJd0Noa2EKcQzzDa6qa2xikvuwZXHgXIP fotB4n4sRgrC1IlMC/tVBAyIjOCzo1dXLxJ7qhH9idC/odQbYWaOSlHYEgDLwuf9o+A/paFnL uZruwvJrX5IAvftdrbBEYMGPHhrDiwmuwJbMOyGaEwv507r+enBuXaipADtZ18Q8SGeyk+2hN sbJHK70Oy/3D5zzXgJNm7VF2Qsk9qcavO+ljR28tB1iUutOoQeRKp+SoXptLIWIt0NQyWBCaT /dcTOR8IF3k0txPzYkRUY+QJT+3at8fb8mMVffS+DPSnPkgqu/jf+p1icdgb/dQCBkqnmOZu7 usAKpGkyu+WpeaY5xuAKANc9+0dEf7jR7DwH4JDcoIc+9pbxCCaUMgJwfAlxsKomAYKBitWzi u/zAew6IXbPiMp7YaRIh2PL7Tdpho9LJP5UYsB8kSSUsEQ+e7DH9y5I2RAr4M/ZtraVHasEr2 pO5CzCiAZPKCy1BD73zRRZMVzzmKqltS3CXI08sTwJY1RAoFi6WX2nVd4EToxFzIp92ElLpz6 lKJnwcX109DdOyS+BHigAF1zYGR+MjCX9+mhsxcDshkNUKlSVxbqi0aN0J6A6jjoxNQTydJiQ KnI7ikmH1o7dcckq7HPiU9KFO003pqqxwtr2p2n7kiFBJfWIGwbywwrAU5dtod0D5k/arc1+h yWNJ1vMQJwqO1tio+iC9b53L5HpyN6k62qv9YFkODeWHB1soDuUD14oEmfPahGJnLe6VqQnyz R0xgrwc+CkjBjhBgwKGEmXFOusZS3MMkRB9PwytcJ3tnKXTjcSj/zeM8UJgV3b/jVYZD4Ise7 Zz4rr8MX0laF3lvTDFs6PZVv9+UalSj7EWAoa7bwbzGKMVwN23oWZebOTHnsGx8KLBvAOw/CC npG0UkpLJEMOnIrI2sWa3dpdWNOZFpXHjT4Ul30be+2GM1cYab01c68xhxBkNYS+pjjBHrsce u/eJPEfzy1zxlvUAdRLbm6syWK9HcZurX9vNSxe8qB+dygXi6zYP5M9q41JaYrjNYNg5JZg2u qiEqY3OYa08WywCEq2uZMa8R9lRXtjR9LqIn7Q1V5W06dVryo9ylJkLJ32EFje8PAKE8QfFb8 RSufNqNkZxEhdFzP87Tw7XLIkL7WL0RHsUOiLTStX3sT9T+IDNpWu7pRFu9/x46/OJscLwwDO uq39d1ZTEqx0Eg3CX3LpMOjRJ4A4McLSmCJUgg6Q1OpwFzMiP2Z0/I9mOSlLhJF9a94bx5MoO Fxh/0q0qLHCJSX2Fx3nuJ98cJ/8DJct9GR2Yr8keKEyldV6NnHdmHFIB+LY+rHsAPbE/pj+iA jMbPefdTMLJEmXUA2amucoFIlejJWtgDOpv6RQBJNVKdBP15ZGJkH/rj4jGFzEAfkcCLrTN8X fXRka0Nv1I6Vf5rCxUp/MgltZQwC4Aw6HA7ZljYtCQMAhvOOtbSvGxLo6Gn7qk10C62OUdIcp XdmnVLKuvDiRTOhCQJnxHwtlBDBz0slEMOpVpvtfdte0CcbmzBZaot7OPp/BM2OozLoTv8E8k 5MrHtX6n8n/mZMygeVvZqQMSokaHc1DiCDQiEO/fq5tF0rtAsB/A+e4bVT6wqwSCpMy9/GBOL NXORI7Skw1SOzy66Ev8ERuj/8snUl6uysWkyb4erFIE8ynrgBMMxRsk4sPlTjWBneTTuAZagi OW59CNwy9JztLPPEKSHSzRJbmKSyp5d6rPU/P15dmfdVw9DTBiVevFlznLKHDZH0xYtjW3M7J k0YcFsMR/IxTdcVfped/fCneciPNP19o069nSGFr+k0qDaimGEW+jph0KgicnWmseRwcNJ2QN a1e3rgBp3QWUVycr3oMnPUET3xhrfPe7GYQDN/mtb6jom+GR4dC+LsBdAf4RbS+w8SHBMu5hA /Q5PV9cbMKW9Fz2hSCb4dY1RTkuSMEg48liB6NgP7b+ukn5HmmMIqd3WzHI+tAS6x1l32W38i ycz0P7dWTeea/gn5E/MjcBfv+zHRth/nQARB+H1Tgn+nQGYcu6xEvaklzxj/Cn6ksN9pwWW7J q9Mx8+FIKK3s6cQeLraLLXqa2VXnun0qaZayPGHAQ08khce1mNo+pn65UIiiDQ4dOKyzs7rVa zhIvwR1F+YO73WnnlYRENZnEWAVsZXuFfQkflCuFue024xSyhw4ZZcyVKqOxv1OQ6fxaEFzve tv1fu2VKMljFfqF72gDlfN77jfTmZ7dBZyD+paeUkdTD8Ul1iA5hgAeSC3izTRgXR7yZok11Z Jrr4MTGeOiRziRQ8+9YoiT9nnSfKKzM3JsCWcdlRwCUqB7SLEqVcP9PqxRrFLLWifMbwISKci Oq2lcpvZ4EQT2RuOSOyKpWwL1t0Ioug7Wxcbtoesr7Ket5ykpL9FdBLmRaYJXlr9N+lJwd55l mn1+A5uO6mh1Y2QDs8jBuAlTHHxm+HYy/Jet4AzIsr1P67XNVEi6v48IxEMvaBC7D0Z+1GUiX d8NJ6NS9Ksq/fQOL71bUdebT68DZpES2mwt3CmFILb9Jevn14OUZBAEiKRSu6pAh0EevOGt4K U07ohup3DRiAgEulht+w9Dx/R2x07LNF6PoS11JjkbCqD4SkDg5ndppvjnMCApkPVq1W6BfDt 5MV5VCBZfT+biU8hidheSggbxG1PFgW7Y5et9Yr7xATRckwybY3WJkITVzJDVKXwgHdFlMJ3d nyOYcqls4ofbtcWRq7yCoz5ByyfB8B0zk0ag8MNmIWwOLmeMUjyjQvuCuXgQ6rBUhwWLt5ONv dTC0ZDLo6uniotIbqQ4hFnJukckdchPLWAQepa2LtIjxkZMF/29zqfsa0FOa+efu8fOQ3eyGk wnteQz5PICk/b7vIdqvjbohyKkQ3vS79yONN/zD8qoMq6N3tTUbU6JWuBVjA3KAdaREruEGSi ePQhXbqWo+pwHC2neVf0Dhx1ReoevybYOTiGZl3NQdqHXinuhwvbE6AHuERwNG7uf1k38llph ZrYeo+YgBJTYIfaP0N5Jb6xsaxqtntLxKam0MtYc3la1ZAde/eYDtPoJX3U832EYC0IN+QbNP 7U8shp9zr3ASsXXVce3gnmRwh55f5LMU5ZrW109f/KvwUw8b4H49AjURcsZN1/878D/GeebZH 8u3IhGasYLOuhFU337oQZARl+RZPRUf1ZVLQnfaFnDnwIXP6EQqO2s6XRA33LzhnMDGdjxmab uqHIkRfKZvHkGaPlhkCrEu12YFufpPxozlRKfvozMDelgynSAkgCRim4DYpLxQ4aqLj+qcBXe B5nFlkh8Pz8bAKzowAKniysK/esu7ho/3z/psmLvV68cPpLacGeUSzkX6mk+KY9SBmdN+TL9C GkbTX/oxaorO+eSjoqpS/7QhRimt5zo9RwT4ayKKa3svWFwoPgdevMI9FopdV5J2fFUJGB51V OHfdORbFbxsdREQXd6zpp0kJJHYbTXLXbkSOyNeWrXPpyxh0PyL4NKRP1guaTw2FWGCwKykqk dEcBHAVbBgfgfkGP1yS7Zkd/5uqWiWpgBKeWF251706K7fNshooSgCP7DdBtmxj3Flz1rcJE4 GaPAo+rqeU5z19w9zX3Nz5K9IXOIZK9Zw356+yYUSF1Lb7dE82jD0nvFh2Gh7fOiAz1hY5jmL j2aSgirgOKuLJsX5oxfOCNc6dDlKXgf+dbEkEC+VuW5uOLTEgTjxLOguTfyFBfM6x1Ve11yap sdvFjE1xxw5+6avMulo++ec/3+SOV0zBlPHkOJ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446649946158500 This is in preparation for the next patch. Reviewed-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/multifd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/migration/multifd.c b/migration/multifd.c index ad6261688fdf98a5c7f4ee9fb80ba2901201a33e..332e6fc58053462419f3171f6c3= 20ac37648ef7b 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -1253,6 +1253,15 @@ static int multifd_device_state_recv(MultiFDRecvPara= ms *p, Error **errp) return ret; } =20 +static int multifd_ram_state_recv(MultiFDRecvParams *p, Error **errp) +{ + int ret; + + ret =3D multifd_recv_state->ops->recv(p, errp); + + return ret; +} + static void *multifd_recv_thread(void *opaque) { MigrationState *s =3D migrate_get_current(); @@ -1387,7 +1396,7 @@ static void *multifd_recv_thread(void *opaque) assert(use_packets); ret =3D multifd_device_state_recv(p, &local_err); } else { - ret =3D multifd_recv_state->ops->recv(p, &local_err); + ret =3D multifd_ram_state_recv(p, &local_err); } if (ret !=3D 0) { break; --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446691; cv=none; d=zohomail.com; s=zohoarc; b=X+sQJDybAnyQPc3qk6BTviQDYcYSIRPc4+wsjM4dV78HPzw5iaqTdIXNwfNdRUkMcuWPhYVHvZuMc5/1wZxRBXAND7Zd+SsKBIYmNR+pz/QKgcNh/QfhPDFfhrbrft7qZSQWLEE1Pb8j2IsQqhEp6x4UirLJ9C+rodNonUUO5t0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446691; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=33sel1R6xmv+QDaM+Qknckw/SZLjCwKZac5wOjHfvAQ=; b=HwEBhy4XFp7A21iNm6D7OsP3onc3dSF5M5SbZ+ktYNCp8kcS60WJL8zT+MTcYAWYX5HNXe8iw7cAMYkKQVOzr6LLgOzs1fnlZEuPGL19eQbknbQEBvlMWCwY1xAbB1DNUgSyNRJKeZrL2MmHPg5I+B+2zMuAJnVduYvQ+rhHkX8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446691531409.22282254045274; Mon, 2 Mar 2026 02:18:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hv-00051P-9B; Mon, 02 Mar 2026 05:14:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rt-Rj for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-000629-RS for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:39 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Mm9Zi-1vF6p44BAe-00miNq for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=33sel1R6xmv+QDaM+Qknckw/SZLjCwKZac5wOjHfvAQ=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=FtXn3WvLLQqDuhvyGIyyAJ0hcSKkbrGBkx1wOKt3hZTFprbRpALfpbhEH40vmetl rTKoB1qu2bLMnCs8FT60wHMBwUvKalBMFqOb1t2b4kH1Q4SST7bJ6Bq5Lhjnj5zM9 TQJlb5ApO133qDuqO6c6ZHDh9JCiXn9dtEB+mnCePWEUfmOnCR62A4wzFyIM3EL4a dynW9+tlxj/b2PyvVJSWOFMUUdmcNhJ6PT8vPtSwM9kJ15fERITcgjtMQfi35q+if TwwAMVvzD/2GccUF/KOrcNWhJlvYNWDu4/OgJ6jSn58aEZnnXmglg53wBxidnqA5L GbOCMXEzYqyuIN8PVQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 08/21] multifd: Add COLO support Date: Mon, 2 Mar 2026 11:13:19 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-8-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7788; i=lukasstraub2@web.de; h=from:subject:message-id; bh=zU0pffC07Smwy5Vv0eISnBt0LkAaS5xWcGKzaE9qTeU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFBMiQCporRpDy+SYrNstTTiTEn7lAvHuAv vptwkSq2w2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WNxXEAC1DmnAYA+zJrlxxJtFYJ8IcELmxhnEBNnpjkHrIBM0GfjU2M8gCFmahk4COT/DUT0xG6d gyRTueboqvbsf5NwnRnx6nubYO8C0HKSbVDP7kg2Jnv59aU1mrWzEHC2sKobPsilrCQ2v9Am7eu uXGeV1Bostj/4+QHAx7ZzCesoYyb39dtITdcUb/zKTATdpxr6ip15P3LsC0W7EnE4jlKnsTkO8f zbD8BQkpHrR1iWdigjYMUL9WAvpgw1MnGnMOljLprNzC7gn1mRmq2zLCvFm+TUFZN59HMSSZ0Ug R9S7asTZlYQki01QzOwErXsuWp/R+l2Wry9Vt2sc7xhjlUzVrmcPp92UnaqRsedmfXbZXvKTwHo xUJuwrZKx4CKMNGRnrlbtoP6KoWxPDYzQeXQ7nttJ1oE0IY6WSp5bqweBvKChtyAbhIsROEQEse 7rVdot605Bh8avGsmCoxSYbHm5mNF+bA8H5p6GHiY5h3Mt8Fy4ak1SunrMh9JWpujZBYttb7Ubf aiA0jokk5UXVSepPmct5Zufbu2Tuj3ZkwL6le5t7nNGy2hc29SvXcF+6/mFs+9HB63rjFkwN3XX meg9j0ZxdELd89Oqm01+GC09+kGp9KZI3ZbmEdCqL6tx4uzw9fVEaTsu02DXujnhkMNqG3QGOTh irltK6BP5nC9uig== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:IVIjNhVEpYKqNfkgeXXJ+8R9oczJneMjHj7AHCdGIyQjgzZPb6e X7EnZIOHpcBf8iBhadkTu1jX92ljjvX2Qkd2uTtt34Y4WkJZxn+TGr8xvYMXMDIaxFEuwyx cnlIUUjMKPoyTSMVgcF8mp+4H1AkjUYv71LJZU84/1FyOY2vSUYWCOSHan92qmshx1nJJfD YmMaXEFx9QDKqSEx6VssQ== UI-OutboundReport: notjunk:1;M01:P0:OKTE2LAaNsE=;QsR7U0vks1jWKtLuQTmxWjfCEQy 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446692376158500 Like in the normal ram_load() path, put the received pages into the colo cache and mark the pages in the bitmap so that they will be flushed to the guest later. Multifd with COLO is useful to reduce the VM pause time during checkpointing for latency sensitive workloads. In such workloads the worst-case latency is especially important. Also, this is already worth it for the precopy phase as it helps with converging. Moreover, multifd migration is the preferred way to do migration nowadays and this allows to use multifd compression with COLO. Benchmark: Cluster nodes - Intel Xenon E5-2630 v3 - 48Gb RAM - 10G Ethernet Guest - Windows Server 2016 - 6Gb RAM - 4 cores Workload - Upload a file to the guest with SMB to simulate moderate memory dirtying - Measure the memory transfer time portion of each checkpoint - 600ms COLO checkpoint interval Results Plain idle mean: 4.50ms 99per: 10.33ms load mean: 24.30ms 99per: 78.05ms Multifd-4 idle mean: 6.48ms 99per: 10.41ms load mean: 14.12ms 99per: 31.27ms Evaluation While multifd has slightly higher latency when the guest idles, it is 10ms faster under load and more importantly it's worst case latency is less than 1/2 of plain under load as can be seen in the 99. Percentile. Signed-off-by: Juan Quintela Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + migration/meson.build | 2 +- migration/multifd-colo.c | 44 ++++++++++++++++++++++++++++++++++++++++++= ++ migration/multifd-colo.h | 26 ++++++++++++++++++++++++++ migration/multifd-nocomp.c | 10 +++++++++- migration/multifd.c | 8 ++++++++ migration/multifd.h | 5 ++++- 7 files changed, 93 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index aa8f795783ba936ce2521e08aaca8de4a112ed33..d2a1f4cc08223cb944b61e32a6d= 89e25bf82eacb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3872,6 +3872,7 @@ COLO Framework M: Lukas Straub S: Maintained F: migration/colo* +F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: docs/COLO-FT.txt diff --git a/migration/meson.build b/migration/meson.build index c7f39bdb55239ecb0e775c77b90a1aa9e6a4a9ce..c9f0f5f9f2137536497e53e960c= e70654ad1b394 100644 --- a/migration/meson.build +++ b/migration/meson.build @@ -39,7 +39,7 @@ system_ss.add(files( ), gnutls, zlib) =20 if get_option('replication').allowed() - system_ss.add(files('colo-failover.c', 'colo.c')) + system_ss.add(files('colo-failover.c', 'colo.c', 'multifd-colo.c')) else system_ss.add(files('colo-stubs.c')) endif diff --git a/migration/multifd-colo.c b/migration/multifd-colo.c new file mode 100644 index 0000000000000000000000000000000000000000..f160c6543414d3e157a444d613c= 96df4c5f0e602 --- /dev/null +++ b/migration/multifd-colo.c @@ -0,0 +1,44 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo implementation + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "multifd.h" +#include "multifd-colo.h" +#include "migration/colo.h" +#include "system/ramblock.h" + +void multifd_colo_prepare_recv(MultiFDRecvParams *p) +{ + /* + * While we're still in precopy state (not yet in colo state), we copy + * received pages to both guest and cache. No need to set dirty bits, + * since guest and cache memory are in sync. + */ + if (migration_incoming_in_colo_state()) { + colo_record_bitmap(p->block, p->normal, p->normal_num); + colo_record_bitmap(p->block, p->zero, p->zero_num); + } +} + +void multifd_colo_process_recv(MultiFDRecvParams *p) +{ + if (!migration_incoming_in_colo_state()) { + for (int i =3D 0; i < p->normal_num; i++) { + void *guest =3D p->block->host + p->normal[i]; + void *cache =3D p->host + p->normal[i]; + memcpy(guest, cache, multifd_ram_page_size()); + } + for (int i =3D 0; i < p->zero_num; i++) { + void *guest =3D p->block->host + p->zero[i]; + memset(guest, 0, multifd_ram_page_size()); + } + } +} diff --git a/migration/multifd-colo.h b/migration/multifd-colo.h new file mode 100644 index 0000000000000000000000000000000000000000..82eaf3f48c47de2f090f9de52f9= d57a337d4754a --- /dev/null +++ b/migration/multifd-colo.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo header + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef QEMU_MIGRATION_MULTIFD_COLO_H +#define QEMU_MIGRATION_MULTIFD_COLO_H + +#ifdef CONFIG_REPLICATION + +void multifd_colo_prepare_recv(MultiFDRecvParams *p); +void multifd_colo_process_recv(MultiFDRecvParams *p); + +#else + +static inline void multifd_colo_prepare_recv(MultiFDRecvParams *p) {} +static inline void multifd_colo_process_recv(MultiFDRecvParams *p) {} + +#endif +#endif diff --git a/migration/multifd-nocomp.c b/migration/multifd-nocomp.c index 9be79b3b8e00371ebff9e112766c225bec260bf7..9f7a792fa761b3bc30b971b35f4= 64103a61787f0 100644 --- a/migration/multifd-nocomp.c +++ b/migration/multifd-nocomp.c @@ -16,6 +16,7 @@ #include "file.h" #include "migration-stats.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "migration.h" #include "qapi/error.h" @@ -269,7 +270,6 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Err= or **errp) return -1; } =20 - p->host =3D p->block->host; for (i =3D 0; i < p->normal_num; i++) { uint64_t offset =3D be64_to_cpu(packet->offset[i]); =20 @@ -294,6 +294,14 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Er= ror **errp) p->zero[i] =3D offset; } =20 + if (migrate_colo()) { + multifd_colo_prepare_recv(p); + assert(p->block->colo_cache); + p->host =3D p->block->colo_cache; + } else { + p->host =3D p->block->host; + } + return 0; } =20 diff --git a/migration/multifd.c b/migration/multifd.c index 332e6fc58053462419f3171f6c320ac37648ef7b..220ed8564960fdabc58e4baa069= dd252c8ad293c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -29,6 +29,7 @@ #include "qemu-file.h" #include "trace.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "qemu/yank.h" #include "io/channel-file.h" @@ -1258,6 +1259,13 @@ static int multifd_ram_state_recv(MultiFDRecvParams = *p, Error **errp) int ret; =20 ret =3D multifd_recv_state->ops->recv(p, errp); + if (ret !=3D 0) { + return ret; + } + + if (migrate_colo()) { + multifd_colo_process_recv(p); + } =20 return ret; } diff --git a/migration/multifd.h b/migration/multifd.h index 89a395aef2b09a6762c45b5361e0ab63256feff6..fbc35702b062fdc3213ce92baed= 35994f5967c2b 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -279,7 +279,10 @@ typedef struct { uint64_t packets_recved; /* ramblock */ RAMBlock *block; - /* ramblock host address */ + /* + * Normally, it points to ramblock's host address. When COLO + * is enabled, it points to the mirror cache for the ramblock. + */ uint8_t *host; /* buffers to recv */ struct iovec *iov; --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446704; cv=none; d=zohomail.com; s=zohoarc; b=KiTIVFnOXPIOjD6nBkmMNkFDUS9aU9uyPmvfhvIhussgdCZrCDMjq+3sTX1iAgEqgXumcC3KjdttaCTmmDywm/nZDCxPqE4pVjHVLK6gXskAT3bBMeBF09viKilP+00hohodZL6zNZiRHiVGjBBEOTwiTobOepZg22KGLpgEHlY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446704; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=8hHLJHabzCk4FfrjTAJvzzHBO1OUkODVuFNUMhqME4c=; b=X/8uSTUCDB0Urs1dZ3UJmPB1tJGN3yM1Deed5CwKbI25Wlz3YhVO2uxu1Vzrfh0n+UHYK3GV4sbxJUw4R5GUoKhq2fNbgCTLRRulZgJKIDUxhBHaypeUvruoJSl7q6uyVRc8WUnkxQnFm7iLcVlTLYJ89Qy0aWB/j/4EM5z1ZzY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446704859126.40376593521182; Mon, 2 Mar 2026 02:18:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hv-000528-Pv; Mon, 02 Mar 2026 05:14:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HV-0004sE-TL for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00062F-SA for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:41 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N6JxT-1vczSw0PdZ-011uut for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=8hHLJHabzCk4FfrjTAJvzzHBO1OUkODVuFNUMhqME4c=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Yz7RocO+qBV8o7KHVwDFLlH+7uxgFcsT+coLSk6CH0Q/iZGQSZfNB1HyPLGgbuF6 Umeew0ukjTQQ2fJ5PD7qkfXqDDOuc4pjWmlOxWMGYg8p1X+grDi0AmqtcA8bj8aFe Arjs8wcawTI9zwD16S0ZgWsS2c2lsY5LrS5rB6/3rZYgdjHA+u3DWRiJnmYZh/Q54 +qTjjLckypEuEiVR82yubexvRZiiwAVrZOMH9CMS/fA+AxMErbzTG/GQFy91g/7hP FWUKbyEkAMCCYXKAsFHt8p9RNwEK/rV8lXb5v5UYAcSLkPEA5RGGyKz19XAUz+r3N RyMw9dsPRCVWpbHmdQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 09/21] Call colo_release_ram_cache() after multifd threads terminate Date: Mon, 2 Mar 2026 11:13:20 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-9-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1345; i=lukasstraub2@web.de; h=from:subject:message-id; bh=742UeEMYZJ7tKnjG0Stx7vUAA1BGNxPixG9gIstyBU0=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFoIsMFMV07InVSVLvqyZYG3Ecs+rYkb6JL wOLwHl6AZOJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WCE1D/0QgzV6y/PCsUqa71JHN8CNbeQUy8khZN9SvWs541HmA+qXUCDqVoRf9wnOcoqoI+wuavQ hzC47vyxmUOHumCmeKgbuejBHdGWzSJE2guz1lcj2yRpK40AfsVGRYbfLi/JmpICcgqncssWX6i g9uNqHf9/tiuGA5EnAE3odxpODOa+IZ/y+EpykfBFPSC0DUR7URRAUnDg1G0kG+PJvjvtIP/imT aY3t3wvZyD9+zb96MU1BtGtVovOQJUifTjxx5m1XG+49vCcdF2oW5jDNyQgSnXJm70VlLJPHjqC 6SQKNQeT8IaqoQkGE9dZCOD5CHouUQdkvLdytNURxUU2jrSaf7OKL+RXvPiIb7CLKIawrJlGnPX eHu4k+e+RDPtVkBlVuaoaeS0jWbLPwiAgDv/7LA8zx9Z5c8v/oJNemQ6odO3rgNUBq6MGGouY/Q DEKN+wB4m638aYWKiuGBpD/42KxaHqiEof+67qouMIdzqB6b5N1p4vx7cx1Zs9V4BTynVpRxpB+ VY+t4SX9gWhQpcpB2ohJAdGm/2Yhcj3Bq7K3unSeiIa+UAlJ3+1TZhPUvsNm0I9f9L7nJGJAzEf cPHiZYqDrqISkAByVMKFX41GtbIMLqcc5dtI2CWMYw2xAo2pcsffsPYi2+9pigojT3k0NHKJ4O3 sNyoth7HwJW4p+A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:i/8f3cGSo6h4hAllgSofb/3b0dplNsnZMj2q7lCCSg0r+NcWssY h+MTulThShWVlZLxzVskm/Q4K57yQWJYBfjmVA9U9+btF0PEu4WtnE1MNDRdg/UlaaHyVqr F+wo0JLQAKxXFUZQu/gtDQjBOpq1WC43pKjjAaH11G5oMuPLzPLxUhjztbcVEWU/mKn158Z 2zLZp7lujmiQvQNyiyD0w== UI-OutboundReport: notjunk:1;M01:P0:MI+1QXhVYo0=;D99HWOZPvthgrunrBcOJTplmsuu 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 m/MCSW8pvmFBbtIXOiqTppx6akrKDTMSzaieUZ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446706230158500 The multifd threads still may access the colo cache, so release it only after they terminate. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 3 --- migration/migration.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 97a224c39c49ff2269f375db47112458cab0b4cb..96102c9d0fb3b60e063c81ce07b= 730011bc4919f 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -949,7 +949,4 @@ void coroutine_fn colo_incoming_co(void) /* Wait checkpoint incoming thread exit before free resource */ qemu_thread_join(&th); bql_lock(); - - /* We hold the global BQL, so it is safe here */ - colo_release_ram_cache(); } diff --git a/migration/migration.c b/migration/migration.c index dba5d6ede579da42693d5270ede9660fb145238a..f36d42ef657bdf26d78ca642d77= a9b76e1c0c174 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) * BQL and retake unconditionally. */ assert(bql_locked()); + if (migrate_colo()) { + colo_release_ram_cache(); + } qemu_loadvm_state_cleanup(mis); =20 if (mis->to_src_file) { --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446536; cv=none; d=zohomail.com; s=zohoarc; b=MyhfbFRF4maDGqsJTRwsIUYXVLOLdICy5yM9zurOMiV8YhcVxjqAYUffwZMXCKJdMWnxwQ68be1YsgcfZw9JKoJV6WIx9D1GbkR4d+AU5I4xUVgRW2RJp9CS/+zPnvDd7p4YnuTWHyJuN41d2LfeQCzuvU4OQ4WTRbQzA7vzW7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446536; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=q/mNNwnaGGa47jBNu/l/VsNCmpfLA9HBEoNXzcytdkc=; b=e/YlStPuzg2Fc/wcETCO3/n7vtQbKkcu3n1/EiPxSW60HWS9qWtS5HhTZkYU7Z3V40buNvpmWQAux050ai7xDw0yE2QIevdestr670V8JEpoidC7eslxYX8QAyuS6vflM/R/FzixXRKi11LNdBUEyK0vFNEldC0nX2K+AYIgmmM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446536072372.3149649967645; Mon, 2 Mar 2026 02:15:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0He-0004vv-PU; Mon, 02 Mar 2026 05:13:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HV-0004sD-PZ for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00062D-SK for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:41 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MuF8x-1vgJN40q8D-00yZOV for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=q/mNNwnaGGa47jBNu/l/VsNCmpfLA9HBEoNXzcytdkc=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=phFdA6G1fXYNYa1U3yjPOc7ib7lwarZJN0j5dCollVtp8hAu5dwbTZfUaOenHeaH IhWxSKCQe8F+yHFT11qGwx5TWmX2kk61tvlgAvNK7cwfZHvGfzV9roMvxJPtvrfrF 5XJfjjDl4y3sqTOxsD8HCGCau26Ns/wgaulb69DpqiYFlQX/ZrMlCrfHvwAz+AV3i iQHFywW41/4WmT+z9vICl4ZbiHq1ZJdVjRhzyg6EQ3DXMGeFGkVfco2rnMZZVScAJ P0NintoPjt1/MhLCkxBdq1OaTqdop0qOv+N0DhayQgH1c1HAzm2OaML7IauSjKQXo uh5gZT/VTDNtNmfk6Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 10/21] colo: Fix crash during device vmstate load Date: Mon, 2 Mar 2026 11:13:21 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-10-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1224; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Jo9ygbD9kqkeUyQ0JD+anPkAvVD/vEUQ7S+iY6iqDJE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFEyNplvJjjgWSdbvwARSa5gUjnNXHkw9H4 U0VNYf5RnCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WPekD/9IghVPQWDf8a8ZOLGVV2WNngYD1PMSGUvSGMzJnNYu79FOyMi2rylZeIXVi+M3Hvs4zUK dw3jWN4uJU29JnQCU4wqrAeOcOmXtkUHyMZiev+uLDyGzWUZgAc+N5xv4oZcAFebpFq/H4LPVE8 UjYgA6NV33gJMUTOQpcynCjT3DOnyrO1djXX0pWiKdat3w3/clPXloVfvAF4WrKhhyIEjV6bw5o Vt93VPVaWbCXZYuZYpEoUgdgORuLbDX5Zj2L5A7EjnlhzRJH2OzEk8lPx7j8h/c5YiKbEnuFygK bPbWXR4hrlUmTGFYy0JIoJZwmNsDCxIqciu/BwWKGBuWHiwVZpoKGu7hQ/GDCGzNK7oZ75o9HQM tdmsKXzwUUiSjpWm7+gu37Mih6HnIpMc5v9TnlfSZN3WufmFaT9xZHxkDNx/opqlTURLOyWsW+V nKgK6Ok3vcQnJybgn4hhPBUIDucOxAkdHL3sFHre6156CfylD990/6jJ9vctx5pwpiq5rK7JSDJ 302X862qonMVTU7W6uz/Wm2UOQZBZfkvYvYY3UCiSKWjy6m2Gc/9ITWeExQnXSiBY7+jFekLRdB N2hSC4Z4jB6iuMPV3JEfXrO62FE0CHei0HU+HECmLgk68PLibN76xt7510VqcrLGaUs4Gk71Mz0 33l7AoVdWzEksKw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:F8ZuA8cX7ek44AWBJIaVL7SmVFE0GxwlXKXfO3jYYRu4xZHRQd2 9ThpXw5s/Dke9C2gpxJA8YsxAr0utzHCLn8SbXwaMyPAJSLkcnY0PeCsp2FVhBO41EYS0Rk g+D9ZFhOBvYCcK95O/G8Asmn6czPBKPgkuLmjumxSOoY4oiEJrFrqkoTRdDxptSrnbhtLkH qTrdmmuHuOclDnPcxm1dQ== UI-OutboundReport: notjunk:1;M01:P0:MeB2wVhqKAE=;yHx8wvasAKmU/ks2tFczvwjc6A7 I+GmuUuSUgnN6xQh3rHZ1Cy7dn6oFI+mosg3UqRN3LcRBy7Z2xFyG+w+DMPXw/eCpyhvs/qnW jrV8jm70plan29dYhRckBrcOMCQ1MFGOT7ndZnSgmfdoBCCJT04zGU999xSOoU7zotf/cy6in wQZBc+Z9muRzDGBEPSiIzRsb8c/IXHFiayYpM4yr2CI6g2XBod3B+f5xEh6yo1noBd3ZwKlLp msjZOLKZOQcfqodrs8ESyWUdQZBvnmeW0R1IYdwBtTLcj/1ThWMqhQPoM2Nlc0sA5zfI0guz0 CauWD8MeYNE3daZibhm2LIMu9TiyTT5HOiDQl8J3xLVf/jrfrSzfMCDj4LwlamoyzIPjiWBEU b3Ibm/h81reGdxSlDydUiWYp7Y7wA1195CAVpWtOLS6sAvGxxGRIfrzfIP28pmj8Ux7v+TweK UCR9gRDMCn6s6YgaBLQnxpr6vRJx6VNYngpxvoVntT+r1GHThtJMFbkKIauMFXx9cCg7Bwxc9 dFQmzBiAhWTztycL2Nhvg3o6QonWr8QGl5x613ksDEwrjb2/ROdA6QuiZScOR168NL0ppxhOA Hv1h592c/88CPWfRm7kZwm0et9+f95ElGgLKA4MHxUXuZRounpy2nlvM55gI2e3STbWPvoMCd /PNFrPz3kvrfcRVdaVNSd6qYOFB5sS57RRqRHDwn6Wl6pp1PuEqD4D472K9Hkki+1mjiy47g6 f0/63JmMGowQtYiDAGSIYT9m08z4AeufJeXaCwtL9KiA/aRuza+8ehuDv5HEatVrUN94BwAPf sldi8EP1u3xjtADuDRlFBPmQjduJWeRG5EahpHZOhkW8sbnLBse3yMhReoEW69Hr5EU1NJ9A4 0Hx9Yk7hmtOjOcZZ1PhFgjQ3nN60JwaXUAhnKp53sStNdcFpdsaqhKRc/pJRJsu692FirsbAo D+ngsWfXZLQiju3mP86FUBZ5Haq4h0+JGBbKctUARP2+9SgwohppWsPoT447NDj43V9fG3ELy YDbYvBSDzVr+33UOpR0R00Z6MFonFMPu9Md9v17T3cBbtbNkZ5YPYSkyovlDtjmhASxNPuBTx Sazo/KU9hd0yH+E4CtnkOpb7AKgan42UU/MFWrEdaC+S8PR5sahww1k8OMNGOhC9ZZ/1itsR4 tkpjZQVXQ0xLIOka/VfYnco8vz/5QbWi7oHELpQ/PtNiPl58+ja+PmXaOiGtUrKPhv6IVcPVT ZrvCswyJLCdlvvcvwNwQNIqcTSDg9lvMdbkTW03Hu2DNCiFl81AEeuxgAEtNhwkO7FcALNScc jL+gajXqOVnJL38CXpGhRFIX/bJLC29o/ZBbyUnzlnE95DneME7mSkCGfr8JYLrrmbKGzl7Fq eL+g5X4hy08M1HFopgvsUkm6Hzqv5gs8UxIqfdBrFnyF+tVkuehZn+gFC3J5rci64dmfptGiz /KC2+BM3APs9J1UVVDRtLiF61I5Vo8t2RYlc1VM8ZKyVSE/YwGR3+cjzYnXgT/Btxel9fjSZH mRA8Pnmjri3fDJAgkOItWT9Hzk9ihNUb2tjlO5J3LTEl+R19DHBX7mb7jMnEFYRQzsoNUopw3 H7z2i21dLIjZjEd2HtUtkM5ZPo1U76zm71eyBrpcUZj4nkiVvbx407U9M39bUF3VuW6f+LqAK sV/eUZ/knf1Rg6xV9eBE0CrtojG1V5NNhzG/f0HMBZwwGAf0J5AFgZ0w+lMPOgucueRz29FwW l1Gb0yU0g/T3nrpZ26xWCY7JC2+jU76sz9eGYfvXB6xaWRAMZlvjJteHSYfIizdATDNLMUxbB Q6FIRHeJqin1zQ18rvgNws7rE8v16jZe2rvEBNRlB3Dk7KZ5J6lfragJ3mt/0gfA9NEK26Hwq 87aIvICB4C2H9B2M+v2x2xES/jv1p8lxrLAAT7poNERO8a+1V35mPzin+uzQG4a0ww1AnLUgv 4GjtZg6KUZqfLhIw7zz6YQnjbYfnY08vkm7UaVqf21aVEzUt7aEhuh6HjWqDIKuVpiEOYSldI Xpl0Sbm9UmRV7cz0jtAzAsItcT2eZ1Kb1eU2fYVaNrgS4RO0WLjOsIdgzTavw2yBviqWY2iO4 pepT+ir17V1rUGuc7DnVj2lSaIwoFWN+R04lPm/7oa1a2RLXID0hv8Z5hKkF+nCBu2B8knwAj /oNY1qUZEnUz1qUPWWwQQH2qgKUHoTAy8kxPhKeO2TWGuT26GwCvuFN9P3hItGoY88M/e3ST5 l7/vpQcQA95uTE5yv1ZrZ/MhEd/KzvX4CDilxMl1Zi2meHOKhnyCuC6FJzKAWa9ichuQoWn4m plx8ZH8QEPp3yrTUaLXfn4v13WRuPRSpbX6qIveRps4adWSU/p5qji/I19Xoifaj/s0vsAMLh R6B04g7dGhMDouBLOuOMWAlZzidjtWJ5BO1VC1gwSFZC36pQRViCz9yYN/+Iqd3C0SSkX1Xsd z9EkSXhC1R+/E50QwRAsTib8Q5p66cr0BjXFBg54X5q4W/zjkZ1rnOvX/18NRCkGvabJtR68G mrFJc0E4eokxSOLprA7ZPBj2ZYT9TOZ12Yrr3VjU+6xdhdFEeKvp80Y8N14z+XJWw9f9JfLEK h81bk8fTLCe/jN2HgG0Xhbj8qHZ+hrv6dcGj9QQtNmuC3TxAKYslQ+um84pFPPeMERP4tLTsO yl+fgGYrrVTCapVXobJGqf8Yu0w7HOFwTWic+sXG1lN6DF2Q41FoUmla6v9fwifrIcZ2JroqO AhJmWyhl2yz8IcJpNc6qwmXJwd3NSK0b+1rv7yCuuHatxCpLgtabOVjzb1GkRPywpQFORq4QB QZ3xVIVIFskNaEvxN+0pY8vz+NUoSQsvPrY6h6E2DJcAgkSDwkvSUzCGNWQdTIMGTR408xPZL kStrm9p2FurZlgPo81x6bAbO+ys24KrKexI4mWiwLLrKrwI3DaKEALxf/GeB15L3SGMwRckmy PF33+Nf8rKgJMrcDNqo5NAIaVjDfW56HIHXJ1ZbTdrbt4wn6raXvQc99fxHDqIFH/8NXmyNps zV3TSh4lIBY+kRPLG3EYqq/L2EbnFjJTg/0ojtSxPpsnZfAO9J5gMBHvdd9Lz/iHEj3FLgQ1H o5HSZFwe9emGugB5wsFki+PuOef+oTe/mDYVZRl7uDJi/7zIm3aJcD6qzhwzwocYCnAA2lb3f AED19Rj+NCI8Mj1aV/D7PGeBopzkshrdXMjhiLLPBas6XoL/XPeMp/Un2NlRjJmn60FBqe2ep u9PBIKHP0OwbkTTeCRy0mK/cI7QSwRp5hmM/kUryPCNdav6FSpO5YC/1XtU3OiwG1dNYLhH05 5g6q2SaQCGcN1Ykz+qdQkz/tDPN4jrlNEbHa4pZmtItzpQtFTztWbrO9R+pNXphoOfvy5nrb+ 82VyT9WBE2I4ZLFknhqRG/Ci1V5lJqTyPEenEvQNl3phDecZpab7W9XBgmNGjN8zy24epAmB+ hCLAzu/CG+keCZe02xA+ET+xzchpXJ6OK9m9lrAZHDmzZtYB/ymMkkxXV+vOpGrWoDh8WWhph HJmvz6vy/HzCkUviRQsbJH6bwyj+55PH4TqAdJIiLMKO8DoYIPiRwQrzbcJCTcchD2ykmO8Ec /idNrJEuwbgz7YtZLlwAjtZZz0/rmI5Pz8rrFcIcbSQNKTLyJ52raK/NCWdc8qOFXRA/cxAbX FKM73fp22AsBvS8uTGdf/whBT6VSJd7f4+UbiaaFc4IpluwF/78Z4rMbXr3xKrJ0ET64rc/bj yIyuccJItoVyjFT0qC6wT5XvuMRiBmERIF6qxxU6yrpCcC788pPfTuWQd8Nbp7LBj1VJc+PMi G6BwS+Ks6Pt9EtlG3sybxgKKekW4M7PFYeVNlD1jqqgTrwEHVVoZz9Mm+FX6+DaoUjsuaVGFH 3O3m+Tgdt9o6Fnw0ruxz9WCgViqj43grO0wd85kASMGcPbiIMf8mGP8ya3gqF0KUhKjpSd/wO LlK0BcBFrXYDBZuhsSajRUzQoBnsGWJqX49VQpON3jQ00MAQwazzaww+WWQiDbcwxS/rDz5uM 2uaAi/S/eRr654kG0MenFOYEA0ZouDCm4Twu/pQjClptXRH0Q3rsNAuRS3MX32qgP3Go57yh+ 8VgrY0bTQ0DMO8QV1N0MYfv0l4sdC/QKCTb+yMOqtT6A0XyheRXEwkKXOe+zfrTf5mt17TFc3 gKBeHGEhbrlsEj6i7bVq69JPTbPbZvl0V+Hx20Y5qIv13k1gk0MEF9fLSEDxhj0Ipow/kEErn wPrHscyuRhiOQVLgjWeN84oBugDg2cQO/E/QN1P2hwYbLuu58YCwfCj9tHnT8W3ZaPnyr2ODJ 86V4g57iiMydQsRsKxjjgX1PSZqeSykoVEpd+c+Z5kulsnpGnPTfha8qwin55nGe/8/XeeKB3 OLL4ET1y0UYry3dc74AgkOja3o66M96FFrXSYyX8bcLHMIN/tPp40Mtq/hzT631Wt4jQ917v/ RUvmxqizaCdBqsCFF2i5LDDmkABjkjdatkypbTrAgeSfwRP4aiFzDdZGs8EjfOU3KLwRBghSb Gd5sMe9VPyerUvajEzbW+/fo1JVZpm0nFMKMvtQlQL+BKilbSMRr4MH3+i6ztBVg7UpLYxmTn zkyykSdEeIuP304nLGQCYSKSScA9yGTAotOpTov3IVxEfSXU9VCHBawcYNwOoemU9ii4wn4qE dorxWRVTR/yxAHlwjF1okXALTeMJaOQjhg5U6r2DZwiXTjlkCsHZcjW8dnl13ieU6MKkj/HvV 8ocmfNe6ZRelj5kQVRCjYWEkbqb1x5CQG2ihq4ifQ4jxT/aXhzH7sJiC2tA5qOJtYcQFCOGaQ jinV9DAd0kws7YIwLxiYsrctgx2139qj8Vwxg8KoMJEG8/YFVU7hDKpJsLtLLOSf7DMrAAVHR JmmY5EuXl6upXQzNLO9jKT/J4fi0L/V4/UcxFA+ooZnXat+tBF15k6QyqRm33GHElS0GdSujq OgiJOYD9kX1IyPl0cCzg1hT9pMmVHahhLDcL+H4X9cve0KmRUosOW58hGQrqfD3F2nJhHLtle cfs5Li9giW+fILjRMl9QxbS/3We1GbqlY+pk431gHXR7oPpodGQJM5R1oWULMIXA82yylaufg yEjA5TSS5QkUL0dYc= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446545246158500 With colo we load device vmstate during each checkpoint, on top of a vm that was already running. Some devices expect a reset before loading vmstate on such a previously running vm. This fixes a crash when using COLO with Q35 machine. The reset adds 10-20ms overhead to the checkpointing proces in my testing. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index 96102c9d0fb3b60e063c81ce07b730011bc4919f..dc7cfa81ef7db78e3ee372642de= 48567c5bc06eb 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -729,6 +729,12 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, =20 bql_lock(); vmstate_loading =3D true; + /* + * With colo we load device vmstate during each checkpoint, on top of + * a vm that was already running. Some devices expect a reset before + * loading vmstate on such a previously running vm. + */ + qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446541; cv=none; d=zohomail.com; s=zohoarc; b=jIN2d+A12vliysaBz3dfJkraBBQwbAzUPxpBBDGp3K7tkVikUWjwM2Kuy4vwxLFvf2jfdvb86bEL7rlfYoMieWwWtiH5+goSLaWmoFanPxz8wSBHpP7Wm4Weug6/vg5XOoCqEvB8FTTYbk8+ZUuayLcdQoOAyAxkbNRq8WljPqM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446541; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=YSxykUnLHj+SuX5ceNRivJWw7C8CFbfonhplWMaurEo=; b=kccE+sAxoXF6AEHecP8DUSnitj5PkmZLxx6dwBT10MthI1zRw50HyFu4dIWSC2yrtV4N4iN8uZqTRy4QtJKBB5yyPw9vWbDnEAxr5XE8scrlGIiNyox/c26fmUf98lrynx/pISlgUZXPZnnV5mtiWAxUFLjo5iTtmcAprQYUhg4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446541630868.1217518065608; Mon, 2 Mar 2026 02:15:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0He-0004vc-99; Mon, 02 Mar 2026 05:13:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-0004rv-SE for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00062L-RO for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:39 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MKuKF-1wFN8k1G0L-00PVcp for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=YSxykUnLHj+SuX5ceNRivJWw7C8CFbfonhplWMaurEo=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=w8uTKHGPcQWBDcXXf1ep4+f28tYwMArA35p+C4pPvgZomrdx6dNlZW+buBFfezO9 33QrX/LnnO83E5GmIfWoFN8cXyd78OsFiNBuWV+PARVcLc7n2pFUb8j7OKE8R+hZ7 a6CguOYyjZDz4io8c77U7M2uIg8mHfqQ4BJftBENprEmMIIaSXehIy+31zO7eofIP sj+IcAGwB7y+1QnH8G694sFYBY+1+rZYrdB95JNF6qxBW+yUJgDPFZPRmwVjXo8C3 ztjlfSCMut69Sb2fbeh76fHgZDjNc42EojVzxzz3KbtsDujrf8f3s5VTu2wqQ+Ip2 j7flLpz5BWmPo93llg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 11/21] colo: Hold the BQL while sending ram state Date: Mon, 2 Mar 2026 11:13:22 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-11-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1103; i=lukasstraub2@web.de; h=from:subject:message-id; bh=RA7Q8b6eDwgtboLVRiR+7AHIKPUv7kjwK/dVBwC/CXE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFkUSE/Eo9I+v/5NRleekEXxF4NMfVylZo8 hlHvH/s99uJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WJXkD/9/BwOb/Ha8TbQqGDDbA9+OEwlF++2+sziind9Is7okZBDBlFqo+XQTB2dUzA8oked56vI bhqMVOL6ZJj/PQBbhN5Wzf+Jz56IfFHn5VaK9ZcW0EfbLJlrrK9gRpWfi0dy5+p6RG08r/tdwFu lJDH9Xd7FvmtfgFTDigZjpZ/PeyTaUa91AVYVIFTNYDxISQaJFr8fB1T27oMWTHp8LI3Vig5nlA 69T/QE4XCZgOgoPqE3qChMTKTyBjf8n5zK8eyC73B5A/Lb4LaH6NuVV95qk6HlnFTltRBjZsUaB FJchYT45ygPu1bd0MtToo6Z6niq3Sjq1hLtQElKTLQ7VTmtGJ6n/+zw0bT1DqMsRatHamTK/Jh/ KinATTfyBPrdarSM67U7ocCczj8tSBjXHfc1yVXHfhgj8uIRKDCERVN5foqMT2jc2iFxD0Awocc 57h6ph2qpSVvliOCthilk41d25vvyc23MT+oXez9mu2QhnIi3OmbQ/GrnOhI6Rnd6mMhIrHCBaO M3iY6bxS6lME7xChxhIpymNFPDa24G9dt/3j0J0pNsHCWXVMw4+/TDme80EBrIi/UhLr3e6U3a2 kd/LZfJ2GFrnemgrXV7WiM5ixX2ndqYoufmjX5uWtDKduLDfxpgVnTOnmV+RXrnydu03rdT7xi6 /3J5Mzkjz1yvVBA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2M+Sj6boM0VtrF6kmpAOAhFYLAzgKuSuy7hQzmSmVVEp2k18nV2 Yw45Hyqg2EqCp69+qPr0H/JtxGrJNjmGW/djUzghGAFN4SsMOnPJNn4BjGP4cWfPk2EHF5u EX5kDDcwa0Yoh9hL+sm3Bn93zTK4qP3+H0tWUo7gID0ufcPLWnL4pxjctPkA59s7P6x0xxi VGMgDNiGPPSWMjXWNZo6A== UI-OutboundReport: notjunk:1;M01:P0:T6c1eFLDZzE=;N+acuQLn58mWCv1V6MsFIHZEnxF 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446543347158500 qemu_savevm_state_complete_precopy() requires that BQL is held. This fixes a crash when running with TCG accel. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index dc7cfa81ef7db78e3ee372642de48567c5bc06eb..3297aa593cd9f87bf1013598464= cc581a9d23531 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -455,9 +455,8 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, =20 /* Note: device state is saved into buffer */ ret =3D qemu_save_device_state(fb, &local_err); - - bql_unlock(); if (ret < 0) { + bql_unlock(); goto out; } =20 @@ -471,6 +470,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, */ qemu_savevm_state_complete_precopy_iterable(s->to_dst_file, false); qemu_savevm_state_end(s->to_dst_file); + bql_unlock(); =20 /* * We need the size of the VMstate data in Secondary side, --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446487; cv=none; d=zohomail.com; s=zohoarc; b=luAIlnFkZeF2sgBHGVQma3nsGLJMPThorR366ZpWSpZBmXSbQimKWlTR9NXGPLKTep3rjN5A0Nh/r1IjhPNNINy82K6xAzD8DfdJnimjuQ/SLxLPu3XEQVa1s5b87s945k4YwpTnh3u1FrHIObsWeuuyKof0xK3vby87pqbK7gk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446487; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=QnjLUeKSVlL/TnFvcfaE/7Aufpnl6G2wkPqvyU4/A9A=; b=RK3/cyFeRJGLAjrdEZs1r0qvpvZIjJszDUWTv1zZxUeczTOVegqBPrccqgcwjqQlcIiqNpFxQ7U4bcdp7zBezJGfci2CqO+xo4PoYAPtjgneGsXPdLuhD1VePPUNZ6Umz+svGzSH8f5Ostt8tUNCUeoQN+45ozf5S30/zsfQ+eY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446487485302.18056339008456; Mon, 2 Mar 2026 02:14:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hu-000516-Mp; Mon, 02 Mar 2026 05:14:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HW-0004tR-Rm for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:43 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00062S-Rn for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MtPvg-1vh8Jl1gkA-00zObg for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=QnjLUeKSVlL/TnFvcfaE/7Aufpnl6G2wkPqvyU4/A9A=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=FCBXKzoocnX+BIpVzQU2Gf8qwPK8nbTVrAmbtAuDZYZcj2RwCMXtBfLRLTs5I7L6 tvvD4NYIgN+qw1QO3LZmCyO96RqUqS+cdGimt3b02/kvaeKLARnSgB9KmonOImBCI +vP3FMfUfed/YxEj5EAHU2gXJNSvKajDvee+5TvuFvo9AIWuAl6lmsMJhNF5YYoJm dASISOB9RtFOB+tb+BB5CXHWDHoT5UfhVq/CjLn7kBBXAvcUXDXXZi4ZO/3QFRd2a 2QOXDrEdu2p2T9GtSjmgqjCGOIaSW/nNISV7bH17C/0ueqlyFUJVMcWipmUg25JWj FAqYzP70P70TZO0Ppw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 12/21] colo: Do not hold the BQL while receiving ram state. Date: Mon, 2 Mar 2026 11:13:23 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-12-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1457; i=lukasstraub2@web.de; h=from:subject:message-id; bh=5X2xJUQOZtX1vrH3iSE65Qld5dEQ8f6o9Mt01ciNeAY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFlo21JiUKbfdwKikD7uZOKtLYH2Ya44xoj /MJgvTiJGmJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WKwOD/9hRcEq7Hs1CiyPP6SLD1bPMI1vwY+LHg5VjyA+8raWuImj2wztrACFTRxhg/mhMLCgAqh UUqnjnvWpTaocYm4nJFnuy2nAVOxez+Ddmqv+urRPOf3riK+FdDTMsPOJIh5fOGS+iNRfYczibG bxbvQTn7lI3xjoJrRr90IfhlCTVkzcAuuvo4kCmzHmiiNKmd/EaDI7MW2rYejXTSE435FeE5CwT /cUf0hEDCic8s5v/Y3ytuKgdl/FeYYX1qAvIyrvb4U5e9yef00/+X6N6tW9xTjKFuYmwwUIdOQC vMS9AjeauZs/xi7N1xGdnrHIgl01N7876Uh0LQNj19YV+7y11wJo0nIgUJrR8TagtEW/WMVkBb9 a7bE/PPIU7NrH0nZpkT1TMfY6HM6UMUaouOLOf4zOJ6yqAqS+pfY282uXR3z8SZQv3MI8O95xZs zZN/gBO78z5+UsZSwJ32ttb4Bmby2gM2ZSa8IT7JXqvfTn/kdp2LwQVKzSYs3qKlAxqIZclbigD 6Hpb7eCyIqm9SxSqTmUU26C9fOYW1Ca3ni/V+ivxFBy5lWL7IQeq0xvppEiW9dzD0/ClXqzoWPM guxxyQVfM1j0iNdnTu6jd5YsUddOEZLC5XHUsS2FJ692kIpxRDlIvK2Ke8kKIHW38/l4WLg8qGY jEyqEuvlCrMDiCg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:qHywNqfO5/uWMExC+FzyhNKy1IpkONFXpOGlpmrrTl4HgOL4v/k w3R1XN5cZhoybfp0sa54uVpkl43Omf6t0o60Huzwo7Wl88u3u2aqYZgv0sP4eJjrWR4QXFw 6wT4UyKHGvoe1WqA0iSayqYQ+Rh/PkDPB1Kc1DnFWPmeKP8InLFz1SS+NCHon6lkmQN7vuM onNgRUOJ3RjMqc2snebjA== UI-OutboundReport: notjunk:1;M01:P0:lCZuSaQFVNo=;XTAn1KIIYMURvZCwVmQ+H74VZmq ARa42kN0btBgaOiFnX44QgRUIZNT5RfadkSuwIx5lfhBFJCHI94YXfHtoxJv0yNexcSuniJxP eRij6PzlEIIRWkFf8Pyea8Nt86i7Yv998Xntp1p7kyTvnVUTM2I1OuOtfQ3MQIn1ZgzyD6xxm BNqPj62q376H4nrqhlt3kUMYBf/REhEAmH4ygtmbHybDoB6K2FNSGa6vngYWBODWqeWjUSzNq bySIs3LaJWwJ1ThOJu2RYU4BI++8SI6loz7bz1dKWY8yxWL+6k9tYKt2TnJIG0dtJm1LW8+K6 z6KvDigY76KAAUGuZUBniCnGc1SAmgTxF36ncCipdshtyb3uKp/QyGmewu7p/s5dbE1FQDVBG fVeHShTJjqcq6qcsLoqAWrKqI7A4o5q5AezAIzfBfEDhYHUiI1b3Ot7fUupa8R5Fm9+7ZBoxu /2fKYIwxE3vYw78d1cvjTwCkITHzuA7mGCQuNsH4+i2uDNGfXmxisMvxESliTiw10D066jI/l HuYI0n2kJl3+XfUOZCcxMPNlRCgXQJNk7Tsg9zQint3ETylPo80DpYXTbRHqDvq5b5dp4zbxH YSxjlHa9piZr1//20pSnt1mtcRzOZEU9OeXv/1bkbl8dsg2i0CbqNWjhw5tBXuKkQeRXKeRlD Q4PyICpabtjZ3f/UN185SXQoeo+LGdq4/3UA+UKAljLLm6wKyB1DsYj4ChFbizUwC6lSksOYi TywhpLV3GuzzhmU4KSL1XNyFqJvfseUiwHAd2fWWX23M/GlN7EFSSXTC61dmdFmlOMHTwHPnM 3K8uEXWXdM9HYJPZJKSwCs6C7DpW4GXsnTRxros/F48LVhJzOuq8uWkia5mecXuE08NRWgfB0 uCysCpvPUCI7CfUwgQDGBHHUjxOKanWA5EhVRFuTudwqA5XqLI2NgxPqVw8paeDndOWPqLSP3 JjhEaMdR4pzYgtHAz+BwofinCkKIJsFrmYD084NEibZ9OXjRpOqqUaUfhIKBAqqQJWvXI3qUX MsLOHZO9d2Lb3ISdTwa6WSAqYEz+EhwVOQAgnJQ5uSE+oJbEZmflLlipkMowFn9dnmoC8upwK a8bFCQzl4s+RCpE4bMZxry/yqIE8KnzPW9PpMetX14ra8SfmHNrQFixv7TYuPeJenUCMEs8z8 MWKlpPqBiShr5EE4sU4wtqPvycXG7JiwznpUusrQIQFxE6b8AuqMbO78jRdhdL9GZ8vKHZU2t 29FZZS2mEQ8QxtLVamR+qfpbLNJuUa3zl9rRY7yxgVwc7mDTFzhiJynCzPJb/DFXGWrC4E2MS p+pcQ5rFS1d4aRzZZ6gEmCgobrIAOwaCv8cOlBmg9H4bQa39P67uBg+ObOKhZYAive16LEqp4 hniAeNbR8cXieAIrXQ+wvY0/+f3txczDDEOQBXZDyWQbRI0f5PHw3ZGsUDcv4J9BBz4MbIX2F 2Yh70+F+n5El9SqS2zfQwzehkO2cHo1Pm3dBEUQSwYW2r03u9gm5V+iRwbSEphx7cFuUaW+Em HY7VUJ1Y13F4dKJ/c7p0zWSvH31lpXz5jO0WGW5tNnVzz9CndIKc/AgZXp/0+piUM3hIwuUrE 9hrK6DUYm2Z1K7Wo9A1iZlKfpSzUasmJnwbq+HmyKu8UPj5jg5BDn9rk9IyLaPCVCnmrFHq/F NHCssatuW26q2R4TLcWcfvEyjtWS1bKXHWFi5tarDSyHRalgwwr9KoQ08MiSL25leD3tjo0rM vrRygpHLNeihcfyEMOMi1xyOEIPkls+qGBU7Dlzjma8Q3MmvWf/XhqZ6jJH4h3D28Ou3I7DiG f/WQ9cJXGykNvNLyz7XHYq2fXIsU+3xIFH1obFYYBreCSAuVFNYS2nDwyaZU4ULwx3l5+7FZ7 4ePMxs5I4fIZp7Wtwq4uK0bx+4oXHg5Re4tOO0lwXSAVhq8p0z4z+avg3lv5zLVxqjWnr2Hu6 M4JsEUh5MY2eGqBjXSmqIzt9qtJ4xpWQF7WliBTJM5Wvy0/h3uUopjNYfxuI2xujjVBQPQxOZ zyHmPo+EcZjDkSIdUC5u/gIS0FeuEWS+s45wU2s2ayedTeCnWG6iHcaO/tAlqOyzQgBPpuzTX 1Jz5hvB1iTwhz/yw6UloVoF/6/uw02n93ZiXaYEnGbRZ+S5JxMi8vQWPqbCyrOZjOmhrTEA5z QciIgJ65nAH6BwqP6Y6MkJW7XZvJukaFiJRXWrTbyVO6XAcu1mAU4NoeN68dzBweOcSmQIK+L CsbIvg+LQ9SQJaUXeNr++PfxGy6A/1cFYet0BBk445eaTPb9rDaeQuuJQg1+TlD6qHrpbMQ+4 2npvhDx3T4MhsjW5CEmbnTVy8rm0BiaGRI0ayCDjTARwR7ZxUxjOMsX3Pc2aTJm37jVnXi0VW R8pGuGmTrJFvwizWZ4HFUnfxO/znHtJHxDxYWL1Tw9D05sBaC5y8OegwDexA48jymMnp49S3J qX34wYTzCmQyfCcz8vG/gdDcRG38zNYcfLdcyLoV2CETKS7mkxWp+zmpE8h1UeoZzIeQsNgEY QUZkMfoccUQbvqW1v1tNWLY6bQX2YQA/JXCLvy7+O4EbZOM0L2vzWZdrCUwJdNIhgtF7PmLHl hY0CHhydsXyYakFWTmyl25dEMqjwnJvO7LhwR2O13lJ1xH96OX3NlcRp9jYgNIydNU4BOLCy/ RSuLreRiE24Rx0gr5iHNeNJ7mWgPT48WWrAftctcYaZ1xuXTJXD+8mcTWATbPoBN1nmpJIMvM bdeV1wj8ihxO1OPHhsMLKJJzaPfA7232so3in7h2nx7S03Sziye7qtcs4WU1QIkE5bP0/mB2y Yi25xlCxnwiCpvsp/z2pA45u+p2TwGJTqzKv0uRP8lJw24gY+0Jt3AVR38JcXkZRH+R+iHfJV Q8/B8/mXyasHsmZL1EgeRzqNj4+3cbb9IkmPY12cE4k4M1hq4RT2BfY9+lExihtI7zOWew/df ZRslYJnI1dP8zg4RG1mj1tx2MZJ4RQhfW700pOWJZ3lv3Mpv+IDjz4uUMJc8X2M9wcjXGGC1o 2JhuuIeJbFSNCySSMQ67m59pmJwVwFMjQ0fAKjWpclYGf0zDD2eb2x+8Eit0h53jKyegPqwcg FBFwcW98XdNNcZ97suyy1POqlv9WUj5rxlssj5M9V0+09/RYV2ya41MbUDd0T5E8C2PYJeVId Ux9vyvjkE3KzUTp+paXlbanUTp4kqNcPU+7qukLyiFqjo8tL1teyiNOmSAGMb9d2wX4wrqiG0 /cRAumt591IqmGAYal+ziiO5A/GNNEY4uDmGBV4BmYIq/hzD2bXXrX8X6Rx1uP5JxZZRuYbqT fl+f1j19Oxw9LuvzqXK9zEb/vU2q5cT37+XTWYJtyB5GEqKDhTH05r6a0tyNEF0YFUDsPt0T0 fDDZWAgc/NEbVav9nJNzJqfyvXcG6ls2c3qaa85J+JMvgj2QUe9zmnogZwVDNZ2Q40CDuCSgi kc0bRXNYFEyv1FDYcisBdDUdZ+sCY1w0Zw3VMOWjyToZ3MkGtXr+F0clngAUukwEHAZNlwjbo v8jkpxU2zFGA0KuZ7OzhCIPChg/cU8+Pc6CxfscS3zlbKZfRY0eP5cqX2ccaxwY4baW2zsSdC 6drxdmYUWullPJODo/GoTk9CGA44Q8en6mokoC3QcaVWMl4O4f2BYYCOUIgdbRBl0sZtGoyIg YBnPuvuSdThv9/cj2+NiVbDACJfLpHnK/cI673nfpIrUeAlODL0eA9XLPzctQe6yR9yMm30Tz JwkX35ooaNGs6u2Zd1E92JQGahTaby8QNiR/ZkVjGpTdsB+x/3R7GnmarvJI2EUxvODDDzhL2 vsdd1QuSjplMkmK+OO6uynZF9U8Ub7LchLa1LgaqlcFBCgAZ9B+0nT7g9k+8CAQTV6IZxMkAr Lwz+yQYe/6utAS2rrSm4xvdOm/edIRkfO2w1r6f9fj5G2xykujPoeYIHi8/ts1u8RCA9gcsnU FXz7r7OUOLyiqyBUeGrmpx4TZ7JYNjLfdHkVO/I2Zmuc1Cgy8hADz5KukZvjfuXJOnHwKqod1 cKvmzHSBc/Y/TqMswgCoZMwLlHC8OUT2qUZg0vSQf3Ws2iAkU0r9kxFF8RXOzk25bQs9agnD/ ywcFDQQtbnzDdFys54OIlSStdLfExfW4jhstn/B3muRaCvERdD2l5JWurDbOMkMblQeJKgOz6 vU//silnzl0jZqsTiBxkA1d7DEyc+v8foJK+jwa6aXl5KW9Zn33f+uAb3FlWpZVG7zCsy5qsu /Zlw29eUmf+45dyQzEnBM4F1EFJbQ+4qjDB9rCdIt0W7HjKuxusymSpo7E0um96WfibpoSOJc 5SYw1umbKRYKHB8l6S8QX4L2LytpjAwsgw+H+b4Vq9S8wdXaN6rI5a7o5vubCBtU8l+uicr1c j61x0QoZFnJtoS5hSRs87ws+7lZPXvGfPjgQnNuyEdegTvFkYbdAQSgvuOmoUjbxWi3eBWJfK Jay8VTRtXkuxmuPEZQfqSUWZ1WxO8wCbdGioJE3rp1+R/InYx9awXuhoY6hbG7dC3bUgqDe55 /nda8CTq8Qa9YUrhUbn1flY+pOGiNO3yyGsw5TTEbs7P9hgUgyj8WOdBm7b45pGAylYef0khQ XDqadQ9ET64L2eBEzXyANUiGcoee4O4j3MHM+pVTO2Y3wDbdix+KTqNf+HHIq8oX6tkY8P+E/ C6gDoNVLGyjynLwx2wtml9EPCnTH2L6xdBHVPjEuZpwo14cwuAioxxe+fWk7HkBsU7bXJkSjr TVxdskP+SL1S8RVCzoqb1oOS9/PlaNCD1g3g76JGeLt+qNaJqmQUEAXx02uJ4BlWWiVX4oNFX 0+h3Pkx/veUxUobVCZkjHX7ZcOTzE/RwF+7i3Lbdgl19g5qZTvtVJfHHgJhveH9v6eIwhzUdr fKHBZhwGFbA/4a6zgD+IfUtfANnjor/aNhVGG65K/klqT+iEqQB4UEe998UxAs4+VVpIkPURd gUL1ZsnRMTZFnwskFLtw0xamr1YDJZivoXCEMEL0tyerm5ssmS7M4YFXZC9BTUaLOoT6V9VwM m2Mtb5t9hpV81RIsKc+5E4IqEePIlszpYAnKxuVzwtj6HvCbJAt4SXe+z4fKK08Sxodxd0f9d 0ilxM3ncYqrZBDOfg= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446489096158500 We only receive ram into the colo cache here and don't touch anything else, so the BQL is not needed here. Move cpu_synchronize_all_states() downwards, before we apply the received checkpoint. It turns out that qemu_system_reset() already calls it for us. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 3297aa593cd9f87bf1013598464cc581a9d23531..ce02c71d8857d470be434bdf3a9= cacad3baab0d5 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -686,11 +686,7 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, return; } =20 - bql_lock(); - cpu_synchronize_all_states(); ret =3D qemu_loadvm_state_main(mis->from_src_file, mis, errp); - bql_unlock(); - if (ret < 0) { return; } @@ -733,6 +729,8 @@ static void colo_incoming_process_checkpoint(MigrationI= ncomingState *mis, * With colo we load device vmstate during each checkpoint, on top of * a vm that was already running. Some devices expect a reset before * loading vmstate on such a previously running vm. + * + * NOTE: qemu_system_reset() calls cpu_synchronize_all_states() for us */ qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446567; cv=none; d=zohomail.com; s=zohoarc; b=EwY80a41PwFeWoa7WkQas1FFSG7xM2l3fh+1zTprz8P1/GA5eCaqAks46SamlcmSOH4X56g4v2w0NllekcpYNe65gWdN1HTzpEX2oFnnHTo3qCueyMu/x2DJnrMS9BMzHUYBV03gINLf37sH5qtWv4jl4Tu7/AIxms0V/4HOPQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446567; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=HxiDYFgacPvgSqtV2BRTOBlRJCdeGvyIqxMJefcSLYA=; b=IfqSvWkiY7C8oSgUlh1xt6kJIXShi460XZjF/cP0Ek/8uB3AJZj2aHZpzxHGUigPDkN3QVqDvYvmGVkKd/ieVFI5QdxaXjUCZeAS1hnZcwwI6s4HmSi60iU/t0Bbl8NWdbfI4DqyIBxib4jPwpNRV7e+Xk7opBmR4OLOoZxzcC8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446567478695.3266848421841; Mon, 2 Mar 2026 02:16:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hw-00055n-DP; Mon, 02 Mar 2026 05:14:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HX-0004tb-I2 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HQ-00062X-RV for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:43 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MKdLK-1wFe7f27Po-00Pmbi for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=HxiDYFgacPvgSqtV2BRTOBlRJCdeGvyIqxMJefcSLYA=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Q54tAosD9CcPP2JXCl8kAiIHK3NrmvrtcTdCnw7JI2GYyx2ui3a2QEJjEI7ZBxds y3+MjljEwHs7fdtKOm8BAoBT8tLX1IpwoEEpbDvwQbIVt4+BQh4EyczzTfpJshbJ2 3Xp7xRRtPxbaKt+2Ty95CaqczjTWgflzCRT6iZq4OxsUAYVr56tgsgHwocPHyVYWo m4Y1KaC9mjnK2s5u15EsZOTRxsjcPmkELU9B1hQkBQQ/kTyowBD80xQ+Q7GLry4al fue0RZlvnrv0jrRCjmRV7X3+0FSxUqT+j0SrN3WUQMedNbF/iAfPi27dt+Jh1YKTz 2qeE77qRLfRuo1Shdg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 13/21] migration-test: Add COLO migration unit test Date: Mon, 2 Mar 2026 11:13:24 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-13-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10668; i=lukasstraub2@web.de; h=from:subject:message-id; bh=VhVWaFr02/WFdhcd119EsGPo60ArzchyNKMe18f0Kks=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFgMJIn7bDdJPs+oc8yDcHTbbXme9VqYk/B MdwOWYVUy+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WBgBD/4vQA/VW+bzeaUqMWW4PvYjBWTnwQNSyOLhiXlAeJim9ajNNJXhVwEJyLkt+prb1figdVG Rr0BlM+EbqOjdEmhlLU7pmqgaX7EPhN7ULy4o9kLyyIMazSvYYXpSJHKLYW8S/8l1zLXfVIqYNO LKje4bAVZHP3W0+MRIy7InI+FXfnIHUPSWmNWLrfWzzpRvd4DwqdgSaUiOIfEv7GkxeR6hY5Gal 1iaJ50DWR/O98PmLz6sDzGfW4/hy+z1ly8ZPBOKbTyNI/RzeBGN1NK6vMrMbeYmju1z/830NZf7 VMC39GuMnuzuMBQDcK+0rzPoK9nZWoUBj2fzj0DCcNAJfbTF5mDYyQaQ9eizS2JzRaNlULY5mNR nwbUq+2sZFDN51zPsDu8s1hy4uPK9VaTAkUh2Bg6OwX3VHPQeEYIZtqjxVefy5z1wxexTjyBBsL KoL7W2G1bQOWEvrZzuiOxEzfPBX2IRtn3hEwU2eGJumZKgLIe40ep1hBPDcU1cEAsa6d130nkYH l/pGF0Bgy/SA0j+x+To8ASUJrzFA22TRtBAbnpRPCDVfdEIxs6hj7FApT68VstuZtyH3+FwGqc5 QC43vhh2xAbpGE+d1wJXyQuq8THc3r85b9CAmMnlW/9q4ve37Ak5MJFeG1QtsHcOdRPPu5JgRSH SA9AgSMqdgKy1SQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:4Mxx7RqjGpK9jTyCqsu8PoXWh9MYOCfMcEKU8F+JQhoVX/TXBVp lW3Vw7WjaXIzHmV7HSblDy/3TG0c7DKvddJ6Aaael938zaXATFuvdBefpNPulMquZJp3yBH lemVBjdQfkRYeBoyX5jRVk9oAS5BvUtG1wkxPbq5T8/6kTfJ/eZG44BHWquwEIaEm7f10m8 SlA5mkJdKhwviI+0g4fPw== UI-OutboundReport: notjunk:1;M01:P0:p5UGxCGIdq0=;8ppT1+JiMY8VfPcFDPLtpejOHsC 8qjj22NxysbR2Gl0vV3a2h1sPqFcUzWViRA0LWRYyQVzbwiZcQFrRcPD316rOMzkM/cXDEzXW 8DVUlHDjuo9VZG2CYxdH7HxN2MRe/MgM3Cuq3vktyJCFLFSwe3CGBVsU9p7d6QtjE6+f5mJQe ldyDKSpyj/dDWDx0zPUr+qKEFMn+2Zkr6VSbZnQHWv9OMjPiyGhCipEi4pD38ZCC/VWWBwDfQ rOz35Vy7F0c/8WvZmoclAI2fMNMr2tQCAU5D07Lw/eJa/fLkJV9UUGntYBkm7qNm3Yu+itQPU d8BWsAGyaDgXh8PkWVJ0vPQ2zHRZhP5M8eUQwe8x8NMn/PieSoTo3MXrSPAAjrfgeB38XSRbR TlDWyQChnF0pQsxrAV1gTLMVkyLvKRaGR79YM4VFDXGE7QaKCN5qDxRuFsxuW0ewHMlN2juuC BLDRQ50dGJJ9D218SDcKh2/zxfMzeAllnyOiJIaNcaInONvIYyd9N4++89Udo9fD0574Z0jbh EpdfhmldFgIVQ0WGnK2+0ChWkWTmT74O6u7ASnf/6GmsVR/JW36YylutLx/6/uhu50OAClPAx ONDcCriTBny0PMh+Cd4Yhhcese0p71hMegLvThYyjlGgZB6LfR9ClOg2p5yRRgtlaA0hv3cNt 8POd2J4wrQGkWX/SHMsBsjsptERPnQRsdo8K2IeODqtjmqYfiTlXzVDyyrLgaolkHJQ3mPqp8 kiYXzr+HehUzOJDqrQMuB/uP+Q1lHinVTidovvP229nLsmOj9hT5fbTik8WGE3IygUWbbYpOf BjWr5YLyXdn8mOcuKYH1N3YBRk7on8MQ7ahj9f8PN3X4jZJZyNTPXLO7TfGgD/PYovimInUa6 h7C/4SmzGJKDaJeQ21qGg0OK2cCq+AAAOVbwGy2PE2mx88WyoQxgDA1v1dFuf6Grz7AIUT0vN RoKAvYap5ARZjnD4Gtj5flvaSlV1y6pGIKvDY7ZXOcgUgVNCyqlwKM1Pu2Ta3Uvej080uGQFX njhp/AmAtpGL4DNzXMLru50KqEX+h8YbhnrGPuQBqgIMGHDU3equqYvntEYGVBBsdPHDNd2Uk HeI7hWkKLINkxytqK94afvtPlcNLaVMhrR7ZuItjUYK+97OkrNr4TL8k4cr/xnzZor1MGIEtJ 35UaL2VuDz4kxGFuFZYrf4OMUj5JuIwfnCyW3wMeItOI/UKOkC5vaVt09zvT/gkPyT57PPMrN bM459R0qEW6Ha09pGdotuXhJhAbUtSC2kSPWoAzu3h5/UEYl7jYgLxqxfYp1IlCHmRw2R9pxL 14sb1NjfKZAjLKB02aHMtBuLVXWq3pws3rRUx747kxGmFPkCinYclp3FCkkLYPbg2Pqf/ijtv y5nEJQTpOkhIfDDM+k4APvcjXrNH/fDgHXkv5OCOjKwyGfKgv/i60Jd3JjKdZb4pui9r/tAV3 0BYm20cXEkPi9uhgu8RS5S3vP+aYBGT/0W35FhriRjvWc27CnwJDKYp+RYvs98AIezhJPt+Fn uAymyDbtrA5Gg2i4a6w7b9Xw5suWh+H956vNGqld9vmOpYOakZsnzAXvpFgOoTbVop7f+sMM6 rfT0lk3ikwIps1VCTbuYRTDOUhLRUgxk+gqu/9SXftaxJpJERguxugMj/HGWW7s3XF2tHYTqq PpI/pKD9kHRHQN8PbDaJz37c9W1mHcJm4wd1Kw3U1D1dCJGvRNt9gj/C5T4RR7A3GCNcDBZoX W7Z+jvBflDpqzB3VXSaAzcb9S8OgqeZm6Z6S7LXlNvj/Ug7BEAU1vmlF82El05ryoaDma5E+u TJKRjZWIPKEeQZEv+pHZOmrsy4pCxVIs6GMrisCxMwXkEknV5FhC1JqaPOqV4FMVNKezR+wZL hiqLfpt5xUsTRCZwneXUtLmAKyvZqgPsbSc4yjhlcAArrU+2jsiDZCgBVC1nzdjrmfnBQQJvk BI+2l82zbwNpmE0Ihrf2Gl7akywTmWzjMTJpmE82PIayoS3eK5bbyL+ll0yq6PsPi8chJHkKm zScSbhvNONCgxZBIccevfnd7egPlvryCsGEmNduvKIcJzagbhseNzLNntEFwxwOHZFj7lIdW8 XwwYNIooyMKH1bhdnSQullsPCy0w07Lvd30bp7jVxQtSYRSxVw3Gc4WIQ6QmjlN2pwnKeegMO 2nNU+kl6ocm8wGBtudtbf++jPg4tjGeJRKS1iex3ZGqcsKPntpQPZjpW2Ua2C7x10qAEZw8Rh nOL3IR5M6p92U0ImBX50JmbQP9SLvZ3DDgx8r8D+a9T77qyMyhf+lc8ousgKW23L2xKvC2swF YXhYLEZcLG8kNfWh2AZz3kjBAE2X1/ncnPyqoHTlpWHv8gpYMqafByudpon9tctPL+xQ1JdL4 1+bZwjnUwO1/wBI/FNlhsk7VcN8O7WhS3t7aGJehiQEshAryRCb+afgkXonf01V1/4LVdubds gguq5cR9UVYOIJ1yKTsc3xUr9LXWkQG7CnYPLIGZjrYC+bCRtTEROMkoHx2lnq4GIG0Pxie0x gKUgI+JJ3W4YNm5xERGOJSjxy8701RMJceUCSiRcltmzY3xxLdkGjJR4/BnPMaWGn21Kkssk8 pk2QPsaQwvKLAC91yRnm9i5LyRN3jeus5WxWAPlLL4ZVltqsnuvnOdzNST4GRw6ZK6OGScopv bntYDvY3l3Xjg3NFUpg+Lc4ro/4oDqMdoPuVgAQfsXcuD8FJIaNpogGeitdV1S8miTHGvm959 1sDtTS1xK0ukRTdU5Qp/37xt9TrNHv9OchB/mox0SDf6pG6IY1sA6evEfqP8ideKYvFFz1aDk AC91vsLohZlkRJ3r2R4VjXIEcteqnEi14pcMCTYCqLYyfxJknAjPSA57pQqosO/DU42GApJzj oUvlFVqFc3BOi3RAVjxfFs9Is2ajA/BQS/5DKbwi4yAIlkuDR3pnB3sOmgppbMntyjipD/CLo CaYZ46v55VWSWawBK7vQ/HExlbyQE+WjLqGA7HqYWR/2bdP8hO4aB2aDW8B9OxPZPwNbtpcY2 kKCEmC99bwk6IVjN+DpkTuYwZdCguYjds98ZHM6/c1ZAoekLDbDpMSlfALD0Vt7ro9x1ILZsW BXcjHmRXm3pUmUZ1rXMqusDF0HQ3mI3CEFVQmOziFKils4KXUJyr7X8mL7fgxqjot6MFN2a8T xom39k1rvZQLrpZRO4WLwIVm5yvRuPvZJq1AsibDs8z5Ky5N+exfB4QEsrRlHh754kw29CfXN dhHhWIgQA63TKlTv+hnmLLTjG+yYOIq2DNrn8I81nfXS2ZH0V12NK5zZz/M+8NUxCw26KKQ4w lrFqG7V/TuFCSjARisd6Un/txO+0JD6S8zAEEuZdGvM5VG1xUXpNnP/qH/9OzGV5y00DlZsEo IblLwnNfBfPz1fdR68wc4EJSa2/LZ7NklSIGedA3gZ5mTmr3SvFcMBhWjV67bMiJXd8QogfxB WsHC+6Q3LHvwFr+DGkQqMsxcrfXLqL/reYO7Bxb+4iXLWjiCoCTvPDpgze7Pz5D//GytiAnKG ddgu1N7jH6Nyuu0vIoKmpKwrssDsZyfUMBoJsE5hKa8xBLKfFTVKDKsI8knsuRsp/A4R6XyKc jhRQwyJHJplw6C3e5YFJaKIi+hZwl5Cz7opT0+ynHelxt8dqolJKn3+jGprFJJEiCVntlJ1MC I4aYts7Lq50SflSYASL5iwTMIO+fQfC592JSJ56gS7pEJkYWYyZCBFMOodyM1anYq7eJNrPCt +/K5tfU0xciavbLxVPhm08J60TJxigcYYx0h0AKYhDq7JBVdRbHsmPW1tVEvyOBNtBpxMuUpb 8Ats/7Gyuc1TdlVN2ecRPGGpBa73uNRbR9vQEyfTXNMchPbENZswoFVFJ/NbbSuSdJm+HdUyV MQonFIh9Bt4xlTvG9fbLwIRnNslfiMub811BPnTaypYBhkTKtmBu+MJ+DjsP6WvPiARRS1Mpv UZ8Avrg2Tl+1m0St4OlIbc1+yyaIRbstw+r0KaCFSMDO8ge5f3+aKDJiRFYVAu63+TFmldV7N ycrHGR0jFMMWyPRdzKFkGKii0GHot5uG3BM16zdI4PqErLgxM/T1wJVGwKDUSAnNxA1B7X2nI UYEBRBVJG68ajO8lYHF8yIDw0nwtCKSBRhO1QgQ2fvBE3ti4o9yMrQs05vMeJljWsikF+dFGc VBlSOiG+8FGt8sWzHquQZecmiu4QzO783F5Q5Jc/yeq5ySyiAzaPIgA6UFZ2LsgbXV/BOPQYI Y61aWZrW27783G39aTt47AzhO9npsdto47E3WNiRff9IIGtjWGaah8iryjS/HMSUSgaGiAe9Q fPKaqtBURQJmNhz6mm3PaCdjbPwT3suxcaY/BSXBSyYg9XYOxDKze4BdVam+d0t+paGn4y0g2 pliXArluMfr9cZFBKTcpv+JGs6RcyHJGu55J9t7bKVDt+r4oXMcc5EEEjq+HHTXq2KP7a+WAR hiQ3N+DNFLC3hkgGbHQpfu6CdkxUU1pMHpLS+Qqa+Tzrk9W6CNhiBF9qYsB+gC13POGmeOajT EJoBjCoF9joRDDO2XK3ZjMw+Zmd5Axe4VC8fDmzlhnX1WBQoihGpe3tdYnQ0RJ7nrlqT1iblI JgL+o0YMK+ZHrEB5AXeN/3qm0aUjh/RmrByead0gLHCSVd0053Zfuz9ce2hDCKnEjAHglRfdn VjxGiyb+6KLEHQ9aIxT1SKWtQ+FhbQF890MzQ8mmbWlgOCGcGD04rT8k4/VfBNFCifZWqqgtq 7DC4WEc4icAljC5qQyIxgBhyyHl+17EWw6Kgg9MZ3nGwWtns/7EqUnVLyUvAyWzROks830zWh o4Xphhv5/W5qZObeGQMSEuZB1S4DeXLYCWWac8HZknx9qgpuKmRkMsR2M5aJHLGlGznqs99mi cggM9g43XtMlpVinJlWAojrBoHVoYnoLTT5UR0baW6rywdhb6+JXS/thVG5Nnyl9GxYMHSIXs lOk8aw/TqIb3aTZb8jslR9x5C5c5sZOdPwn2PvZag2c1fmEPQRzD7wURqRqsqxXMRj+IIzfb9 TPMSUmeKAse0ErRdHds8Pp/0is0ofeMpytUDaXVKx9uKoCGzf2z+XpkdlP15p4Ohy72THz6ic vzF8StqbosAMKqgW2hOJ7JH6btzUn+CeEE41K+20jQEeU7akVRvQddbgH9WA== Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446569646158500 Add a COLO migration test for COLO migration and failover. Reviewed-by: Fabiano Rosas Tested-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + tests/qtest/meson.build | 7 +- tests/qtest/migration-test.c | 1 + tests/qtest/migration/colo-tests.c | 198 +++++++++++++++++++++++++++++++++= ++++ tests/qtest/migration/framework.h | 5 + 5 files changed, 211 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index d2a1f4cc08223cb944b61e32a6d89e25bf82eacb..1b0ae10750036be00571b7104ad= 8426c071bb54c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3875,6 +3875,7 @@ F: migration/colo* F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h +F: tests/qtest/migration/colo-tests.c F: docs/COLO-FT.txt =20 COLO Proxy diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 25fdbc798010b19e8ec9b6ab55e02d3fb5741398..6a46e2a767de12d978d910ddb6d= e175bce9810b8 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -374,6 +374,11 @@ if gnutls.found() endif endif =20 +migration_colo_files =3D [] +if get_option('replication').allowed() + migration_colo_files =3D [files('migration/colo-tests.c')] +endif + qtests =3D { 'aspeed_hace-test': files('aspeed-hace-utils.c', 'aspeed_hace-test.c'), 'aspeed_smc-test': files('aspeed-smc-utils.c', 'aspeed_smc-test.c'), @@ -385,7 +390,7 @@ qtests =3D { 'migration/migration-util.c') + dbus_vmstate1, 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], - 'migration-test': test_migration_files + migration_tls_files, + 'migration-test': test_migration_files + migration_tls_files + migration= _colo_files, 'pxe-test': files('boot-sector.c'), 'pnv-xive2-test': files('pnv-xive2-common.c', 'pnv-xive2-flush-sync.c', 'pnv-xive2-nvpg_bar.c'), diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 08936871741535c926eeac40a7d7c3f461c72fd0..e582f05c7dc2673dbd05a936df8= feb6c964b5bbc 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) migration_test_add_precopy(env); migration_test_add_cpr(env); migration_test_add_misc(env); + migration_test_add_colo(env); =20 ret =3D g_test_run(); =20 diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c new file mode 100644 index 0000000000000000000000000000000000000000..598a1d3821ed0a9031873270202= 7cebad47352fd --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * QTest testcases for COLO migration + * + * Copyright (c) 2025 Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "libqtest.h" +#include "migration/framework.h" +#include "migration/migration-qmp.h" +#include "migration/migration-util.h" +#include "qemu/module.h" + +static int test_colo_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + QTestState *from, *to; + void *data_hook =3D NULL; + + /* + * For the COLO test, both VMs will run in parallel. Thus both VMs wan= t to + * open the image read/write at the same time. Using read-only=3Don is= not + * possible here, because ide-hd does not support read-only backing im= age. + * + * So use -snapshot, where each qemu instance creates its own writable + * snapshot internally while leaving the real image read-only. + */ + args->start.opts_source =3D "-snapshot"; + args->start.opts_target =3D "-snapshot"; + + /* + * COLO migration code logs many errors when the migration socket + * is shut down, these are expected so we hide them here. + */ + args->start.hide_stderr =3D true; + + /* + * Test with yank with out of band capability since that is how it is + * used in production. + */ + args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; + + if (migrate_start(&from, &to, args->listen_uri, &args->start)) { + return -1; + } + + migrate_set_parameter_int(from, "x-checkpoint-delay", 300); + + if (args->start_hook) { + data_hook =3D args->start_hook(from, to); + } + + migrate_ensure_converge(from); + wait_for_serial("src_serial"); + + migrate_qmp(from, to, args->connect_uri, NULL, "{}"); + + wait_for_migration_status(from, "colo", NULL); + wait_for_resume(to, get_dst()); + + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + + /* wait for 3 checkpoints */ + for (int i =3D 0; i < 3; i++) { + qtest_qmp_eventwait(to, "RESUME"); + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + } + + if (failover_during_checkpoint) { + qtest_qmp_eventwait(to, "STOP"); + } + if (primary_failover) { + qtest_qmp_assert_success(from, "{'exec-oob': 'yank', 'id': 'yank-c= md', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}= "); + qtest_qmp_assert_success(from, "{'execute': 'x-colo-lost-heartbeat= '}"); + wait_for_serial("src_serial"); + } else { + qtest_qmp_assert_success(to, "{'exec-oob': 'yank', 'id': 'yank-cmd= ', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}"); + qtest_qmp_assert_success(to, "{'execute': 'x-colo-lost-heartbeat'}= "); + wait_for_serial("dest_serial"); + } + + if (args->end_hook) { + args->end_hook(from, to, data_hook); + } + + migrate_end(from, to, !primary_failover); + + return 0; +} + +static void test_colo_plain_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "tcp:127.0.0.1:0"; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void *hook_start_multifd(QTestState *from, QTestState *to) +{ + return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none"); +} + +static void test_colo_multifd_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "defer"; + args->start_hook =3D hook_start_multifd; + args->start.caps[MIGRATION_CAPABILITY_MULTIFD] =3D true; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void test_colo_plain_primary_failover(char *name, MigrateCommon *ar= gs) +{ + test_colo_plain_common(args, false, true); +} + +static void test_colo_plain_secondary_failover(char *name, MigrateCommon *= args) +{ + test_colo_plain_common(args, false, false); +} + +static void test_colo_multifd_primary_failover(char *name, MigrateCommon *= args) +{ + test_colo_multifd_common(args, false, true); +} + +static void test_colo_multifd_secondary_failover(char *name, + MigrateCommon *args) +{ + test_colo_multifd_common(args, false, false); +} + +static void test_colo_plain_primary_failover_checkpoint(char *name, + MigrateCommon *arg= s) +{ + test_colo_plain_common(args, true, true); +} + +static void test_colo_plain_secondary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_plain_common(args, true, false); +} + +static void test_colo_multifd_primary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_multifd_common(args, true, true); +} + +static void test_colo_multifd_secondary_failover_checkpoint(char *name, + MigrateCommon = *args) +{ + test_colo_multifd_common(args, true, false); +} + +void migration_test_add_colo(MigrationTestEnv *env) +{ + if (!env->full_set) { + return; + } + + migration_test_add("/migration/colo/plain/primary_failover", + test_colo_plain_primary_failover); + migration_test_add("/migration/colo/plain/secondary_failover", + test_colo_plain_secondary_failover); + + migration_test_add("/migration/colo/multifd/primary_failover", + test_colo_multifd_primary_failover); + migration_test_add("/migration/colo/multifd/secondary_failover", + test_colo_multifd_secondary_failover); + + migration_test_add("/migration/colo/plain/primary_failover_checkpoint", + test_colo_plain_primary_failover_checkpoint); + migration_test_add("/migration/colo/plain/secondary_failover_checkpoin= t", + test_colo_plain_secondary_failover_checkpoint); + + migration_test_add("/migration/colo/multifd/primary_failover_checkpoin= t", + test_colo_multifd_primary_failover_checkpoint); + migration_test_add("/migration/colo/multifd/secondary_failover_checkpo= int", + test_colo_multifd_secondary_failover_checkpoint); +} diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index 40984d04930da2d181326d9f6a742bde49018103..80eef758932ce9c301ed6c0f638= 3d18756144870 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -264,5 +264,10 @@ void migration_test_add_file(MigrationTestEnv *env); void migration_test_add_precopy(MigrationTestEnv *env); void migration_test_add_cpr(MigrationTestEnv *env); void migration_test_add_misc(MigrationTestEnv *env); +#ifdef CONFIG_REPLICATION +void migration_test_add_colo(MigrationTestEnv *env); +#else +static inline void migration_test_add_colo(MigrationTestEnv *env) {}; +#endif =20 #endif /* TEST_FRAMEWORK_H */ --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446473; cv=none; d=zohomail.com; s=zohoarc; b=W8mZipfS63JuaTrT8byTwgrgSL4hL/xBvW54n7KbnDi65j8xYk3Snd2U41a8mGHJ+6bVBbD0R+v8x85G291CBRdXI8fhIVTgLpnvWkUH52XCmmV6j+1AMs9ajO9d5T5gkx8RKbSTTFEd5WtUmwuAR7/nnMDvuiYtTVAE4qHQ2f4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446473; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=5ZMxuZledCNhBkww1q32JXmc44pD1RwIeIS5m+4DSPs=; b=WbuwmkAHvfNLOByPJIZJ3FNTEGZNL736ERfkiCX8mLYH+nPUNjq/cBm1vbE5GmGNPqiaX3CaZg8xcNMjLjD06jKz9fQAdfPkL2Ld53F2pTcukbkvPSv+r2gzG9ydzXnQ2dKFRN5LHdvugFmIsxlQGtuTVj2HY64yIywFXRjU8ho= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446473433866.2027118106591; Mon, 2 Mar 2026 02:14:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hy-0005EL-3I; Mon, 02 Mar 2026 05:14:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HZ-0004tz-6Y for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HS-00062b-Lf for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:44 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MwR0J-1ve6Ru2Z5J-00wNX9 for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=5ZMxuZledCNhBkww1q32JXmc44pD1RwIeIS5m+4DSPs=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Yl4BTUtyd9kZzLGUbaBbLZmAFx+0UrFUm26YuRew6Ry76NqgmwNQOJkxXGnXdEyA mu8a1lkwcFVGii8GcUgWOrrg6qFagdis9NzrxPTDR8MLXkLgYbDrznuHBwLSRUuGU d1R/a4iMf1r8TyH8o/AtSyf6sCTpaCR1JawL03K5Koh5HYGPqJwCg8bOPek3G8QkI XiHyEArfuEd8EYKNEFl/qGbjsNtWl2t5myP2WX1VeqzZBHwSeG4Uw4FtHCLyfMiIU bT4OSRhOBZVRltXAQrlTrKFs8snvM3PeSMJjWUpmyhYPWIiwLixd7NxpxTMDV57mu e98gFoD33xoYi95t1A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 14/21] Convert colo main documentation to restructuredText Date: Mon, 2 Mar 2026 11:13:25 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-14-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=41531; i=lukasstraub2@web.de; h=from:subject:message-id; bh=ifBF4hUr+Rs6qxvXE1tWijcBFlkplxnUJNPDi8Qzm/k=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAFxA129Wui1hvOcrXPMhENvup6lIReMfnJZ 6+GifSorUWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBQAKCRA1qwsonF2y WMudD/0cGQKwQjL1PVdCJUY7wf/K3xpf6N2KdrMsGQhrbN9XLsuronL6aOhArYxqJzyTyiWapnL uRv0bQ1JPKkXA2Iv59HjOD3oFaPgCcPlw/9JmgKlTNmd6yoGegW6T3hEuNihH0LGa3tTwmQWJWB c6b81n70I9nAtO2MG7mX2sbLJygD+abzmXffTKoSdwZ7cbPy+zXMf+t0vxBnTaCK/Vw/BckN0ce fXxcYRC26wrlpfIXcn3mcAn4zeM8AlA02pwrnlyAVMVX+W5m1xCryN+oH0rvT1z0lcNESl40v1R HyNvbtenKnvSNfZ6xybIB2iEctBKj4kHTKU/KSRt9ZYJn7/J0j0dR7D5ASN74SoPPt4jmVmdKO1 qW7Kf+TVDI9XUY+6DAL8D0THh3xkdMNmPfGEyoH3jPOg2Na7suecJgBENKSQfRURWOW25AtFtWI G1KhnhFPMS+xTgEAUIyEyqZ2qEvykSl03S1stNbrFaaGdnfO1/U8OYoEHvRQf4LaWUAXJle+hXq ALBWPZImf8tJ370px/BljEbDPkslPUYl0kAc/5cPe8VY2cLht8tsFKMedIS55gkgYoTmnSAHMvY ZhdMaiQe9WSb9YeKmzf3c/wQlgH8QOzaOvg7LE4A7fadwwdEAw9dmSC5W05nA10bXfRq6pzeCXd 6mxio/0mDZ/VD4g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:uwZyFIyNks+mA89mJKjzJUYqGNeLjcIDRmFYM1Gxh3zmjmRSi// O1wWuM4BrM0ZqNNQCoX69ulKysS2Ryr6fcQXH2ljrUW2HkN6lVNw4P7JjJXPFKgYgWhjLJe YqBW7IrJq2HIz9fP7AdffjsO4GNP3DnK6tSnLzpBMeUjBZDOlsItf8mWcSHkXheJRa58/7I hDYFUKRM+j+2GSNRTrpZA== UI-OutboundReport: notjunk:1;M01:P0:13AX0FVEJ1I=;TpVLw/Or+9RFTBYOH4zo0sy90wJ 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446485217158501 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 2 +- docs/COLO-FT.txt | 334 ------------------------------------------ docs/system/index.rst | 1 + docs/system/qemu-colo.rst | 360 ++++++++++++++++++++++++++++++++++++++++++= ++++ 4 files changed, 362 insertions(+), 335 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 1b0ae10750036be00571b7104ad8426c071bb54c..32ab4b1faa29499ae9067088ae1= 739e52680cbb4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3876,7 +3876,7 @@ F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: tests/qtest/migration/colo-tests.c -F: docs/COLO-FT.txt +F: docs/system/qemu-colo.rst =20 COLO Proxy M: Zhang Chen diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt deleted file mode 100644 index 2283a09c080b8996f9767eeb415e8d4fbdc940af..000000000000000000000000000= 0000000000000 --- a/docs/COLO-FT.txt +++ /dev/null @@ -1,334 +0,0 @@ -COarse-grained LOck-stepping Virtual Machines for Non-stop Service ----------------------------------------- -Copyright (c) 2016 Intel Corporation -Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - -This document gives an overview of COLO's design and how to use it. - -=3D=3D Background =3D=3D -Virtual machine (VM) replication is a well known technique for providing -application-agnostic software-implemented hardware fault tolerance, -also known as "non-stop service". - -COLO (COarse-grained LOck-stepping) is a high availability solution. -Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the -same request from client, and generate response in parallel too. -If the response packets from PVM and SVM are identical, they are released -immediately. Otherwise, a VM checkpoint (on demand) is conducted. - -=3D=3D Architecture =3D=3D - -The architecture of COLO is shown in the diagram below. -It consists of a pair of networked physical nodes: -The primary node running the PVM, and the secondary node running the SVM -to maintain a valid replica of the PVM. -PVM and SVM execute in parallel and generate output of response packets for -client requests according to the application semantics. - -The incoming packets from the client or external network are received by t= he -primary node, and then forwarded to the secondary node, so that both the P= VM -and the SVM are stimulated with the same requests. - -COLO receives the outbound packets from both the PVM and SVM and compares = them -before allowing the output to be sent to clients. - -The SVM is qualified as a valid replica of the PVM, as long as it generates -identical responses to all client requests. Once the differences in the ou= tputs -are detected between the PVM and SVM, COLO withholds transmission of the -outbound packets until it has successfully synchronized the PVM state to t= he SVM. - - Primary Node = Secondary Node -+------------+ +-----------------------+ +------------------------+= +------------+ -| | | HeartBeat +<----->+ HeartBeat |= | | -| Primary VM | +-----------+-----------+ +-----------+------------+= |Secondary VM| -| | | | = | | -| | +-----------|-----------+ +-----------|------------+= | | -| | |QEMU +---v----+ | |QEMU +----v---+ |= | | -| | | |Failover| | | |Failover| |= | | -| | | +--------+ | | +--------+ |= | | -| | | +---------------+ | | +---------------+ |= | | -| | | | VM Checkpoint +-------------->+ VM Checkpoint | |= | | -| | | +---------------+ | | +---------------+ |= | | -|Requests<--------------------------\ /-----------------\ /---------------= ------>Requests| -| | | ^ ^ | | | | |= | | -|Responses+---------------------\ /-|-|------------\ /--------------------= -----+Responses| -| | | | | | | | | | | | | |= | | -| | | +-----------+ | | | | | | | | | | +----------+ |= | | -| | | | COLO disk | | | | | | | | | | | | COLO disk| |= | | -| | | | Manager +---------------------------->| Manager | |= | | -| | | ++----------+ v v | | | | | v v | +---------++ |= | | -| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | |= | | -| | | || COLO Proxy || | | COLO Proxy | | |= | | -| | | || (compare packet || | |(adjust sequence | | |= | | -| | | ||and mirror packet)|| | | and ACK) | | |= | | -| | | |+------------+---+-+| | +-----------------+ | |= | | -+------------+ +-----------------------+ +------------------------+= +------------+ -+------------+ | | | | = +------------+ -| VM Monitor | | | | | = | VM Monitor | -+------------+ | | | | = +------------+ -+---------------------------------------+ +-------------------------= ---------------+ -| Kernel | | | | | Kernel | = | -+---------------------------------------+ +-------------------------= ---------------+ - | | | | - +--------------v+ +---------v---+--+ +------------------+ +v---= ----------+ - | Storage | |External Network| | External Network | | S= torage | - +---------------+ +----------------+ +------------------+ +----= ----------+ - - -=3D=3D Components introduction =3D=3D - -You can see there are several components in COLO's diagram of architecture. -Their functions are described below. - -HeartBeat: -Runs on both the primary and secondary nodes, to periodically check platfo= rm -availability. When the primary node suffers a hardware fail-stop failure, -the heartbeat stops responding, the secondary node will trigger a failover -as soon as it determines the absence. - -COLO disk Manager: -When primary VM writes data into image, the colo disk manager captures thi= s data -and sends it to secondary VM's which makes sure the context of secondary V= M's -image is consistent with the context of primary VM 's image. -For more details, please refer to docs/block-replication.txt. - -Checkpoint/Failover Controller: -Modifications of save/restore flow to realize continuous migration, -to make sure the state of VM in Secondary side is always consistent with V= M in -Primary side. - -COLO Proxy: -Delivers packets to Primary and Secondary, and then compare the responses = from -both side. Then decide whether to start a checkpoint according to some rul= es. -Please refer to docs/colo-proxy.txt for more information. - -Note: -HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess -by using 'x-colo-lost-heartbeat' command. - -=3D=3D COLO operation status =3D=3D - -+-----------------+ -| | -| Start COLO | -| | -+--------+--------+ - | - | Main qmp command: - | migrate-set-capabilities with x-colo - | migrate - | - v -+--------+--------+ -| | -| COLO running | -| | -+--------+--------+ - | - | Main qmp command: - | x-colo-lost-heartbeat - | or - | some error happened - v -+--------+--------+ -| | send qmp event: -| COLO failover | COLO_EXIT -| | -+-----------------+ - -COLO use the qmp command to switch and report operation status. -The diagram just shows the main qmp command, you can get the detail -in test procedure. - -=3D=3D Test procedure =3D=3D -Note: Here we are running both instances on the same host for testing, -change the IP Addresses if you want to run it on two hosts. Initially -127.0.0.1 is the Primary Host and 127.0.0.2 is the Secondary Host. - -=3D=3D Startup qemu =3D=3D -1. Primary: -Note: Initially, $imagefolder/primary.qcow2 needs to be copied to all host= s. -You don't need to change any IP's here, because 0.0.0.0 listens on any -interface. The chardev's with 127.0.0.1 IP's loopback to the local qemu -instance. - -# imagefolder=3D"/mnt/vms/colo-test-primary" - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name primary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don,wai= t=3Doff \ - -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Don,wa= it=3Don \ - -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server=3Don,= wait=3Doff \ - -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ - -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,server=3D= on,wait=3Doff \ - -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ - -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirror0 \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,indev=3D= compare_out \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outdev= =3Dcompare0 \ - -object iothread,id=3Diothread1 \ - -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_in=3D= compare1,\ -outdev=3Dcompare_out0,iothread=3Diothread1 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.driver=3D= qcow2 -S - -2. Secondary: -Note: Active and hidden images need to be created only once and the -size should be the same as primary.qcow2. Again, you don't need to change -any IP's here, except for the $primary_ip variable. - -# imagefolder=3D"/mnt/vms/colo-test-secondary" -# primary_ip=3D127.0.0.1 - -# qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G - -# qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name secondary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-ms= =3D1000 \ - -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-ms= =3D1000 \ - -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dred0 \ - -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3Dred1= \ - -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ - -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.qcow= 2,driver=3Dqcow2 \ - -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary,fil= e.driver=3Dqcow2,\ -top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active.qco= w2,\ -file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/seco= ndary-hidden.qcow2,\ -file.backing.backing=3Dparent0 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0=3Dchilds0 \ - -incoming tcp:0.0.0.0:9998 - - -3. On Secondary VM's QEMU monitor, issue command -{"execute":"qmp_capabilities"} -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "da= ta": {"host": "0.0.0.0", "port": "9999"} } } } -{"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable= ": true } } - -Note: - a. The qmp command nbd-server-start and nbd-server-add must be run - before running the qmp command migrate on primary QEMU - b. Active disk, hidden disk and nbd target's length should be the - same. - c. It is better to put active disk and hidden disk in ramdisk. They - will be merged into the parent disk on failover. - -4. On Primary VM's QEMU monitor, issue command: -{"execute":"qmp_capabilities"} -{"execute": "human-monitor-command", "arguments": {"command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", "nod= e": "replication0" } } -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } - - Note: - a. There should be only one NBD Client for each primary disk. - b. The qmp command line must be run after running qmp command line in - secondary qemu. - -5. After the above steps, you will see, whenever you make changes to PVM, = SVM will be synced. -You can issue command '{ "execute": "migrate-set-parameters" , "arguments"= :{ "x-checkpoint-delay": 2000 } }' -to change the idle checkpoint period time - -6. Failover test -You can kill one of the VMs and Failover on the surviving VM: - -If you killed the Secondary, then follow "Primary Failover". After that, -if you want to resume the replication, follow "Primary resume replication" - -If you killed the Primary, then follow "Secondary Failover". After that, -if you want to resume the replication, follow "Secondary resume replicatio= n" - -=3D=3D Primary Failover =3D=3D -The Secondary died, resume on the Primary - -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "ch= ild": "children.1"} } -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= del replication0" } } -{"execute": "object-del", "arguments":{ "id": "comp0" } } -{"execute": "object-del", "arguments":{ "id": "iothread1" } } -{"execute": "object-del", "arguments":{ "id": "m0" } } -{"execute": "object-del", "arguments":{ "id": "redire0" } } -{"execute": "object-del", "arguments":{ "id": "redire1" } } -{"execute": "x-colo-lost-heartbeat" } - -=3D=3D Secondary Failover =3D=3D -The Primary died, resume on the Secondary and prepare to become the new Pr= imary - -{"execute": "nbd-server-stop"} -{"execute": "x-colo-lost-heartbeat"} - -{"execute": "object-del", "arguments":{ "id": "f2" } } -{"execute": "object-del", "arguments":{ "id": "f1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red0" } } - -{"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {"typ= e": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.0= ", "port": "9003" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.= 0", "port": "9004" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.0.= 0.1", "port": "9001" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend": {"= type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.= 0.0.1", "port": "9001" } }, "server": false } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127= .0.0.1", "port": "9005" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9005" } }, "server": false } } } } - -=3D=3D Primary resume replication =3D=3D -Resume replication after new Secondary is up. - -Start the new Secondary (Steps 2 and 3 above), then on the Primary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync"} } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } - -Note: -If this Primary previously was a Secondary, then we need to insert the -filters before the filter-rewriter by using the -""insert": "before", "position": "id=3Drew0"" Options. See below. - -=3D=3D Secondary resume replication =3D=3D -Become Primary and resume replication after new Secondary is up. Note -that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. - -Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), -then on the old Secondary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync" } } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "queue= ": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } - -=3D=3D TODO =3D=3D -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. diff --git a/docs/system/index.rst b/docs/system/index.rst index 427b020483104f6589878bbf255a367ae114c61b..6268c41aea9c74dc3e59d896b5a= e082360bfbb1a 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -41,3 +41,4 @@ or Hypervisor.Framework. igvm vm-templating sriov + qemu-colo diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst new file mode 100644 index 0000000000000000000000000000000000000000..4b5fbbf398f8a5c4ea6baad615b= de94b2b4678d2 --- /dev/null +++ b/docs/system/qemu-colo.rst @@ -0,0 +1,360 @@ +Qemu COLO Fault Tolerance +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. + +This document gives an overview of COLO's design and how to use it. + +Background +---------- +Virtual machine (VM) replication is a well known technique for providing +application-agnostic software-implemented hardware fault tolerance, +also known as "non-stop service". + +COLO (COarse-grained LOck-stepping) is a high availability solution. +Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the +same request from client, and generate response in parallel too. +If the response packets from PVM and SVM are identical, they are released +immediately. Otherwise, a VM checkpoint (on demand) is conducted. + +Architecture +------------ +The architecture of COLO is shown in the diagram below. +It consists of a pair of networked physical nodes: +The primary node running the PVM, and the secondary node running the SVM +to maintain a valid replica of the PVM. +PVM and SVM execute in parallel and generate output of response packets for +client requests according to the application semantics. + +The incoming packets from the client or external network are received by t= he +primary node, and then forwarded to the secondary node, so that both the P= VM +and the SVM are stimulated with the same requests. + +COLO receives the outbound packets from both the PVM and SVM and compares = them +before allowing the output to be sent to clients. + +The SVM is qualified as a valid replica of the PVM, as long as it generates +identical responses to all client requests. Once the differences in the ou= tputs +are detected between the PVM and SVM, COLO withholds transmission of the +outbound packets until it has successfully synchronized the PVM state to t= he SVM. + +Overview:: + + Primary Node = Secondary Node + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + | | | HeartBeat +<----->+ HeartBeat = | | | + | Primary VM | +-----------+-----------+ +-----------+---------= ---+ |Secondary VM| + | | | | = | | + | | +-----------|-----------+ +-----------|---------= ---+ | | + | | |QEMU +---v----+ | |QEMU +----v---+ = | | | + | | | |Failover| | | |Failover| = | | | + | | | +--------+ | | +--------+ = | | | + | | | +---------------+ | | +---------------+ = | | | + | | | | VM Checkpoint +-------------->+ VM Checkpoint | = | | | + | | | +---------------+ | | +---------------+ = | | | + |Requests<--------------------------\ /-----------------\ /-----------= ---------->Requests| + | | | ^ ^ | | | | = | | | + |Responses+---------------------\ /-|-|------------\ /----------------= ---------+Responses| + | | | | | | | | | | | | | = | | | + | | | +-----------+ | | | | | | | | | | +---------= -+ | | | + | | | | COLO disk | | | | | | | | | | | | COLO dis= k| | | | + | | | | Manager +---------------------------->| Manager = | | | | + | | | ++----------+ v v | | | | | v v | +---------= ++ | | | + | | | |+-----------+-+-+-++| | ++-+--+-+---------+ = | | | | + | | | || COLO Proxy || | | COLO Proxy | = | | | | + | | | || (compare packet || | |(adjust sequence | = | | | | + | | | ||and mirror packet)|| | | and ACK) | = | | | | + | | | |+------------+---+-+| | +-----------------+ = | | | | + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + +------------+ | | | = | +------------+ + | VM Monitor | | | | = | | VM Monitor | + +------------+ | | | = | +------------+ + +---------------------------------------+ +---------------------= -------------------+ + | Kernel | | | | | Kernel = | | + +---------------------------------------+ +---------------------= -------------------+ + | | | | + +--------------v+ +---------v---+--+ +------------------+ += v-------------+ + | Storage | |External Network| | External Network | |= Storage | + +---------------+ +----------------+ +------------------+ += --------------+ + +Components introduction +^^^^^^^^^^^^^^^^^^^^^^^ +You can see there are several components in COLO's diagram of architecture. +Their functions are described below. + +HeartBeat +~~~~~~~~~ +Runs on both the primary and secondary nodes, to periodically check platfo= rm +availability. When the primary node suffers a hardware fail-stop failure, +the heartbeat stops responding, the secondary node will trigger a failover +as soon as it determines the absence. + +COLO disk Manager +~~~~~~~~~~~~~~~~~ +When primary VM writes data into image, the colo disk manager captures thi= s data +and sends it to secondary VM's which makes sure the context of secondary V= M's +image is consistent with the context of primary VM 's image. +For more details, please refer to docs/block-replication.txt. + +Checkpoint/Failover Controller +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Modifications of save/restore flow to realize continuous migration, +to make sure the state of VM in Secondary side is always consistent with V= M in +Primary side. + +COLO Proxy +~~~~~~~~~~ +Delivers packets to Primary and Secondary, and then compare the responses = from +both side. Then decide whether to start a checkpoint according to some rul= es. +Please refer to docs/colo-proxy.txt for more information. + +Note: +HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess +by using 'x-colo-lost-heartbeat' command. + +COLO operation status +^^^^^^^^^^^^^^^^^^^^^ + +Overview:: + + +-----------------+ + | | + | Start COLO | + | | + +--------+--------+ + | + | Main qmp command: + | migrate-set-capabilities with x-colo + | migrate + | + v + +--------+--------+ + | | + | COLO running | + | | + +--------+--------+ + | + | Main qmp command: + | x-colo-lost-heartbeat + | or + | some error happened + v + +--------+--------+ + | | send qmp event: + | COLO failover | COLO_EXIT + | | + +-----------------+ + + +COLO use the qmp command to switch and report operation status. +The diagram just shows the main qmp command, you can get the detail +in test procedure. + +Test procedure +-------------- +Note: Here we are running both instances on the same host for testing, +change the IP Addresses if you want to run it on two hosts. Initially +``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. + +Startup qemu +^^^^^^^^^^^^ +**1. Primary**: +Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +You don't need to change any IP's here, because ``0.0.0.0`` listens on any +interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu +instance:: + + # imagefolder=3D"/mnt/vms/colo-test-primary" + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name primary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don= ,wait=3Doff \ + -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Do= n,wait=3Don \ + -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server= =3Don,wait=3Doff \ + -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ + -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,serve= r=3Don,wait=3Doff \ + -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ + -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirr= or0 \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,inde= v=3Dcompare_out \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outd= ev=3Dcompare0 \ + -object iothread,id=3Diothread1 \ + -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_i= n=3Dcompare1,\ + outdev=3Dcompare_out0,iothread=3Diothread1 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.drive= r=3Dqcow2 -S + + +**2. Secondary**: +Note: Active and hidden images need to be created only once and the +size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge +any IP's here, except for the ``$primary_ip`` variable:: + + # imagefolder=3D"/mnt/vms/colo-test-secondary" + # primary_ip=3D127.0.0.1 + + # qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G + + # qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name secondary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-= ms=3D1000 \ + -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-= ms=3D1000 \ + -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dr= ed0 \ + -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3D= red1 \ + -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ + -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.= qcow2,driver=3Dqcow2 \ + -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary= ,file.driver=3Dqcow2,\ + top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active= .qcow2,\ + file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/= secondary-hidden.qcow2,\ + file.backing.backing=3Dparent0 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0=3Dchilds0 \ + -incoming tcp:0.0.0.0:9998 + + +**3.** On Secondary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet",= "data": {"host": "0.0.0.0", "port": "9999"} } } } + {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writ= able": true } } + +Note: + a. The qmp command ``nbd-server-start`` and ``nbd-server-add`` must be r= un + before running the qmp command migrate on primary QEMU + b. Active disk, hidden disk and nbd target's length should be the + same. + c. It is better to put active disk and hidden disk in ramdisk. They + will be merged into the parent disk on failover. + +**4.** On Primary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } + +Note: + a. There should be only one NBD Client for each primary disk. + b. The qmp command line must be run after running qmp command line in + secondary qemu. + +**5.** After the above steps, you will see, whenever you make changes to P= VM, SVM will be synced. +You can issue command ``{ "execute": "migrate-set-parameters" , "arguments= ":{ "x-checkpoint-delay": 2000 } }`` +to change the idle checkpoint period time + +Failover test +^^^^^^^^^^^^^ +You can kill one of the VMs and Failover on the surviving VM: + +If you killed the Secondary, then follow "Primary Failover". +After that, if you want to resume the replication, follow "Primary resume = replication" + +If you killed the Primary, then follow "Secondary Failover". +After that, if you want to resume the replication, follow "Secondary resum= e replication" + +Primary Failover +~~~~~~~~~~~~~~~~ +The Secondary died, resume on the Primary:: + + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "object-del", "arguments":{ "id": "comp0" } } + {"execute": "object-del", "arguments":{ "id": "iothread1" } } + {"execute": "object-del", "arguments":{ "id": "m0" } } + {"execute": "object-del", "arguments":{ "id": "redire0" } } + {"execute": "object-del", "arguments":{ "id": "redire1" } } + {"execute": "x-colo-lost-heartbeat" } + +Secondary Failover +~~~~~~~~~~~~~~~~~~ +The Primary died, resume on the Secondary and prepare to become the new Pr= imary:: + + {"execute": "nbd-server-stop"} + {"execute": "x-colo-lost-heartbeat"} + + {"execute": "object-del", "arguments":{ "id": "f2" } } + {"execute": "object-del", "arguments":{ "id": "f1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red0" } } + + {"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0= .0.0", "port": "9003" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.= 0.0.0", "port": "9004" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9001" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend"= : {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "= 127.0.0.1", "port": "9001" } }, "server": false } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend= ": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": = "127.0.0.1", "port": "9005" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backen= d": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host":= "127.0.0.1", "port": "9005" } }, "server": false } } } } + +Primary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Resume replication after new Secondary is up. + +Start the new Secondary (Steps 2 and 3 above), then on the Primary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } + +Note: +If this Primary previously was a Secondary, then we need to insert the +filters before the filter-rewriter by using the +""insert": "before", "position": "id=3Drew0"" Options. See below. + +Secondary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Become Primary and resume replication after new Secondary is up. Note +that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. + +Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), +then on the old Secondary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } + +TODO +---- +1. Support shared storage. +2. Develop the heartbeat part. +3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446542; cv=none; d=zohomail.com; s=zohoarc; b=QE/TFj84H6MMdUjSkKcsMUwH5LU+yjOttVwM2ZgiVye4WshetP8HUiMHzew+JUjlWl89ivfeuz8MZ6qFO0ciLAjQRijiuP0hOuDgmFG0DiCLKQtHHhiY57NYgcRMqEmqAKrEIRmg1CRSSZoNs0UTV3yxsilp5Jtc58yuaonrFXg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446542; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; b=UA1S3q8RoETVmgp9xLLN5yppnJfCvXuaqBFK2sKu/VrswEZMFXeVdqEhFmnomJIRQV10s/5Ikh60Y/Nox3IVORCrHwU1UZIfmz1VTXmBTc0tCHcwDpuUxNJ7P/MxYmUx9uMuFayYEwYrmyV7nKun8lVcLuO+GlJ1LvaBOX9zLJw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446542432987.3117342971705; Mon, 2 Mar 2026 02:15:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hx-0005AN-DF; Mon, 02 Mar 2026 05:14:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HY-0004tr-9D for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-00062f-Gq for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:44 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MCXVZ-1voRZc35Xf-00DvrZ for ; Mon, 02 Mar 2026 11:13:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446415; x=1773051215; i=lukasstraub2@web.de; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=T8H38GvibVHDMvX8tmDGec2/he4Ng8uVfJQQk+F20GMDqvpsrgtfRRE8NuRR747T l28zcP2IrdxpNAEWJwhuma1uVuQfOJalhTbdeulr0a9cmA2hjYIAXoIZQFo88D0p0 J77+ufIN3ko+rgbeyks92u34vZppHlxGKSvfnTNUjE8Oi7aclnDH9ZSeduDpJxx/p 2xa3FqRdiSmKDfd9tM2f03cAULyOERfY/ScvpZjV2DKyRR3QNVjCRnpU5Ds85x+s9 arn5nlxhNsr8ucvaqJnBv9GmLcfHocPOWv1M7/3deUF1gr2L6Jb6aX4eTgkyvCVuc 8mXGsi4UGXK1Fhvw3Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 15/21] qemu-colo.rst: Miscellaneous changes Date: Mon, 2 Mar 2026 11:13:26 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-15-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3240; i=lukasstraub2@web.de; h=from:subject:message-id; bh=xf4Mr+LNhtrRhluncnlq21hBJuEc0CRkqsQ5PC6uWik=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAGnQrFjunfOAd3sncp3zqkwqLLDOi4IqdX+ WDFnPygBWKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WHMbD/9UdfWfkf/VDa6V/rnKTbxKvTmVuy2NRDG1kH7yIXcnL3rd8cFR5q6+oWiisjk5XmuvamZ hMaoUQTsGJF2W2mafJ4alk+jERdtruf6NLpz5RWmW5KbTQThV4iciE2RwCxYtwwCvfEArJuTxHm qBWQ+ZoRPoM/i0c5GuTgN2L8L1SMuKAp5c9E4fSmWgBjnZLKAsk7ScPHYy2ZWZaW/TKMc1FLydv LGx8E9RMOT+TYjel2SUUv4rHzRPWKmJ1HZ4MD2R+HmNUumptV8Ef4VQ+XorUPY5j7EWKeUuDLCD 6jBupD0R4C+EYbJVBozWUNg9nqmB/qi4FpC5K95sWDwfywKBOOwj4xjAvI6wEjbiMh/C+rsFsx9 VypXG+O1LY+SmjZo3bEJ3OiQSAE+mrFlELxZPEe3q8549bEBkjmGWyzmhXQXf8dKIBrP4ekXRtq ngtL0mfC/N16/Pus9aIXLOrRmQHQ/zse7qHrQyjQng3UvtDu0tcBf3NntsypTNCnAmgCr67b0ot /yZx2l7YYtylUjJHSrRDUR55rg0a4Mr6eLOTNyfIVxfsGWx9bBztbDGC6HzprANKUJWpQavkup5 4qGnf3NmA1u2FX3HmZ2UUNUcForLYw/qA2uMqQ+76/D2G/5M4Kkzo0IuLUXo50qViDW4mcCdzzm 9p2M/orx4ttRyuw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:JR4GNZZsq8g4GuBS/Axe3H615FRU8lkIsrcuo+k53NT+I8Y84e7 N5qWajCWqN992/UHpwNUhUzjd9w5A05eB/RBcMTBq4So87nZgbHD3VOi1hLkIvXdZikcE+p Bxrqpn5Hrpep3cCYWWtOtpjR1Mtp+l8ZsMYvlr9PGvtlFKNXtZyCsZJYKlNW3DZlB6O3RDn xf+PpZ3JMtjgIoEhIlMKA== UI-OutboundReport: notjunk:1;M01:P0:OtXG/Ps8g+0=;ILI+TDGcT77fbAP6CZx5ePOGket 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446543390158500 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 4b5fbbf398f8a5c4ea6baad615bde94b2b4678d2..a70e61aa09391cda933031535fa= 982d27cf6654b 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -1,13 +1,6 @@ Qemu COLO Fault Tolerance =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =20 -| Copyright (c) 2016 Intel Corporation -| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -| Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - This document gives an overview of COLO's design and how to use it. =20 Background @@ -82,8 +75,8 @@ Overview:: | Storage | |External Network| | External Network | |= Storage | +---------------+ +----------------+ +------------------+ += --------------+ =20 -Components introduction -^^^^^^^^^^^^^^^^^^^^^^^ +Components +^^^^^^^^^^ You can see there are several components in COLO's diagram of architecture. Their functions are described below. =20 @@ -157,14 +150,21 @@ in test procedure. =20 Test procedure -------------- -Note: Here we are running both instances on the same host for testing, + +Setup +^^^^^ + +Here we are running both instances on the same host for testing, change the IP Addresses if you want to run it on two hosts. Initially ``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. =20 +COLO uses double the guest ram size on the secondary side. The Qemu version +should be the same on both hosts. + Startup qemu ^^^^^^^^^^^^ **1. Primary**: -Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all hosts. You don't need to change any IP's here, because ``0.0.0.0`` listens on any interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu instance:: @@ -192,7 +192,7 @@ instance:: =20 =20 **2. Secondary**: -Note: Active and hidden images need to be created only once and the +Active and hidden images need to be created only once and the size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge any IP's here, except for the ``$primary_ip`` variable:: =20 @@ -353,8 +353,9 @@ Wait until disk is synced, then:: {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } =20 -TODO ----- -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446560; cv=none; d=zohomail.com; s=zohoarc; b=QrmlJx1m6BXxe4URC9rrJfzhwE8LXMc4wNZcIR4gZsbZ/TeZ+F9KnbRk02Gp78SmR7jRbTCwThuw9LkVmyYNvM4uqRC8Ocg1OiVbogk3VjNzQJs+LBlU7jqW5pitee8V6AQjRAaEuCCHEO/nrkmfYafPTAy+RdFDP9EGYEs+uE4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446560; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; b=EdzWSr7iVNaJEr92GhgDOxtRDbzkkyakB3O08UXHW1JPZRBXQ7uFqo3NmO626jgjqXLSdmovBXdCmMO4ASyLfCrL8BBK6hH7G6PeJnBJhQ1LHBwG6qJ6sscCGRtX4LkI+8EsCtdLdP+Wf+kenWtTIKIGq9Aij7dwednxymVkuu0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446560445235.5660872447802; Mon, 2 Mar 2026 02:16:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hg-0004wO-OP; Mon, 02 Mar 2026 05:13:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HX-0004tV-1v for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:43 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-00062n-GM for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MFrxl-1vtyPv0ECV-00CqI2 for ; Mon, 02 Mar 2026 11:13:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446416; x=1773051216; i=lukasstraub2@web.de; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=wGzpLKV2Z23VxXQxDPDQvGj/+Tq8O8oIYmGctSQ3TTL27FnI/MRwB+sBuD97u0BI qZHKNuv29Y+lwVBO7m86tytmJE9vMWpHzf2ynkYM/cYnWddJsDAIR6W03PJCCB36p ifXkJyHX4ImAgOvoiuWpzx9zpv4Aduw2cjU2q06AaLmVmNlnlH8VZ5DbNWptH2jlr NFeAtNGIeeBofR5f0i4KqEBTS45zZ0B77WqW58cwOznh00KthN7wuQmyuQf2VEABi KB9byfdeXVTrQcYQ/KyHnc+R0Va3MPgsljGKM38BwKyadwLojJnFPZ7v07sdB4lPb T46irXs2s1Q+Ef8kdg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 16/21] qemu-colo.rst: Add my copyright Date: Mon, 2 Mar 2026 11:13:27 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-16-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=954; i=lukasstraub2@web.de; h=from:subject:message-id; bh=RBjsUyK419OI2tM2s9seVXuGPbNJkvd1FTM/9fBKVHA=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAGG1qfYLFmZqWaXJZpT0nJFRzya1nRvJ9CJ 4DBUk7EhHCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WGkzEAC7AfGiIX1SNIm4UAkBPYhaK/xxJ4RFZdqHzyhAoRhETIS0+fIgCbwp0nPlsT7uL+7r8Np Xh21jsnPlVPN9wPO1BW+pzpjgbj4pmLix3MSIhIxvV3dzq9+YBC4FF67372GhFjps7I7rPmlKUX fG9M+J2sPUwKOqjqdK/G5QtoUn3BImp+UxsJ9F2uqgmeo+1Xpi1kRayW0OLbFKnxiAE2+KIzo23 1DRCnGUqAJYpkJ8YcRsAHQVbo7IZqCipwPFgtPh/zFRaPXujL+yPmhwiCyRGnhns7DGjVHzyadg Mznp5mLZ1UOfdQMSOeqO0kALs0Y+jkDGyfadHOs5rn82qMha8yd1zNJrOZLrYyUqsSfOjKJmrOa It0YBkG5z+bUGnM3BPbKUETLzMkfU7HsZKRag6pHFAY0YC3WQl03Z9ezfUvJzeUXaM4mtWhfT9O PXBlDnUld2V1Tz3Ts1tz4oR7ED7bOBr1duqSzT2PpF+ms0YgqWE1ndiCbnjXp3SKUn34z6ZKBjv dSuNgPFT4FFk+SjzEJd0DRYX1c3SbU5krTUjvHX1VreDB4WiVYBrA0zLtt3ZD1rtQKDL99pk3o1 7Lo1owZEp/43/6SiXxVHcLvN4Rd9cfaY6ZCSIPNqWWF78L8xwBj3hDv94s4vSxfnIB8hrWQHGhb 1S5LMtoqeOr1zOg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:C0/2mJuNnue5dIrnR4Zzs0VCSU/IiBW5WZGmC3SY0dMAmRfXxwG TWJjjqRDl/MXUepjA4Ul4+VN1en3sq35hNh3xNJaCB5rlHqFA1JA1qkobODw1spb3zHWVox ZYs3/8DWKem1UTDcBIgjO7nFX+IviUtrpmjc3Glbi36SPPVju8zqHuXK7VcmGuczlfhfS3y DhJNnKwejkD48z6IMaWXg== UI-OutboundReport: notjunk:1;M01:P0:ZKZo/NixLaI=;SP9/qBfEyNrKb5fFMaqA6d2sFYb ov6mxZm1ZzG1wiAGFMLmLpYsDcaWGUisiT+KNLPNfhxzBedIv4/fZdHew4OomVKT5FYm7sYVl IP0p8FevwrG/0B0jBH4fMRactr6hlBLNgID9REnmglgNm+aCuRGW4GY0U3P86SggF64vPgFy4 AbVI9RYVR4shIXN1d6uzQFeGKxY2Mups8Pjg/abcE5QBmI/vz0hVwLm70Q+EtnpidSfuZmfGw RDppY22oF82d6OnjXTxTa5v140YWfsNvMoR4ZYtXjdoeVVE1WjRrok1VshrCN+wLPGzz3X5Rv KiPKY0aLVLFVAoKvLmzLYJYSIs50igULjXtd2wlFCNxrp3sS5mh6CEM8QfIs1ZiqfEnMdfBxj I/ILYfbjdL232Cn8x5Vr6G5/vBJZDwr4KUGPlykOx8eXFRMuCwp1VdcHf2YUKDtYuAy1eYvvO s6yDfd47P1TQQTDbHqIxIuI51SYCMjVGELWdob7i1K46k1sXNbRAN8BI3oIZotF0BW5J9UpS3 j56ztDTu90QehTMw89azOTYCt5DvkubmfHRr3m77bsCZ8qIH0rxoEc72mVw2j/SD6HVlz/jFZ BTO1XKoNuABTgZalj2pOi404xcfgdoYN+O9IqKTSNUMhNhIKVoUdKPXfAYm5XpQK2quRl66+n NiZ5SsvKE87KqHtGwb7lOQvllHWvWpWfQOMtvb6hpJqb1gLXj28aZEptLzf5IBdI/kR6zbgoX Vff1/s1MFCYjqFjnbHReFTe3ZvaPupSLOGXTictcNiPpZrrEHC/9Bq5V8j54wK0SOQInCdBBG KvOT+Z7q73fMpKOt+FDgOwejQGU/PrbIbP4xIvaryPWhOvz7/JJ1RspVQV6y9IgzdARpSykmn pHsbuYJYDBWWAhsEveUOgtN+Jnr0iMmYzw8AN6epsxr1hSAWpIjza1NSgmPzY4nHkYNu9OPir Tvjq1Cyx+gA76xUt8gF+TRSnxjTPyCF1FnW9sT22k4FSo7F91jxIUYAPTAN0P5ZYGzT/UOiBx 0CbOHYMNH0lK1WiINi2uGa8HLmjyiOJ++T+6a0jQVbhGwLDJCleasWxDPnEpA1gdrOpilP4I5 evInrbpM4U2q34qzQQhZkIQZ0bGig60P8VUlq6i5ch73Zt9TcdAa5K6j752r4Aywf2W7b/Xlx FfEjzBNFpzqNr5cf4gih/eBI58mw4YeqT5OTgX1kt96X+bFSx5acPQkSz4n+wycBAu6pVT0pF xYopgWa1Cxm36H5XEwQSFcBletNYwFt2EjYDY9jNqx3pjuSxnSyg6GxMW8Yu2HEQR2PDBlq/s 7/+BaD2G8z+xUXo9plE7TCO75QCy8kOqt79AGSQD2x4nTwiBaWo4pLmGXp3h7ionQwVCaABzn voR64NhHB+4GT+7+2zoVLUw2Sj4DDt9xjJzUI37W/bN8DRJUUFibBot3AhgJRAuEpsKhi7Pch KeNGVilKMeq1BzXX7rrQcDajAOlLKrZoR6+VUAwZJyxZ/SDsKGPpax+ztpHttT9A+akVixMDb ELzjf2ZHD84yhszn7CKpaCVx711cxiFH32z4MDjgCzaD71R9wIfQ+vAhswl5Gp962PGyfHigU rbgx7gT7kqdZuWsum44KHCFlQjBBbWlxAyVVjeSab72i4FnMyy+hzQvptj4T2CZEDZQZvBcMb U7k0So2ANZGjk22AZwXicHHYgg4DYYsmzwHt/aBoajcFCjqE0sAgNj7c5KEe1FgHC6mjAjPcS 5liIHAQdJOPfyGlxcH+0Jv3SEYwtDFIw2Ug/ypt0IrxpJWb/J8xga3sAlLFfo6dgq042RUGLK 4J9NzsJxAIRqFSQz117V7CeTj0wjNY0Nl1a0LGoEqDI/31+odhkwHa6PjLX9QiPy7a8W6ckx2 GccNdUb6St5ctSwjcUJocauK9dvf4O2C+TPEturXw40NBjCBQnPGT3iFHi2fOi4dYbBN3rCM/ kOWtBvNGEPb1hzcumHWau65wQX+iIqE8tV9jRKKbwsURnfHc58wFpN2/Jd+Na+hX4I6B6SAwA DaKTmWmvwkBUSlzwQgm/pDHekWPkSSRkfY1tNPAlm22jFhPw9H7ey8iIgz8oeUIzcRmL/jBn9 lm3ybgX7cZN4S/YrAO6ETFu3VoWJDtFXWNfSxxdnjdQRPP4wbnV0W//3MK/w9D2ALmDdGURaA 1/X69EDdJU8qFylTQnc28ZOrhbVTn+SY9suyj2tkNrrRVjZ4EuXf4QckkXr0wygkmM9s9e8uQ WDWkhm3ZiwupNByJ3HIU+9zXj+sN310bAB+mYkUAhkPMwAhBZcTldA4B5rjWp607JbPp7E/pn beWZl7r0Q0zfXhUbUC/ZXrf1TWsUjmLudmy7kW6AQbpB5iUmTJSWIcy4nvW/f6LACo+4+bVP4 Qtr5I4SzKqkdgjwzW7VmBhEAzXmi7JArFL6Zp16ft2GUBc+S3pJleHgZiXo67ejPuWIrUjqMD RbOQ4/85MCc4VnmGQLbUg5LN8LDcETp+AnlJ36cxlUQKbAcT5CUIldLqjmGrNNfKFu/+gn0Wa Jf62DUFsTeup2SuUDofDbg5HTPBYyF/tL7BtwCJtY5UEuLInwLW/rsmmjCsU5tcbKbUamfRna YIzLC0tW0x1QsnUwcooP9oX1SxKdpfOGn5dTZDxQPNhm6yxqZNiAoBuBbQq7RKUuSUNJIHPVz 2NUTTvbqt/mW1kV/h+1wyb7OfB2aL7N1H+QAOQoO2k3oWnnGGUzRg+oU7oUMscuuTHTj8oWus gmHg4UGcxeRPsnlFz93AKHmuJ2AZfHN01ofZ39G8P/3R2Y6PD9ayv4DNuBM2sb7vTI+uk+Mxg hqaExPAhp4cFX7boVrR6Wexi0k3pQeRgP0MrXvQLkEZU5z/Jn7gbtepHCZEZkhI3RZbR9SU4Z ogDgJGh24XvZdaU23dWMn/54SkusjWfjRc/tOSmbz+TIqfF8eRqs8snfQafJ68to51LOaiZo5 0T+UIh4JeFXq4FIqL5lbe6d9OWBWotqa05+L1rtESLYSkYguhr4gn/CymBgbuVW2bG4RsQuqQ XAvzMqbTjDeInzcK0etj3FnWdQx2zUQOFhYU1crovvikiAhTMkSKQIxcqNixj/42A30u/uSr0 v6z0q1DmOu65y59v2iz6T8bLxMnrsFigRNpKiJMvrh0Voadb7yWV+VVnHvmoZmVlLfIRh10sO WKBkOB/hqjowfnJmBq8FvjsUwMd/GFbe2AhmW/Tw7G8gAcAiZrCjHIuG4PHJYqIFXPpLsG8oL SwdX4+eX5ILpCKJnNGs2y2b2pN4enKfb2AWr4ectC1K4XZzw0C2yFdbYZw2vwMA9DAkO9QNNM AiA/hP5iaXYvBwXx469sxmN9cxnFiYYTjzsoIA3kudKXVvo5+9YRlI6JFJ18cjMowWuDzICdO GJ9r6zm3a/ZJv+eRZuCawa725XRHYtAT7TF9xpU+HTW3//MCjgKBFEIw3KeoC0Mdx+NoS25ts EAW8G1gf4Lh8nMYHZGzibu7wB6y3g3TXI6/A+ZWHZgHN3Q55ZM89pU/zTkX/uRjHfdhtFlCTn JxWIQFkkOJDLciVv1qplb8Vdw2/2ml+tP2hV023C7gOiccqlYlgbkH6bW20cNE2UYGtcJjWPn tAF2JuNvIVbdmjZik7RFDrUz/Z9g46YexKe9fbVdukHdQy2gsCm4S2DKeQD6hDiTSVcjAnvE/ bIJbsyKme95fKrwS9QyZ190Es7+BKVTy+CV8WI0pLAdA5mfd8tAFjfC1K3eeuY35OLNtKYTB/ aRx2YH1VwF4X8riPvZtDb/YL8J18ivycjiHWErkTnmGKWwboEAfV0XcSfmFylh4g1ac8uGp4i eYz06KoIUvc+OkODXSyTOmr9wlIcRo5E2LBhHKM6aKDuZghx9a0RLK6xEpWgJhGPJwQe0Rcvj NTGFcvrZYOjXy7MhQpyx7Mw73J4J3oyO9FSN4e6UW/tx99qTzZoGcPU1s+FiWkU4hM0mAJ5eC k/eZaPBZko8gyz7f27mgSOSSpqPpUUAR6Tfoe37lYtNtSRdzMREGA/99S5IrJaU+rRQA9Z7bx LaWIV7oZYYxvTdO7R0auw+H7E3U/tuZ42FqnJ3eAqODjUwdP7+rB4F499+bE531e6omOMHTDY ekaur5ewEYllWdnCjQJLnW6aHzy9Ee34Vok07alDff4jku7SRyFcUjCJaliV5XsTAJFm/Zl54 4fJ4nJdfuX1js45GZeL/Sr/lBZvI+CxZ5qh83olIG9aUzsAHfzz/SUfM2OIwpnQdYWQZq6yzP g3dW/FEC+wXWxF4hGT7KDYe4JOGeqCSjDLxt9vkHXwWeZ9osAUFHetwKLAzpcmOvFWF00c1Vi UVQvzjWhX7saf4s3hqbaOs74/t7QxYDnPUqwtShj2AiWblPeFlXteEe0KyBEU/3R1ClI/ud4k k/5VENZk7f73Wj6vTr/WlGssRtihHPa728mZNO4rM2G6bVy98e3DNWqyufFnvOXImwiXRalRP Yg3EMX/UVwm9KeciwnBCi3MCjEKlYLH4Y4gP86fSm72QR7jn5je8/efDqn9DqGFl2LCL5hs8H wARB/MO5dyDSi8Usrit3kTrS6V3luhcQ0yt6OR7IrfsN0hFrEkNUT+0p4UXK/p/St7pIcRiYR SJlzD+L6+6EpZOpRA5iIScbUyhSdajlXvjUK3DO0s8IzILW9zBWmByKcMnrsxBrEIRwoNWRDc q9bl+T6sW9LeTejsnl8MdN3D0+/BQQmVWRX0QO22VBAmasRcXLOAE5y4B/dVi5ymkmyfcCoCy HVfTUqdOAnEq/apo0Ds3v6DtGYmXiT0+yQRaseyFsToe9uhzfK8jbaWFZBXx/i0xDuJMGa/sW L2ifrzcCFrdRk+EG6//nHx/8EaN1qxIHPdmf0wFGz1A8OADu48I7fJXgvzGotkkVbq0d6sP+u t9lEth1q5ab2nWULmweBVpbJu1cHDGdw6xZIZ3+iZa7gtLd7jjm3lKkillYZPgC4DdFVjAta3 XdLuVrwgO63z2CUd0xkrfkEUt9vd0xMZdYEGCYCYJYRFWxiW7KLRx4PkyvkrNhnsni2pclVmP UtOIKdduBV/G1natpl95nHTXYw0xWCWDIOqdmL+Xi0+wekQ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446561473158500 I have so far contributed 61 commits to the colo project, waranting the addition of my copyright to this file. Reviewed-by: Zhang Chen Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index a70e61aa09391cda933031535fa982d27cf6654b..75abbd80298df79223cb8e70064= a5dc83d70f4eb 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -356,6 +356,7 @@ Wait until disk is synced, then:: | Copyright (c) 2016 Intel Corporation | Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. | Copyright (c) 2016 Fujitsu, Corp. +| Copyright (c) 2026 Lukas Straub =20 This work is licensed under the terms of the GNU GPL, version 2 or later. See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446505; cv=none; d=zohomail.com; s=zohoarc; b=Vx894VqerRHhOD5Qz3jbtbqYoxWLLA/DKTasAMB0s0rZhR0ruRpwb+RplmzGRAZbb5BtMMOk//GWQTZxSEyjCjUIjlOSYsd2pavUv8Q/aTG4AEzAaUYVsetwQTR8BuG3pvc3pJUoyu3lXnAYM53NlKpIzcDUfQmAF7MXF69hznw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446505; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=E8fQx4IKgnAm6YubDXuh85OWLGDWOvvXmk2YMWUkr38=; b=DrOch7X7213KyZKIL6yZCKlkDdo0u9rwCtEacTi2ls+9lRTINyFzjp8Uo6RiMRpDNZKvgVdLMD3ZxEnh7Oc2T+E9RI2y5xRCGQHE7YTTy8iOVylzbgk0/x2Hts+L4T8vXnylV923QGH42uaVy0NU7TQ1UjUHO+w8Ud/5FwdCWbg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446504993433.9839013576286; Mon, 2 Mar 2026 02:15:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hk-0004xw-Ca; Mon, 02 Mar 2026 05:13:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HX-0004tX-6c for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-00062r-Fv for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:42 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MWz8l-1wC3EP0fSD-00SrEm for ; Mon, 02 Mar 2026 11:13:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446416; x=1773051216; i=lukasstraub2@web.de; bh=E8fQx4IKgnAm6YubDXuh85OWLGDWOvvXmk2YMWUkr38=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Xy5DkCwRfJCYJgIDXI0DaUOYeTZ6PQO6WAbiUB0afYANbpBSm6wH/p72bKM5XCPv kQ9l1rgSPv1m9z5PaHT0OgPdtDq4DJMNj2gm06fowQMRlue0ZvuzHDiAFyUCNBcxS P09ByESLxgmGJi4TGHo76oKaIuYAibixyVwvoFGPUwOHqclGIQSUspid1rM/sHOZU DwrMEs+3YD+8KPEmmdOGm3fjph6SLOcjILsvFV5IVJTh3lmek4GRkipVkUSiaELJy MQASo59LMkccJiLkavuop785zuosxx7ZQtfz6MPZnxrc5f/xCZ1pxwyagzvo3Y+dT k1O9At5S6cI3Qd6twA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 17/21] qemu-colo.rst: Simplify the block replication setup Date: Mon, 2 Mar 2026 11:13:28 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-17-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4439; i=lukasstraub2@web.de; h=from:subject:message-id; bh=pUq20iNV0WnXQSUmrEA2fewmY1+dKjnmaS5gYKFAorU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAGiJvYR3Gq0N8vWgvOFvHkZ5+Kw5r/T3Zl9 EgDUGII2OiJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WBhDEACM2XmHa41UzCkKS55PEo+OhmoOojcGEe6z07VsgcWdUzr0JQ9BAXnr6LXDYbw72Aq45h+ OtpvU+lyJGIiEFkByUEj0beQrQLEZaUExNxMcpg7eUK62fMYXBEySN0mD+s4MqfHlPGeCrKmuwO Z0rSESgNo1d2zBYHdD9A9BgUF3Vzx4fIXkE2KHdMbx/GPiiulsp6zjJaKZN3yIC5iI05GnqauxU pQCsywBpkU98Gz+CtGk5oXtjIUwzcKekJDQTMLWm1zyCJ32qdYiWq9jtnbYoqz/lqsvLMJafY0Y hYkoZFc5g711PqIhTZyWxObJ7Gr6ENqojcfNWTwZnj0QUT5B2celIr3yKxlJS/IaRA4xwNicBC2 CrH09NS9G31L4WarYoUDyLWD4zYlda0PHt1BLCVRFUrnZ42OQeHC/KqB1v2Xi3Gzp5JHNi9X7Ik Q9wCbKB9JpVcSprwAporop4pe54KGYMLOwLyXCXSNiKPHPxzLyoY1lZmJlLdfHQZrOIJilu6fU/ WhOiS81c4PgZQsHlKJm9Re7O1C73Au//T8STOyjC6nOB+Xj1inhNRVE/5p7gU7ZvnbIsw68xXPC TATmu0Xv3NSBka5MTP1/EaYyAyRowDqZHpXo+ngZqSnZuvEG1FVGOYeYRqAiHiUsbPqxRMaH7P9 tDC8GFqcJnT7NtA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2en2t2MEobwSZNc6u10qOcEl/WVqhPlSWILJJr/2cobzu3Y0xvq jZeL4MamWnI7GdZi9YJnHkg0GFlLzUJR8Ho0i7HsKLtAgtJ20f5TlwNDxSUhDoxMtj6ruBf FRJDIwzhbKNQ7/eckSmEoQ3SVQ5IHYqaDscxSTDBjX2BJYPn+/QsVaCtVarjgW3a8rDKvML MK5wj6vj8S+CIh7NqW5JQ== UI-OutboundReport: notjunk:1;M01:P0:DNaefOUZQGs=;DncOfn5oaAaEAH5ykswaguMQ9Kq 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 XTg9rsCR8I4KlrbLxOQjcxP29shvJwZE8yb6uT Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446507214158500 On the primary side we don't actually need the replication block driver, since it only passes trough all IO. So simplify the setup and also use 'blockdev-add' instead of 'human-monitor-command'. This is how my clients use colo in production. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 75abbd80298df79223cb8e70064a5dc83d70f4eb..f7d3b6439cf3401a58c41263423= 9d1a43999a10e 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -240,8 +240,8 @@ Note: **4.** On Primary VM's QEMU monitor, issue command:: =20 {"execute":"qmp_capabilities"} - {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "nbd0" } } {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } =20 @@ -269,7 +269,7 @@ Primary Failover The Secondary died, resume on the Primary:: =20 {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "blockdev-del", "arguments": {"node-name": "nbd0"} } {"execute": "object-del", "arguments":{ "id": "comp0" } } {"execute": "object-del", "arguments":{ "id": "iothread1" } } {"execute": "object-del", "arguments":{ "id": "m0" } } @@ -309,8 +309,8 @@ Wait until disk is synced, then:: {"execute": "stop"} {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } =20 - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "nbd0" } } =20 {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } @@ -341,8 +341,8 @@ Wait until disk is synced, then:: {"execute": "stop"} {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } =20 - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.1", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "nbd0" } } =20 {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446656; cv=none; d=zohomail.com; s=zohoarc; b=nHS9ml4KhkQq2nMhnpCbBk+1358KzykGScbX1RsTnOt3ZBH6VWrqMbTCEY0tNHYyC1F8TyO08IRuBKjsUzXpND/9i6GCVIOstNGx0FjjBvmiSy87WTtdiyDz30Nog7oIJwL1rzkXuhyqDxuI0/6ziSQATbpeDkgjJrmvs/tYRr0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446656; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=1wB4PGSEbATkgykqfYbhMdJ4xkZ6sROXVEk3Mx6V42s=; b=jvcCj/LJh6rQKhmItbF81soAVqNdsGgptLA3PMbhh3j4suXML84JYPf8IQJKkrEb2/Os9va9QKmn3mEfcv/GcX1zg/+/XMiU5WcjsVOCU/p2TP+4XuXnloXChDou8SG24nKBn2qqOrDLHnjdfj/5tZh5A1uhMjRhoqPkr0UkkMQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446656188624.326513144552; Mon, 2 Mar 2026 02:17:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hs-0004z2-4s; Mon, 02 Mar 2026 05:14:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HX-0004to-T0 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-00062y-GQ for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:43 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M8TBS-1w1Q7k16X2-000RQf for ; Mon, 02 Mar 2026 11:13:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446416; x=1773051216; i=lukasstraub2@web.de; bh=1wB4PGSEbATkgykqfYbhMdJ4xkZ6sROXVEk3Mx6V42s=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=gKhZfk7DtKQBkj05pqrbXWkS1UI4opBEZdTkOg6O/85icVaSQJmVV6iHu3tRwGGZ 0dB4S8/Iohib40A+gV2CDk28pGbs/Hd1XTS6SJzNtZKSMAR4RaAwXa0sKI0eH0iKn gNku3xC+r4FBHDyJpz9FDtIzHn3799MxRhrovav7zzDA3esQwAiV4vTnHOg+SSX7M tY4XbOwAPOCk5dEXFfbWozqnjo+VDxCg0MVMPmxyf2Lt3tf/lvwTOv8tc7B7gB85x XN2h8zqMwYBASi7EpcNLLI/rz/FQT7TPeCT3UC0U+nPwL//5U3Z9RVgHvxaVACNwR 5R5/zq+AR0g27k+01g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 18/21] multifd: Fix hang if send thread errors during sync Date: Mon, 2 Mar 2026 11:13:29 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-18-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1431; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Di3bviqJ1tNSV+njROs9ZVoxf8DQzRNWY6OcVfgFrAU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAGi1hGwatsrGuBy0YwyDNruxTOlQvkBUmwQ JRYcsmBG02JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WOO+D/wOqIIU/ynznatn4PkGQCCVozOoGUxlMisC91FbOnXFJuV3kh043pRohXNEP6rM+WhUtfP gfHoYZEdled1p7bou2ZbI69zpbCznkUdri7oU4NYWkaUAlPtMDDuNd39aZjfekV/G5nTYInnM2X actWRAEXahzxIgJ0p5Ps0GQZLxzGMrsudVCcEILJm72io6ZVhweceFVuTs2U6B5IQuLK7xlx88a 5ALCGsFrK03kSRjzZTbB3j0S5GZY3AEtxTOkWD8/NocLJlENsjARkLEOjWB7ZO1jZ3q1Q2M7Q84 eskBOnMY32ZYeJvoJ8RmTmKA97+cYXozSTkri6XOYAs9yZ/zr+sqjFIgMlHNP9rmOxKgb6ifcNX ryKHxjKYoKAsv5g/qGPriPHs0ncU3JmZtZH7qTQ2c1XAQb8H1EgafQUqrHoKV+Ip3MmnhXSbLlm MguQTYC1/FYpcw3NVBodLsJ3w7Muia2TqwWmCSn1GFIcQn+3E8FdhXM2dlFFyJbqy+hdtTbzyLG DhR/UiR8bYpxgXyjDw7aH7KRQ+3rL3mj8gu9QE0XZtcAswNBNbC89yV8S6rijAP5dmXAy8aHqh+ ntc7zyh8Yg+th/rGmil4AruFcTPMYaI7Td4UqC8+7DbGC3K/QMdnxdP9iu+3KIng0/mSv4TxAmb Tbdpwp0isuQnutQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Ook3dI5vSLz9pNKS8IlJXa0JRaMmiSMAKhQG403BkvPwZkGWAAp Ixynsy/uJEDljOSqk2GXcRt35fpXrBLlr2wPLnRySVx8iVQhW1JaI39m7pFhBIuaj/e/iKW LaAIFw39Bx7bGFxoZvxa5cVF0AN1Larc5qYDVh6vf0oPefLSmyHorTqLH+1hxlS8Cd0NM6h Ud3dFNq4/7PbrTrw16knQ== UI-OutboundReport: notjunk:1;M01:P0:QnE7M5laaAE=;78B9XzzAT3uwEpIzpAMv3/xvY67 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 SpndOReE1r+fWJM8M= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446658000158500 When a send thread encounters an error (as is the case with yank), it sets multifd_send_state->exiting and the other threads exit too. This races with multifd_send_sync_main() which now hangs at qemu_sem_wait(&p->sem_sync) in multifd_send_sync_main() line 647 as it waits for threads that have exited. Fix this by kicking the semaphores when exiting the send threads. I encountered this hang when stress testing the colo unit test, though I was unable to write a migration test to reliably hit this. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/multifd.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/migration/multifd.c b/migration/multifd.c index 220ed8564960fdabc58e4baa069dd252c8ad293c..7762aab8e0702672d3730f27e9c= 9ee3b86500f0c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -772,9 +772,14 @@ out: assert(local_err); trace_multifd_send_error(p->id); multifd_send_error_propagate(local_err); - multifd_send_kick_main(p); } =20 + /* + * Always kick the main thread: The main thread might wait on this thr= ead + * while another thread encounters an error and signals this thread to= exit. + */ + multifd_send_kick_main(p); + rcu_unregister_thread(); trace_multifd_send_thread_end(p->id, p->packets_sent); =20 --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446691; cv=none; d=zohomail.com; s=zohoarc; b=fEcWG1kkqBUCNdRPIjq2OWzIY9v/gxOwcAZ9Pbx2Rlscj353596kb7XBNdrVJsZN7rq+IThnwAWIsTu9x2brN2H7cXe0foGJas+7SMLh4t1IYQMafi6of2iBpDGOLsiTkZW0dfwhwtUzNVTewSjaSVdEW3yFcKIAQ6CZauk0dXg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446691; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=lcGEXTcmjSwo1uIOCMzYBcGqppfFNt21+FB9vZyidNs=; b=UkL4GOHlLLQ75OE6w18S+9amm4w6wWLOhoqEtsB87rxKb1DIIKJOtsnNe+WpCJzMMDrI8oQI0DzvzF5Ow6skxPMkajOT1Zs4Cn9BFt9oB0ngdGJ0tV9p6HXDUQbGXWxEtHogpiRAf1fCs/DmWNSmbLgwuK7zOVBlwVQxp0Xa9oA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17724466912453.5894707302206825; Mon, 2 Mar 2026 02:18:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Ht-00050C-Fs; Mon, 02 Mar 2026 05:14:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HY-0004tq-6X for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-000632-H0 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:43 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M2xvy-1vy7HI1WRA-0087TR for ; Mon, 02 Mar 2026 11:13:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446416; x=1773051216; i=lukasstraub2@web.de; bh=lcGEXTcmjSwo1uIOCMzYBcGqppfFNt21+FB9vZyidNs=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Yt7TjyYc5ssL4Agcl9ZaW1OQ79uadWLs305G96emTeUzCCC8YlP8BH9IwYuejbnb GARECORL/l0QE5+rOjng86KrlJI3ayZt2Jzdpb04WCguEykH0RcXdb644cSxUsjH/ XRCF5lS9jpe4IbAkTuxe0cEYraIxUec99haW3d2IyDo2ssc5sciDFv6dVI05rq2sd vgDDxk7bnJNgByzhUh4rw9m8jbmmORvq7PIp2tgTCTouXZMFJhTylY6dRBjKyyTW3 aCozOrDguTTpd4F2hfxaVk5sspTyN3Lin1yOxaS+YxTv0piuR5wOKTRR1m9mEjrGY +LcvYByZLnepu7tEZA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 19/21] colo: Use file lock in primary_vm_do_failover() Date: Mon, 2 Mar 2026 11:13:30 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-19-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1196; i=lukasstraub2@web.de; h=from:subject:message-id; bh=REq8s1GLond4/LcE4TppwatMZ1netju7z89n3hnA2Mc=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAGpLXmFDkklvHimiR55IB4X+7WvbvEkxo3+ fofp7eeAzGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WNUhEACUdN9jRlkC2Xpj4iHM9rix0hk+oAd86kLopdrKms/jndWjcPtjdToTKcULzqzUc6KpmiU gPG3s9qmxu9jIfjW2HL9VlmlTRKGApQk+0CSk/VFNX7x20RigUzgvnwpnJkoQ9Xt0fh6+41xkpr iQUzPOWcwfpZaKX/Hlo2AsyX6CDM2uQduaNdGvZ5T7nteeGASL3VTR512Xpo35h9HbApsXEDSmA Vvsp5qirKz9dc2ZEs99Jbm81IbDm8K06nxyjb1igCrG6GCf2mgBE6TPWNq3jrk4fwu/FdOzZgy3 5+UMdw36+FaP4OCzPgay4envpUNWRWC8LSsQmtU5bcLn/75oIIgOn4qlp2g/mQC8StJ3fMdbuZs ha5gu+o9UnBRGtWcbE4KhFrh4+A3LF3nU3/Yadq0rJ36p6ymfsnu7JEnm0HbXiXZO1/MmE0E5o0 RjyOjnvTZpNAVBjR3zZME4jJ8CAeUhT6xrBCTR1u8f49RkROtDFPQ/TcuaA9lb6hz4rOEE36L5Y WmrIi6F8WAThWViwOVIY5rRVNNWF7xaCKVE/GEuqxZF5wwbtnIWZl+5RatimsKdzedyW0dK9h7F ZdMYdkJNMW3oqNSvUvLR1rZQXkPHiZ7ulzkWHjWmztE/PNAbgcnqCJnUHBfWay4qMt0RQL/5fCb YHg0S7e44V0X/3A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:hEbQW0AfcPy2cotDqb0o/1UqsltyTtjKlnA9JiCLYeVuQKtcbJl F3sLp70L9ntVemln8UkfMS/ocQv/th/fK5Ms0MaQ3rC41uLt7HRskjJau9cEaNkEa3QuFxG pQJxDF3OMIeZ0oJvK3dYIo22QIWSBgkFVMFJhuu0wdXe0gCvp1X3wE+jXyOY1/t2izJcpUu 9jYnEFHHG8fIimXcgJHJQ== UI-OutboundReport: notjunk:1;M01:P0:O3+9T5HGtPs=;03wG69lawInfm6Qrcxg/RjplI0R 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446692289158500 Take the file lock since s->to_dst_file and s->rp_state.from_dst_file may be changed in the migration thread. Signed-off-by: Lukas Straub --- migration/colo.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index ce02c71d8857d470be434bdf3a9cacad3baab0d5..dc47d03874039b686d2a4072ac4= e6c77e4ff1f87 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -173,11 +173,13 @@ static void primary_vm_do_failover(void) * The s->rp_state.from_dst_file and s->to_dst_file may use the * same fd, but we still shutdown the fd for twice, it is harmless. */ - if (s->to_dst_file) { - qemu_file_shutdown(s->to_dst_file); - } - if (s->rp_state.from_dst_file) { - qemu_file_shutdown(s->rp_state.from_dst_file); + WITH_QEMU_LOCK_GUARD(&s->qemu_file_lock) { + if (s->to_dst_file) { + qemu_file_shutdown(s->to_dst_file); + } + if (s->rp_state.from_dst_file) { + qemu_file_shutdown(s->rp_state.from_dst_file); + } } =20 old_state =3D failover_set_state(FAILOVER_STATUS_ACTIVE, --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446481; cv=none; d=zohomail.com; s=zohoarc; b=YJ/0RduL1/uvTYUvUOAyXxOiG88szJdY7asFvNlq4piqgMnTOccWPOG1bMcNx0L+oLLbMTIFvg1anvIJ6o2K9DCsOzttgF9vfvuJqHG8ticP46J7eOH/61VSKB5M+9EeC5ekXp7GCx77ox0QVg1+8Dm62cIVqBxNuUtEi+tgBqU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446481; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=fwN66lijnmy4XUhK1dx7MdgKeJg4XbhuRV10AZhs3cw=; b=GstsPsMx3X+1enJd5/ahHpHTZeI34kamD4Zpnk+beGzvLsGAfsbDRhlOC9KJwC4octdVTrdRiGlIpl4QT3dHLW45GURXD16nGhVm9I3v/VjSa4Q0dL8894lSGxldgLfBRfhE3c8qM0UmT3VGD7CHhPWlbJ4duZlZR/LKbnECDWc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772446481342143.64457717610185; Mon, 2 Mar 2026 02:14:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hk-0004xR-0X; Mon, 02 Mar 2026 05:13:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HZ-0004tx-3S for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-000636-HK for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:44 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N3Xjd-1vWuep24ah-014elW for ; Mon, 02 Mar 2026 11:13:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446416; x=1773051216; i=lukasstraub2@web.de; bh=fwN66lijnmy4XUhK1dx7MdgKeJg4XbhuRV10AZhs3cw=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Kb5kW+a4dsJkDNw89Ic8mgzu5gjyW+jpUQttUhigjDmHRimU1mluJXQhF+dyDxL6 YHqwuNO+DGptt8Qlk/XUKte4CrLXuTvRIpae1izFGCZKUXOut9LB2gmxgYXJtWb7k MGfu7kerpiAcAESn8imRlZisrAmpnqeisXumDrVrFMBjt6U4c4UlG+9ngvTiqzZIb 7p8bJaWootVEyXsP5tRFdpACk5EmbA68D0lsaeybZ24t/jsbX2PPNLOszGR5nwgEx 3JNFDBOjU5heI8YdOSkozqF7Xx405qjAV2b6VaP+xR9/emg4Jdjq9VEQhSeL6LxnE xNeFA3+ZbCPpLB5ldg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 20/21] migration: Keep s->rp_state.from_dst_file open until migration ends Date: Mon, 2 Mar 2026 11:13:31 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-20-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3325; i=lukasstraub2@web.de; h=from:subject:message-id; bh=ZLSzyW+Kbq+8BxGOT8Uq9Q6npx3OKDjaFrVvo16lwno=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAG6VQ1NCENiX2u0zZWA4NS5GsBT/rhqEjPy YXu5vTXyz+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WFhbD/9Us4Xhd8yQ/NARtmlNirS3NrvR/UrUwTP5nYnnp2x5dyenOR8mYsor3KGVCVWcjsyZdyI jZnxQzwVCivstkzfQQ9qUBMR3uZV96RtDqrfIt3kovH26qWBdtB4K1+3n5hnCHemUeAMDU2L4VT yZ1HHqbrGEpX4+dIJ6dYwxDlOvDBI4VBlRW/0lkoqBgKEH0RRYpgjry3iUCE8ZV8ExGoT+qmSc+ yoQwBukKgPM4bXoZ+xtMZOItTespS/AA16kSDAGMq5W4u4Wu6pjv7j2Lv/zRedJ44eZZdDRJAP3 WOfQ2X0lquFdJYqOANWal5hDttg1BOCv8Y4c3HYSlCeB3MbK1YzbhwTCE37eM2uWNTd3R2VJp8V EniLqa9NFdPHMB97CqYXl8lJuvSb5upRRW/1rHnypovx5py7Dz856zP+PcVu4PNptvPHGKHgwMQ LVEuVP909+w6f5Af7Pt5FxvMCG6Xb3yc7fKBLqaP4QMykGIDMS4NDLROm2dTrGWLKhHrjvWSDbi lo/TEczHCe+7OgMcmpVN3kKHsS5KYKNDkXrqTLQnvx24q2E19EpXhu2CX+1eecemAzpdUS0Fvhd vvXKnxyiDZStqv4CKWXVt2ZwXi0/vMjQM5ylXUneFDNSuPkhpSYRQEHhQj6RY04EKopugpMDKnh ANpISYUK+DtLfQg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:+K4Ul8rIlVcgoUIoPvKi+J5Jn6RPq7LDyQcyPZ5YnbcJJ9ApwEp j3Cm9Bhdz+YNXxo8RFfRnQ4Hrb5i22ogXohXjvwKn/NBSMePatk0NNTNNtKt6e4nz0E7J4n 8tX0bzZ7oKQYyLBGxyKjhHCcAl8ZMUbnsWo3de5PS/1EDq0zq8646oMB0bJeQD5d3/IiiL0 q0K1BXDlCGn8tiwV5Tt6A== UI-OutboundReport: notjunk:1;M01:P0:WJXgTuJHlBA=;v3XBPLkSl34BHv8sUgiUG3rS9G+ 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 Sih+lZEFcFt7MjAoH7V2RbLFYO7Ecpm4s5Cop3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446483059158500 This will be used in the next patch to allow COLO to reuse the return path. Signed-off-by: Lukas Straub --- migration/migration.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index f36d42ef657bdf26d78ca642d77a9b76e1c0c174..74f5c314ff62333f6c9dd8bbd09= afdfaf84a41c2 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -97,7 +97,8 @@ static GSList *migration_blockers[MIG_MODE__MAX]; =20 static bool migration_object_check(MigrationState *ms, Error **errp); static bool migration_switchover_start(MigrationState *s, Error **errp); -static bool close_return_path_on_source(MigrationState *s); +static bool stop_return_path_thread_on_source(MigrationState *s); +static void migration_release_dst_files(MigrationState *ms); static void migration_completion_end(MigrationState *s); =20 static void migration_downtime_start(MigrationState *s) @@ -1278,7 +1279,8 @@ static void migration_cleanup(MigrationState *s) cpr_state_close(); cpr_transfer_source_destroy(s); =20 - close_return_path_on_source(s); + stop_return_path_thread_on_source(s); + migration_release_dst_files(s); =20 if (s->migration_thread_running) { bql_unlock(); @@ -2209,6 +2211,7 @@ static void migration_release_dst_files(MigrationStat= e *ms) * locking needed because this qemufile should only be managed by * return path thread. */ + assert(!ms->rp_state.rp_thread_created); if (ms->postcopy_qemufile_src) { migration_ioc_unregister_yank_from_file(ms->postcopy_qemufile_src); qemu_file_shutdown(ms->postcopy_qemufile_src); @@ -2216,7 +2219,9 @@ static void migration_release_dst_files(MigrationStat= e *ms) ms->postcopy_qemufile_src =3D NULL; } =20 - qemu_fclose(file); + if (file) { + qemu_fclose(file); + } } =20 /* @@ -2402,7 +2407,7 @@ static void open_return_path_on_source(MigrationState= *ms) } =20 /* Return true if error detected, or false otherwise */ -static bool close_return_path_on_source(MigrationState *ms) +static bool stop_return_path_thread_on_source(MigrationState *ms) { if (!ms->rp_state.rp_thread_created) { return false; @@ -2424,7 +2429,6 @@ static bool close_return_path_on_source(MigrationStat= e *ms) =20 qemu_thread_join(&ms->rp_state.rp_thread); ms->rp_state.rp_thread_created =3D false; - migration_release_dst_files(ms); trace_migration_return_path_end_after(); =20 /* Return path will persist the error in MigrationState when quit */ @@ -2787,7 +2791,7 @@ static void migration_completion(MigrationState *s) goto fail; } =20 - if (close_return_path_on_source(s)) { + if (stop_return_path_thread_on_source(s)) { goto fail; } =20 @@ -2941,7 +2945,8 @@ static MigThrError postcopy_pause(MigrationState *s) * path and just wait for the thread to finish. It will be * re-created when we resume. */ - close_return_path_on_source(s); + stop_return_path_thread_on_source(s); + migration_release_dst_files(s); =20 /* * Current channel is possibly broken. Release it. Note that this= is --=20 2.39.5 From nobody Sat Apr 11 23:04:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=web.de ARC-Seal: i=1; a=rsa-sha256; t=1772446525; cv=none; d=zohomail.com; s=zohoarc; b=gnNnLzrZe1Lh+RauQbi9hIV6nno4/m94Gc29xdwwRLt088xr24rkSv3LK4MubmVMt1wdvPZpOYXCh++O19oD6PBkbVgzVp4mB9K8p9R5XuveZ5wJnmt29358qlRWdalNMEHaS0fYG+M1qncSHkJ7PSzkYyo7OOAiNuqXkkJrWAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772446525; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=ITqpwwsSvHY6NBo/kS+QmQ39G/KVmJBMgSxNnkvOzu4=; b=YOAZz9YaWLldEBaGYEVZG9D8vYQhCNl/5A6UztkMmCoZjQjpW0mgoU5P/G2iHoQdN9I9K/KC/hBZT4vgW6Hh7S6DHKBpi14tRcemX8vneGw1Ouvzk1/7Jf+fstFXoS2u1UZj6rHUfpke/2b0F8qh6rYxk0ADo7o+AdxqOxBduxw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=lukasstraub2@web.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17724465249954.357105849946265; Mon, 2 Mar 2026 02:15:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx0Hu-00050p-0b; Mon, 02 Mar 2026 05:14:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HZ-0004tw-1M for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:45 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx0HU-00063A-Gl for qemu-devel@nongnu.org; Mon, 02 Mar 2026 05:13:44 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MgANA-1vU1Jm2WXm-00dLQ7 for ; Mon, 02 Mar 2026 11:13:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772446416; x=1773051216; i=lukasstraub2@web.de; bh=ITqpwwsSvHY6NBo/kS+QmQ39G/KVmJBMgSxNnkvOzu4=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=wr1k+vPJvZ3Rnil7dzfxURgI+oBopYpfTzhwPQLAs493Aa0CJKJUkGo8oU/OlF0N yHcJHs2pJAYoSTs8nWiodAU+61Rin/AJatM0p39DSpMfg3HNtZa8AbsWq8fw/iSmI COelY4P2WMJSS0YEe3Xv73k0G6tAyElbgVbIALztLAmovWiAx95/VqRN7YLYTZslp KdFwi7CO3p1pHjkiGL7rqsaSDE+4dgvNfIaB9lavEL+DgHyM+1QdRbShTjWDf5v4I Z3KZFvhqq6I3ufwQ+ZGqPH5gH1/ZWUKP1jqnJ9Of6s0arTQjAgYrxDzaZuPB4v9pk 9SGqBQWJU2LQgS8hpQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Subject: [PATCH v11 21/21] colo: Reuse the return path from migration on primary and secondary side Date: Mon, 2 Mar 2026 11:13:32 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-21-3dae81d203ff@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> References: <20260302-colo_unit_test_multifd-v11-0-3dae81d203ff@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7407; i=lukasstraub2@web.de; h=from:subject:message-id; bh=xW8DcPv/c60MIhaTk/f+XYB6rFvpT/HXqTmPuiv92Mk=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppWAGLlhxK3Jy+IZDExftHyJRGNOplmPJYBpsv iA3Zb9TCPaJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVgBgAKCRA1qwsonF2y WI0hEACLvykz6s4Wdjiv+LOAUFaaAvR8UgJGVHUabXj6sNHW61fUZ7GjExgpMD2Od9ghJClgYYX GZAjvjg7A3dMo3dmo8wNy4vbKNfR49zcTJRo8IuxK5NI1EqSVwEu29f3GGud0kchaFMYK8G+gwa 8JLoqIR5KB4oF4PERV4oK01JmG8evAZoKv3R6SAUKx0lolcYLKQ8CylBO4BaxCE+X2/LIHgmQdz GxVivfLl98qHH0W5lBQXDLo1V7X1LR82bo3trcd7AUjUNLvHyRIDMXHUN6Ga879M8wBAPsuSRy1 KSqwnl9B6//yJhuKwS35JAcoAhbnADqmtNNPh65JDRuuXUjc3p1+xwdmWfMbI9dSvm/FJxTWziM a4Y2HVPilakDDjDr7qgcw0tHmf+Q4V5HuqMpKzGhkpjkWdbcp//xltShzkSVWxTml2xKRxkcBAu PV/pVhcxPu0CjntbMXh5P96YBqGzE43Q1TXBrNt5GSixnGqFHpZqDa4yXwIVmIMwD9v9RDO1AXU /ASN53JiPmHbz8zwNAetljWIAo+h2FHioA3DVI+45rlkVg+6EhX0btY2fO7BpcqtIfZFkW1Muql y8RkUtC1Xk6+3a2dr4zU8GmSjgRTxobRJ7cS/Sh0uo0lohwzfWFpUxJP0q8z90vgJYGZ+ukh64P mmQXBvp6OdrDbOQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:uHguU3rGO6o0pONml+Mtu7yY5nI5mBMiiSm+FVr4Pn5E2ykWfMA s06LYmPCGofZ2jvfE/JkYFNfvFtsf5UoSmaFxz7kTVguYoAXQ8gwv7Ow6HHRWA2jP6b7Xuy P1J0k6jhzqf6zQ4H/vYhKc060XyLQKlmqW9o7QcOli2N4HY4VIXPc72mpUEKjUB2AQWPR3f yO6x9tLG8o3SpBLP3RX1Q== UI-OutboundReport: notjunk:1;M01:P0:5IZhVJn54B4=;MtselJJ0VKgnOUD8kbTAhk0bheW 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 n4AYKeVA1pPjeG++dd1lHc8e3saoEbX+ZdRrHF Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1772446525625158500 Use the return-path capability with colo and reuse the opened return path file on both primary and secondary side. This fixes a crash in colo where migration_cancel() races with colo closing s->rp_state.from_dst_file. Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 4 ++-- migration/colo.c | 26 +++++++++----------------- migration/options.c | 10 +++++++++- tests/qtest/migration/colo-tests.c | 1 + tests/qtest/migration/framework.c | 13 +++++++++++++ 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index f7d3b6439cf3401a58c412634239d1a43999a10e..9ec3eb79b006a24e0d3a360f1c8= f49a68f4d8086 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -225,7 +225,7 @@ any IP's here, except for the ``$primary_ip`` variable:: **3.** On Secondary VM's QEMU monitor, issue command:: =20 {"execute":"qmp_capabilities"} - {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "return-path", "state": true }, {"capability": "x-colo", "= state": true } ] } } {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet",= "data": {"host": "0.0.0.0", "port": "9999"} } } } {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writ= able": true } } =20 @@ -242,7 +242,7 @@ Note: {"execute":"qmp_capabilities"} {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "nbd0" } } - {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "return-path", "state": true }, {"capability": "x-colo", "= state": true } ] } } {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } =20 Note: diff --git a/migration/colo.c b/migration/colo.c index dc47d03874039b686d2a4072ac4e6c77e4ff1f87..2d36f933cf155c1084565162294= a61d32e28fe86 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -539,6 +539,8 @@ static void colo_process_checkpoint(MigrationState *s) Error *local_err =3D NULL; int ret; =20 + assert(s->rp_state.from_dst_file); + assert(!s->rp_state.rp_thread_created); if (get_colo_mode() !=3D COLO_MODE_PRIMARY) { error_report("COLO mode must be COLO_MODE_PRIMARY"); return; @@ -546,12 +548,6 @@ static void colo_process_checkpoint(MigrationState *s) =20 failover_init_state(); =20 - s->rp_state.from_dst_file =3D qemu_file_get_return_path(s->to_dst_file= ); - if (!s->rp_state.from_dst_file) { - error_report("Open QEMUFile from_dst_file failed"); - goto out; - } - packets_compare_notifier.notify =3D colo_compare_notify_checkpoint; colo_compare_register_notifier(&packets_compare_notifier); =20 @@ -636,16 +632,6 @@ out: colo_compare_unregister_notifier(&packets_compare_notifier); timer_free(s->colo_delay_timer); qemu_event_destroy(&s->colo_checkpoint_event); - - /* - * Must be called after failover BH is completed, - * Or the failover BH may shutdown the wrong fd that - * re-used by other threads after we release here. - */ - if (s->rp_state.from_dst_file) { - qemu_fclose(s->rp_state.from_dst_file); - s->rp_state.from_dst_file =3D NULL; - } } =20 void migrate_start_colo_process(MigrationState *s) @@ -838,6 +824,7 @@ static void *colo_process_incoming_thread(void *opaque) migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE, MIGRATION_STATUS_COLO); =20 + assert(mis->to_src_file); if (get_colo_mode() !=3D COLO_MODE_SECONDARY) { error_report("COLO mode must be COLO_MODE_SECONDARY"); return NULL; @@ -854,7 +841,6 @@ static void *colo_process_incoming_thread(void *opaque) =20 failover_init_state(); =20 - mis->to_src_file =3D qemu_file_get_return_path(mis->from_src_file); /* * Note: the communication between Primary side and Secondary side * should be sequential, we set the fd to unblocked in migration incom= ing @@ -866,6 +852,12 @@ static void *colo_process_incoming_thread(void *opaque) goto out; } =20 + /* + * rp thread still running on primary side, shut it down to go into + * colo state. + */ + migrate_send_rp_shut(mis, 0); + colo_incoming_start_dirty_log(); =20 bioc =3D qio_channel_buffer_new(COLO_BUFFER_BASE_SIZE); diff --git a/migration/options.c b/migration/options.c index 1ffe85a2d8ccc8de9cc04d3c12293538a367abf7..f33b2979290f30ecfd0ffc46544= 98f25750f6720 100644 --- a/migration/options.c +++ b/migration/options.c @@ -575,7 +575,15 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps= , Error **errp) ERRP_GUARD(); MigrationIncomingState *mis =3D migration_incoming_get_current(); =20 -#ifndef CONFIG_REPLICATION +#ifdef CONFIG_REPLICATION + if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { + if (!new_caps[MIGRATION_CAPABILITY_RETURN_PATH]) { + error_setg(errp, "Capability 'x-colo' requires capability " + "'return-path'"); + return false; + } + } +#else if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { error_setg(errp, "QEMU compiled without replication module" " can't enable COLO"); diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c index 598a1d3821ed0a90318732702027cebad47352fd..366b9f7ac6d56a6e74a29d3e062= 124ad4234608e 100644 --- a/tests/qtest/migration/colo-tests.c +++ b/tests/qtest/migration/colo-tests.c @@ -46,6 +46,7 @@ static int test_colo_common(MigrateCommon *args, * used in production. */ args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_RETURN_PATH] =3D true; args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; =20 if (migrate_start(&from, &to, args->listen_uri, &args->start)) { diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/fram= ework.c index 2a3efeb80740cbfe876f649f0af685c5839e00a2..0bfc241914462c023ceab2fab03= 86009dc5a4320 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -216,6 +216,19 @@ static void migrate_start_set_capabilities(QTestState = *from, QTestState *to, * MigrationCapability_lookup and MIGRATION_CAPABILITY_ constants * are from qapi-types-migration.h. */ + + /* + * Enable return path first, since other features depend on it. + */ + if (args->caps[MIGRATION_CAPABILITY_RETURN_PATH]) { + if (from) { + migrate_set_capability(from, "return-path", true); + } + if (to) { + migrate_set_capability(to, "return-path", true); + } + } + for (uint8_t i =3D 0; i < MIGRATION_CAPABILITY__MAX; i++) { if (!args->caps[i]) { continue; --=20 2.39.5