From nobody Tue Feb 10 20:28:09 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=1770733620; cv=none; d=zohomail.com; s=zohoarc; b=FkaLbltE5PH1tBlswxzX+3/ESG35AwzXXn4rAjI2B2B3PvthtlksCXZertmRhByLQKtG1gjfDCcMn36KofD6n7SmkeeLP0B4rdR1HcnB3Dn1lU4jlw/mKVoao9z1bumEWplki/MPS61IHDyAbfKM0G90chyia6uPR3RJ5u5EYzY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733620; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=lB5C+xSIkMKIRDv1x5Wfn129/4q5gzxH7gAd/BDyFJw=; b=CM5qW+NWGSJnsJdfBhlGo2Ppb030P6GjiEiLGhIdj+eC1WdhnPXNINuEB3XkClzsC0BoTdWkkZF4O83pt/U7IlIfTuVNQVTbQ0Fm8SuXb3Q4DkG6rluHui/tcIioRufvJY0YUj+EUuMQ67Lg29AKW1OX0cl2YCyZmcbZt2JphHA= 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 17707336208521.7829017648491572; Tue, 10 Feb 2026 06:27:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohU-00055m-AX; Tue, 10 Feb 2026 09:26:48 -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 1vpohP-00054t-D1 for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:43 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohN-0005iY-Kq for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:43 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mhnvw-1vLAq71UTQ-00pnxu; Tue, 10 Feb 2026 15:26:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733599; x=1771338399; i=lukasstraub2@web.de; bh=lB5C+xSIkMKIRDv1x5Wfn129/4q5gzxH7gAd/BDyFJw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=wAyNkVozGbexj2LP/oFyT2pM2ZQTdCVVOUIoKr/UWJ1rKYRyLP12aNK31sj7VfNZ bOiDb1uLKYSZo17TfuLX3RNvzn+r9oRMIA3gDF3eVtRw4C0Z/SkEXJ3OFCYkVIA/4 Jz+MrfGRbo6p/obvavR6FFiBne1PbKAf8g7v9lJWCxXtXlJbHI5wLI/uDMAJ/ISoK tVgcNsNDa0m/CLsuzLNwEvycMYkl8QCydw0Pdi+dnoOECu9ODB+EPK200YNycIUhl ldLEW4Vg6OY2jVVtVCMgZ2NUP3f0w6YdoJ0M3a8a+P1ARmu4Ey0wKuZ7Up0rCUE2R PowP+og+ri803ccM9Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:13 +0100 Subject: [PATCH v7 01/18] MAINTAINERS: Add myself as maintainer for COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-1-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=5+dRgR5m8zdVwsdJs1KEds2XCCwojWugkIa5UcGjC6w=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ab8s5WJS+Rzad1O11sC0JO47kah7PuYhIpJ +lFO33U+NaJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAGwAKCRA1qwsonF2y WAaVEACR5FzwDYZc8yWIMcDiTzB24JbPzGvdZMmGXN50/swhWOPv49NkDjLk0/t92XB6EFILxGk eFHMGUpBwhtnETqeKwUnnYtmMAeZk3wch66tpeeaAfgDS18CTKco3YPB0q48yOJ6pg1lYRPIh5H u+GtAmnyr1WqZRGWuRxGuIJVlduQ65soeYafHFFHG7M8fars7aCqQItIEyIStSEA8TP5Bf2hSJ3 re8v23ZUjHdxa2wjNrKI2G6oPgJCoZCm4+TQsjNT3Vco5mhnRXRjL4H0IwaZa+gw54msitxtZcx 1sxtX5kdVePZJRiLEIbgt8GFJt1I9tOVQZhvlOXeOr1yXsg22NYDvxGta5XPGVdNIp6VsD3vWYW x7snGuYN5WRwvUIgHMSbCDqzQ1NKxWZkesgtx27u7KocRIqMGz9bYKvwheTIteMR9ZAFu6IcY2N 1hT8B2+V1YEaOpCsgwgoEjoj3+6xDvyHQsL0Ocr32Ib30Ujv+iodPYye7cQ0UAfMaDjbodhuw1j Tnn+AOI9KvT1/GGOqlrPwpiVuJfvjQL8uEOGhOomitNh1STSowPTOjrRisCF8TPmMQ196yS5jfo uyuNmfbHizMnHoRI93XrYYob8ApJr/1zt4LFKzlWb6EhuC4UzgTd2YajlfAorQua799PoVlSpyt jWFkc+4VrcCJgpw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:qjljJoQEh3trsQbcc18MSErvyTCO+Ccse+SZKL/vlM8qCZ/6Fm+ r13+moTbEyHGe80ZZChkjQHxgP/fHE64RzqiDCCsdujhL2XT0r47pnk/dLgcI+zIt6iwPko MaUzQfvVfaF2ubo4dHKTE5ZkTRb4oU1wtblVA9tmYgAKsOrx/xfLDcCCjAU8UdFnNtwBlOx drEsPamYeqZNkJYNlEtnQ== UI-OutboundReport: notjunk:1;M01:P0:Z36oasV9KwM=;FsF9D9omOotklPkkMt0AmLs5u7/ 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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.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733625126154100 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 29f88d48f3072aa182908bab667d3a108ffc246d..feaa4e47082499b3c7c9eee1a0e= 1a1fa28f70e2b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3857,6 +3857,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 Tue Feb 10 20:28:09 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=1770733702; cv=none; d=zohomail.com; s=zohoarc; b=jwLoMzmSsGF878CMoK8sr2RMvFvnWxZU1lZrzUf7AohEkkUK3VltzLqcn8DbMH2GXSEAiTvmatfSrrSTSDLU3sR6ReVZTxYbPcEhoy3J32QreY2JWGGMIKvjvFbinhq59q5CoxeLkFitev+5f4QrIJG5WkWxJToQjvLZ99TC5Xw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733702; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=4LaXbTl0THXOahwuMttIKN3IotOqiTe82gAMkr3oLpI=; b=lj0luoSnAIlqL4S9tpL1wH0HSnZFJNMcx02VUCy0yzXYQMZQl4+PimWF9+1qjs+B9v6cYXzW6qfupHE6kBayJOcgt6Dl6MVHhYrUdjCp4ujiLGHx5IDIxd8OBFgwwKzaiDWFpDgu7Oq5cEAuFtqu68P6NUSjW/GfJbtpvH+7/xA= 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 177073370236034.577325258517135; Tue, 10 Feb 2026 06:28:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohk-0005E7-RX; Tue, 10 Feb 2026 09:27: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 1vpohW-000573-L1 for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:50 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohU-0005kh-M0 for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:50 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mi537-1vKtrC2N9N-00q4wp; Tue, 10 Feb 2026 15:26:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733599; x=1771338399; i=lukasstraub2@web.de; bh=4LaXbTl0THXOahwuMttIKN3IotOqiTe82gAMkr3oLpI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=u7FKdO99YYFZnvmWLxzK33ENZNnjFFwJP5U+P6dz0tJSiZIDDSNHq9am2SDNCWVW ygQ6UzlG4PeUz3+4Pvy1j7NGGILLky3b6wM18xGWbGHYneDdWnb60AmIgE85ChPAK 0kVMgx5XkD0FUhyEseu8VI50MJ1vfllPIF8lyfKbJtST4/7/LuA59aPckEJAtwDov sT2TZammESEoaMW572E1owcnYaspOI2H1SAFWiUlkiBy0JeEY6AxQbH6iSeAhsgUn zxVtlzXQQB0sAPAWbXRi25todqUQN8/N0qvvvtWH/66PT3xmEgTJm5c1SmVWOUkp/ DD29/IwBCspztD5n6Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:14 +0100 Subject: [PATCH v7 02/18] MAINTAINERS: Remove Hailiang Zhang from COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-2-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=Q+MgSdFh34hx+cFCgJDYFMQn9ZkaS5SNN9GtvvR6EzU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AblB+4FR3vKPtz3pTw8JAXwR/F2JKbiJkGU NbGHfSErkmJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAGwAKCRA1qwsonF2y WKOzD/9aBMwcI2YG9kXc8grfyw19r1r76/WDTvCb07nvKSpSPQUoArJhXT3jjGjwZPFL2/Eof8i xzm84MEJP6KivE0BHe6R8Vv62LcWDwfsCVYEwkhkbzYKg/VxzFTQg9g9jHB+L4ThdFdDY2fYCxo k5HG/FeqEBLIB0DClsBIfTcuRnEzzIasgqWI8XGEpEvAxIdP/pk9e1xJqtq1R1eLyXax6CU897L bvXhHAUgbKbOsGVf2J2rpdsIcJsb0uq02MhPMEC8cyxNxKt8OvabpOY0slUzBCwU7QLttuqauML T+iS04KCc81Ov4LTdD1swRjN7L+nnFXgvAk+zaiylaSjhZomJGav7M+xc4E9zhpzh++BxJ8TVJR a+TJRyqQBEfmFGz2hoh1WtQQp7wViD3JJF1XB4PQaSdgP4aSU4HS9SSR56H3Wfu69jpZmja8iMw sniIgIdMxQROMczckH83MPVelotSmkmhL3na6JvQwRTyo9uWUi9pThuw/PA4qjK/jew9mNEW4If JKpPSRUitIFQjq3Pvl2cnOBRrkelaOJ8Syso75R/f5epsYqODN3WNmb6avV8GZv7hL+JmGwSBsX HFRWZUS52Mf0OoXm9Bpah/g53TX0l2BiJP3H8lUMaBoN2gb3E9vWp/JCmVJM4zYwKRb/6WSgZcK AcFkPZWrb3kEc2Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:/sIM1q6Pjl+woVtEPR9K8VlQlDzjZP5aT286nEPFlGuEiA4gl6M 9LSQUDG+UvKk9G5FxD3/lsvzroZVNbgMX6IJlmmsgK4dWBW6VFsKF1akb808vB8lIrml6Yh 029Om6PBALW+NuVDxzEBZYQsBn8EM4PWp+rtdqrU7QL983nb1+f222jyMMZzQlgFFSJG/+L 8eRV7M55yh2F8ZRwynwgw== UI-OutboundReport: notjunk:1;M01:P0:fJ1C/RjPehg=;pqLCmjP+9AXEEpHlzq3xS0T9gg2 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733705016154100 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 feaa4e47082499b3c7c9eee1a0e1a1fa28f70e2b..356e3a7889f9ab45f002f165112= 322e6fb5a1967 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3856,7 +3856,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 Tue Feb 10 20:28:09 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=1770733716; cv=none; d=zohomail.com; s=zohoarc; b=AjjOKhVLZEaJKXPgUzVkxf8zjoPaJtz04/cTnD/2rs/Z8JBl2d2vob8fXHc/Lnrji1V1cO4D+qBNrY0IMzUwFFYSdPJjGiy6o4phwvUFgK9M+QXE3MYaKnsITVKY8LWQ0cNYem06RonnVSCegRVih0NAH7Gqtqyn0nW+Y4jtyQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733716; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=2Je3+6AqZSnLVm8uuHSb30760gu61Fpz6Kj6xfR5eBA=; b=k/EHEBuwtikHE8kMiDFx2hhyyBqJAdvg7DF8YbHMorOksLoQtttK7a7zM+tPunPaO0QZKhAA8i/cKjn6S8FLKz12qx0/z7n2EjfOcVAgFa+wNiLI9DAg5jWWfyYs1Mm1pPFbk1gxJOjHDL2sw3UJYA4zYipTZDYLNEPTmSHS/Y8= 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 1770733716101665.5643908827323; Tue, 10 Feb 2026 06:28:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohc-00058w-80; Tue, 10 Feb 2026 09:26: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 1vpohS-00055q-0O for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:47 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohQ-0005jS-Ex for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:45 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M2xrs-1vojIZ3HG0-00949y; Tue, 10 Feb 2026 15:26:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733599; x=1771338399; i=lukasstraub2@web.de; bh=2Je3+6AqZSnLVm8uuHSb30760gu61Fpz6Kj6xfR5eBA=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=OUJWIQ9H8uAW+AyMJ2Zn5zS1JSsdTnjY/AEhbzZZMMkh+Jaq9XM8TGe2gff1SQ2+ jZdXIYgjVxe2netiKCjiIeM6zuCDTMFNpmzftXH07K7G+smSXtQ/qyEObobjxVjSn 3slxCVW8c+t8cojvVa1tvpe9CYHlndF7sjrVS+8qjTq+gRWd7buaLPP4viMa7K41A kmEDKXYkDW11fFmUWnccsrvRMFp/wrlJRTKRjZJn4ndg0grC1QlxWj7J42KIYLN6v uBaXePvAD0E8Moh049C2jpGGCh95n3v8eAAvwYda4rvQuceuAq29Tc/q/EO8wd2+4 HLu2rwWbOug3gCeVEA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:15 +0100 Subject: [PATCH v7 03/18] colo: Setup ram cache in normal migration path MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-3-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=2P/9ztw9/gwa5O+sAkz8Smeq4Vt2ZazojIRUwUeeeNI=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AbNmLy5WqcJ2xZKDkPs6wR1qtYyR6+BDx7b 0w44RUkxQiJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAGwAKCRA1qwsonF2y WPEAEAChQd7kVcwuDbuQ6iSYr2V9nIoV1x/SJx8v9YwzFO+6wG4I1JZzItrbG2djn7Ka+sZs/hB SgAiJPXjh46cBdf04rv/veBWSN5iKrhgn/CaSGXSTR+9uWqOn7XqCyliVqdq+tZDN2HXHwvtqTz gPb1Qr0c0PhHIvXJ/0PccRpelh2ZUpybuCY6A/lk04H5TyT1SWHp4opSCtHvFVQNHY0vg8uxeNe z6Hodf2cq3QLk/IVnyl58RdTgzxexdMnYoWJn6NH0jDkBPQDFtlh0AiqiPw0JPYl8/TF8RlIcIP QkXdRJMODFkaYklQpkOvyy4brxz4DzgGLz3ktHAhwnYdlfP+iTIDNunXYOYLJr/T91NR9mgdyih bk4J1r+Ni/GXonmaSTRUCHbOfV+/g6KwutxcuYXDB5Pzk527Z09QI6QPn8wFeSdIyjgx9DB4La8 HR4id1to77lO6Jlkdxr8sjhx6UmXN8M7AkfZDdNadYRBcTbL6UuU4AqQPPwgQtQrIXZ/9Ro0m9o rs+P9sOQKQ7eCGqOLRs86V2wGu9fnEPIkxhRrJcM31gM58bp8cUxwKvcv7stauaJyqKbuMj0SCy 4JdlmD467NS+UJ9yZoJxhvDjd4iuUGbZD4jUNGmClDj7HcCGJACeZPtG7nHXDXjrsvdcjr2ClKx Rww4LHzjHrwNFRg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:9wEcGjfibM6xRmDOTDrfyZSAYxfPnrgxCL1dqYeFbZ7dR2NsKnK 6ou4s+y7aUfmYbeX1y5La1yOjLWehefQttWZXNxVnD0QuMex8gS+DirW27O+CuQOZBpweij Vzu1SUiAy00eXuj11h2jJEoRi8FlLnP8O0pILI0vm9u8APo4RuByFV7cNq6L4LOyotfa0pq acsdFHVyjdsgEMvmoU0NQ== UI-OutboundReport: notjunk:1;M01:P0:R/YrjJr2fbI=;dzSMA1+37J+tn+0DS21hFKhe/9d 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 qPi7euGWGncBxYv1rhBw 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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733719265154100 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 b103a82fc0b83009d01d238ff16c0a542d83509f..a73d842ad8b060dc84273ade36e= f7dc8b87421f3 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 3dc812a7bbb4e8f5321114c9919d4619798fed5e..0353ac2d0de819b6547a1f771e6= a4c3b8fb1e4ef 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2407,19 +2407,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 Tue Feb 10 20:28:09 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=1770733698; cv=none; d=zohomail.com; s=zohoarc; b=N9P7E5CkjN3KMjslpczCO49nmjNrHPIvv5ZNxonVDG92ezv6FoFEzT4sNwWo/kZPKOmM6Y+XJl78ZujsHsjkWscQvxO3DAs/vQL5KtbJ5HZZuwlVVwW87jXYdC7KiSpI2I9pWGqVxilyxe6WHH7yOlA3wFhnjVK049RA8lXUoN4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733698; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=RGLrJs+wgVIMusQz3c1kd0U1NF/dMrRT7BE8mQjI8Gw=; b=K1uHTbcMkRSRIVezuFzbP3v/QWnn77MZ1MO/gLkwTG/bXW4U2YmZlyFGJHLL6xxXJGtXBcyFA6AjuhL24oT2PFt5q7C7QYeIJ+VBhtoCQoTXjMMpacxnPuzvOzdoQusicIcRBM8ZJq5KGfxlliVEwQXQXWpIeYvFrP7wpwLVzEk= 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 177073369880845.0740903416505; Tue, 10 Feb 2026 06:28:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohW-00056w-FV; Tue, 10 Feb 2026 09:26: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 1vpohP-00054v-Ha for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:43 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohN-0005iZ-Ka for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:43 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MUlDJ-1wFuIw4Akr-00LKe7; Tue, 10 Feb 2026 15:26:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733600; x=1771338400; i=lukasstraub2@web.de; bh=RGLrJs+wgVIMusQz3c1kd0U1NF/dMrRT7BE8mQjI8Gw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Rdm5JjIW0goBe4LcIYAWO0WltkRsJ3/kERYeUVkNO9JBd3e4ODcZ36ZwqL10PPyH 01YVd6NPFBsUeAPWcJeSEI2pilHrWMNx2OjWo41+J9PLHujbr/wrFnpzMrJsrihBK djoW88IAh7VVMSYRthWnJW2+yY7v7k1Trd7+xxte0lYl1BrUyUS+4fyT4oTCLGfgY eOI3e/cig4m0alct0wZ7+t8yoq0/MAd9DTRodhAjZ5zU+1uQCtv6Cj07cHq0T90Bl JOzqWHcwRxlY4SMNa1WKmCexG3Hc7pKSHiq1F/13P3lu7tsVDhWFx6hqCPgvao3ay VmjY0oNewUd1w5E8IQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:16 +0100 Subject: [PATCH v7 04/18] colo: Replace migration_incoming_colo_enabled() with migrate_colo() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-4-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=36P41Q25Nw5TQAK0cGBt4ldQPi9+jIFYiv6lBX9NyYs=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AbEOFBO3C2CMst9zobhgOfxLY9++yD9uSgO mB7I46IUr6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAGwAKCRA1qwsonF2y WCooD/9KZ+wGXhtKn9bLpwJmV+s1P7aqtMd+CEkfSiN5UZzQ8vQlblwJAoiquxpcaH+xLNc65qH TXE0a+YIUAYNmwt0X5jKHQgQY+HEd+vbKF8if1oZX5iNgUfv1spgw868kAsH2ELebjOAe962HNK A3VW0AH8W5DTJFCjY1zuTxDNZkMeuqT8Mvjg9qHRd+10AbyomxwtLvsBr/xH2tk9Sk2lpwQ0fah zHyMvkil9t9opy85W9WVgqwPMdUMCvou3eb/CyCQlpI87hIHfYNFWnfSu/X9GCIb4md+jYiZKXw t1TPwiYf3L9V/FybA7C4FnXBjE3fJJMJRHJrZ72vO+rPtz29m1kT2XiLOdccFJQlnFOLNQlea/I 0pzJFg/KxPbUZ5AHjIix4t+x+IDBc7xun6wM6tEu0Lf18/VmlPBUCl0JZJ0cw91QNdEXJf2hfoa KenqC2VJZSTwa04m07iMAUulsnilAmLxAocNzZSAzctNrsUiGrvPzfLce0hqjlenIdGsGvOIOuQ paYao367zzW8iL24JsrOI/o/13ZkeVVt3yIAjlma8x69v0slp+3WW/brPgQaveS7Ahcn52V/k7s H9WYBifZnCpnDJdH2vSG9F+l1aKDjYUO/rSifV76dWgyRfzDtR0b1CHIFNIsXcpblrpj2i7p+8X bOr03HeKRj4E3BQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:henhk+iDv+kZBofzKGPrAiooSLUEcd/u1XP9Zcy7dHLNVe0rtIO jt7d1+yGAs6dFjIux6gCLcs8WOMnfUpXkLIRGg8Zn2uLThsXDzzfpnq/43gzEZjewZiOuAq SWd2oyg3dn4kZ629QWd+32wj/mpSHvRjzkiCv1QHfC42i6FEDPNbqoPsd6bhbyyO7gYFsUT psUTjalYfLiRUrtsNOjcg== UI-OutboundReport: notjunk:1;M01:P0:QWtlKm7I9o4=;MUlrSOUWS1lYExWt5xA/dqo9yrH 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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.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733701069154100 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 db783f6fa77500386d923dd97e522883027e71d8..8dfd39b035c48590fcebeb20459= f01fb37fb67d1 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -933,7 +933,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 a73d842ad8b060dc84273ade36ef7dc8b87421f3..bc8ce64ff5000b0eb634a20b22e= 5f3e3289b9707 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 Tue Feb 10 20:28:09 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=1770733692; cv=none; d=zohomail.com; s=zohoarc; b=Wnd1Vci55FkVpZJek+RXi5Vj+CtBRcpeD3Yzp3/AdkOyea2g5CExO2chWYGHLcREMNEr9uUMZJPX9Ii+nEt38Aik2dUcyfWXR8xaAXyEg65lt4YjTM2GEy1w+epguv/3+35CzldtO7YecQT5B7pc28hB/7BMqOPeIERANmt9BK0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733692; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=CnwVz8XWBmqHpe67zT//2crJ7bk/SW6My44mPIi5+mw=; b=PzoDFogH/MpoHlO4wSRPhITJvyeXxAXLlBcN3L+YhrQZjhby1s4UOeLIoYA2U8WXcRrnufkuC7xTWhEtd0bnoKx3Kgx2hx5u4jhfWmR8t8RqnJZ4WpY+Jo3l2uYpX2CBhePxMAAxLRnzY4nBvNtRk6LtTmBXbSiFfpffLvWq4ww= 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 1770733692181228.695113843439; Tue, 10 Feb 2026 06:28:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohb-00058m-T4; Tue, 10 Feb 2026 09:26: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 1vpohQ-00055H-Rv for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohN-0005ie-Tm for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MUlDJ-1wFuHx0olt-00LKe7; Tue, 10 Feb 2026 15:26:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733600; x=1771338400; i=lukasstraub2@web.de; bh=CnwVz8XWBmqHpe67zT//2crJ7bk/SW6My44mPIi5+mw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=sLtMRErufd/0QR84D59DlaSH+/Yizzr3+1S908iO++sBjRDsy/J12lRsDZijaPdq tsrTtXXmYMqca7cjOf4AsQEM+OfB2kj7EzgJJz3AYrKONd1ffjuVbcEu+kij+f9TK HToMNxFaT8NP5tYkKkbHJ7R/XxiPgwOa/9aLe+ga5q2HMCuww/EJVYW2Wh5v7VYxh k18/MUwsQcH2Zjq3JV61mf/4yoEHNZf96DeUn01P450CLbeKIJbLinNTWAhMkFnI+ QlXIgIdsKqvVePib/1EUsfu6JU8mgHa+T/HbTvttV3ixw7NM9VJZAynTzIg/H3oLk eqQyOtC3sYnLRsnCjQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:17 +0100 Subject: [PATCH v7 05/18] colo: Remove ENABLE_COLO loadvm command functions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-5-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3390; i=lukasstraub2@web.de; h=from:subject:message-id; bh=SGXPHYdQMG52/VIHBHNTHrlp7HQYjrDtfkgWimh5FOg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ab9HqoyJRAPtrBCaR2gq20gRJ5S8tY9rrBT rZBT3x1XEKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAGwAKCRA1qwsonF2y WKXWD/oDE038bXU1gWXH1dTJxBipNshyEQmKt1O9N62d6rwIsMxBkulHP6XI8CVL6glP/26TzA8 IWX8E2a8C2+5+a0G9K/DKHdQsLbB1J7iD3dedU8h2+IUW1rvhetV5f5RuRptm9N8A7DS4rweH03 kzDxcEuF6esxzeBbfF4x+4YSL0hY76IOUgO4B5frqyL5mMq2Ha2L5+DJJUR0F3p4N+bS870tykU sKmgOAn+Jm554AIN9zue7ugCTGgEzA/iTTi3IgUf6sBiHkO9ZHF72/pAv2coeYusZb4pDM9Gf/X +WPkh2t2EcC2lHj7BUXae1V3AJpwzCrjvXb2CwIw6+bwcddvJUAJzVbPDFmVthHPaNY57t5ms+M k88jNAkVzItO4Av95YAcef5gYi8aX9/7YxVXHce33v01ntNur+qj29eCXLepnoIDkD25A9Wye6T qGKFl/wxuxkg2slji0peO7PkbhNVG8yFShaxjY7aJ2MlWRux5LwEIb3aQYwn50FaFGHJUAmsn2a N6dQaE9vvh45JqqlKpD+JXv1vTm2XDvcM4mpWbA+IGPj/nNqKwXl9bUp6aEICaP0oXasnHoDw88 vq6cXMc64fs8MQo92a4iV/bI65miuFOPgnYJVPunzgrzylZ0mS6+BehTAq5AK4iXYIrRmLL/Hsq cDu7BTtnidjLiLA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:K0ubuD9ke+lWeBvN8JKHDaocDxRiJzqHUQLXEnGYsa+z+JFyxZr h+W1TDGR0804hMM7DVmtFqdHb+KoDczWg0a1NEu4bEir95/DLla1NdUyGt1bLln5JmOiM8r gf1GyuHPVz/L+COmUWSvlAVBTwTXw6QjUlGjZcCXfZjK4au7J0Cme9Pm6UBr515U/3o8FEk nHe7XwpMtc2DDpg6gyV+w== UI-OutboundReport: notjunk:1;M01:P0:iQGCoyyL6SY=;QEpci89u/if4qVRnzCChNbwRVih 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733694892154100 No need for it anymore now that x-colo capability is required on incoming side. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- include/migration/colo.h | 2 -- migration/migration.c | 26 -------------------------- migration/savevm.c | 10 ---------- 3 files changed, 38 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 bc8ce64ff5000b0eb634a20b22e5f3e3289b9707..3f3fc5276bb067ae1960e4b675b= 33208ad641b23 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()); diff --git a/migration/savevm.c b/migration/savevm.c index 0353ac2d0de819b6547a1f771e6a4c3b8fb1e4ef..413688b75f4bee6cb10878eb518= 86cf6ba14872d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2403,13 +2403,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; @@ -2528,9 +2521,6 @@ static int loadvm_process_command(QEMUFile *f, Error = **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 2.39.5 From nobody Tue Feb 10 20:28:09 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=1770733653; cv=none; d=zohomail.com; s=zohoarc; b=LAO5JWzBvxlPCjutCuFOwOd3y4gOIVV3YS4Y5bsnOta89iDbm/iCVyEQg8OKrEcp6JT5/212QLOwcL1cF7y1JGg8/1WB+0/07Tmo85zoURMxTg+8k3tPpSCqhwm7P7j5EbsRaphO7NgLqsUlY08S67YE7dTho/hNXFXfGd5O2hc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733653; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=UJE2ovwVEJu2fgLMEYPDoWlll3YHStJCzvmj4wYfTAY=; b=a5dyBZA/WWVwk6kOerI8OZVYsH9Y3RD8rAChIFWMrmy3zF61SQZbyQAvDfvB0Fu3/WAMwMvrurYyBhMEhmubQYDpufa9gkuKgGUh82p7yc4p3U03LU4MaTAXNXm2cCHKJXuRAT4NMlzRtSbD9kok1PMWHmyp5YM7K6G4KnJe5Os= 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 1770733653275135.23107429586935; Tue, 10 Feb 2026 06:27:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohY-00057F-A5; Tue, 10 Feb 2026 09:26:52 -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 1vpohQ-00055I-SQ for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohN-0005id-U7 for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MNORC-1w91cA1eBO-00WdS0; Tue, 10 Feb 2026 15:26:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733600; x=1771338400; i=lukasstraub2@web.de; bh=UJE2ovwVEJu2fgLMEYPDoWlll3YHStJCzvmj4wYfTAY=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=d5QAlGSAtWo/wPs2yR33cLfwExz9seQT8Q3WqLCKOEpd5LYD8CMqB17xTtGEdO// aGxHXayiUlAihP2gqVkTPHzP7Sb+oEVAW8BMPhmup56ihvOLtdECKUTBcadW3wnuQ Pz/N2e69tiTqqrhaLQtAXjoRjuzGJvW5eD8OD/SzkLA+DdHEVk7xyu+jRkaOiRq8p 4gAU02TF5SH2VnH5zExqtc4bTjluIX+/MsBDK8IaZNptJS8eS8tiuZX1zZoEcrkQz HuOylfc+T+uRKNQxqaNYEDG8jsokY7aZqIdVzSSVIgUkSnPgS5lB0RV0m7QpUviZj a2/OdIC2drAOwsE5Nw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:18 +0100 Subject: [PATCH v7 06/18] colo: Don't send ENABLE_COLO command MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-6-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3360; i=lukasstraub2@web.de; h=from:subject:message-id; bh=U2UjKxVtcqoXHNnRIOZswN08J4O1clBiHyKBzHjszW4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ac4NptZUfT2tj0yEQSV2HZ3xcFB/wH9Dv1I PTKaLqlRxKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WLuHEACBnWMxu4NGIe4p94+6GYmnhobdu69bU3LOaI3oWNqdMjV7hm1Qxlg4EcUUM6cZv8bjGfl dnwgOLxzJdys73Y12lV0Lw/YuQOIHn+JJ9ChzzoibtkPScdHSyf5BhaVTskh4ZQN3/yuCYploJg n5jvGLAmA621XhnGL8g5EIQhK9f6QAzLu8W+JIkz46ZSkOHyf9eXJAQU+ThhwnaWMCXXDjKsBFt AkdXyZoNgl75D+amaQ2U28zaHShHz4kaUfQBI9zsoW9tFAOKPg4sxWlmO+rDhy1Fk7S+pKgSpia rikYLTVfIQcVvYyaZ8PrpmuXO+jxwvTiIlMQvkQ2EVRfNIWmeEi3/Kn42HW8TzjJpmDv3z/1q5Z N6od1YqZe3AiknwIaHr+5VJtGtwIUP2Hc2H1XBwBnLm1A3pdq4uouaiI7uyH8APDTdCxpl+jK7/ Fwlwq1qHTMfLNecjXr+jZ9Z2zXsH4bKFuAKgy8FQHSHOtk906mj9F03+vNb7U2P7a655hjKfWNN YrBeE3GUfV91J4Kcg3AbYhjzqZGilI5k8JSN+eBBtNOG7euJKj5G1g+m4ZZs7oEnnfsNlpZaG/C NIsvrgwSBCGymnCNg9GO1IvOC6fLXcWNPqxprluCbfMDeuvacxXbU1g3CRbkqQlqvkxLoZfYb1u Qgm1I4DtN+33rHw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:uBj11xeGfs/CiTwmxLx4jWVinBp7EMhI2pV8V43lr9PwI0sCdU6 G4i1DZN5uHNjNdx4XlyW4F93pwqKuQm+ybNGZfp49LD0WFOoIhqWjrHJmy5c4Am9X8KYr/Z I12mDdeYHXjcChOkIQJdC4WtYOhLOODnhcj4TyqdK6jv+ExSJn8uDtCBdLhTdsMThhTxQdf qbdmq8nMSIQl5XJxsaf4Q== UI-OutboundReport: notjunk:1;M01:P0:qOPnt4H6H4c=;1u2FCWz8LcummZDOhqvngeDJmrF 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733654400154100 We only support COLO with the same version on both sides so this is not needed anymore. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/migration.c | 5 ----- migration/savevm.c | 8 +------- migration/savevm.h | 1 - migration/trace-events | 1 - 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 3f3fc5276bb067ae1960e4b675b33208ad641b23..5515be1bf305b40ba0b590136df= 18a53451872c5 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3496,11 +3496,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 413688b75f4bee6cb10878eb51886cf6ba14872d..8af38716c2557837e3adc543037= 8154fde4a289a 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 */ @@ -1092,12 +1092,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; diff --git a/migration/savevm.h b/migration/savevm.h index 125a2507b7279412bcb0745b95a774874c31c54f..0a1e5bfd1ca125565a4c90c6f31= b2f8c94404117 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -62,7 +62,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); void qemu_savevm_live_state(QEMUFile *f); int qemu_save_device_state(QEMUFile *f); =20 diff --git a/migration/trace-events b/migration/trace-events index 91d7506634c9f110e8f0b5f9183728058fe6542a..cfd4d58a0f82ec299ca9e8a9260= dd3c3a210cece 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 Tue Feb 10 20:28:09 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=1770733631; cv=none; d=zohomail.com; s=zohoarc; b=Dn+4gWanhEc+GRy/Fp8zvKMkaT3Saa57KMMBnqvH1NgjXeoZoT2ZsoK6YAvtTDSFM+Q5Vmk24c4FicvHXcGvkZSyttwfEx8NilnQIxT5rPR2RbOI3ogSDaErDHxX2ecVLzuPviooJUeHGFdoW9pYGPOYcY7IVlcNL3RNYzG+9q4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733631; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; b=Z7aq77qxaM7IK1SzZvPP+aOoNo+Lxgc0DKazhzozk80MJddFZT4lNH3Gtxf0NmxhFc9QbrRvl01wcZ1AmpS0//V34lJ8AMCOtFEgGTn92lo9V/V8l42MxGLBO8zSykbzvniwb+jYzNmxbaeaTwS5Sae9Oi7P75MWT+5PFMLf1VQ= 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 1770733631234778.5996191657065; Tue, 10 Feb 2026 06:27:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohY-00057Z-Hq; Tue, 10 Feb 2026 09:26:52 -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 1vpohQ-00055F-Na for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohO-0005ij-9x for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mvbik-1vYqNa2a18-012Ou8; Tue, 10 Feb 2026 15:26:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733600; x=1771338400; i=lukasstraub2@web.de; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=IhGjzl/TaK6nRFgaCDdhTcBt8BO+9OskpfYi7aagPR4WLUC4a2L9UJv+aYprT3Gt Ewn2YbI+ADtYqgzPUSt/azyeoIJB5ZTklIt/b8XTb+tg8xk0ylGMvCLDecBbAL1BE 4/JuR81+BB0EvkIOX/HjM/UWctE7WRquY2pBSVizXKDIoQPVkazLxUBRkdBr7Jr8b N+eFQ8mXIbm1hTXDnVAkiWWv9Ppyv9d7pjMpCPmuG8P3WVizAXQtku9xTaOqPmpW4 vVUN9qYgjRWGhzpSaID+6QeLnMLr8y7gDha5m+icm1PzMA+wSC3u8oVWfewFv3K1a Ejuejp4Vbts9n/XNHA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:19 +0100 Subject: [PATCH v7 07/18] ram: Remove colo special-casing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-7-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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/ZANAwAKATWrCyicXbJYAcsmYgBpi0Acbc8fvBOvkwh5/IzLmbAje6DPAVD1B8pzZ k5BS632WtuJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WJ0VEACwydnVau78aFDWbhhmxS3Bo2w2GaRbBPkhZa5rf+UquN/Y5EKu6fWfptKEtLToV0J0euh dro0BlKOR7BSOBX1FmHqfNixZieR/buxVWcgQgOpI6mtNt3KAqwNvfwcavNSqAy6XXGW01PMilt Fn719uiKKTY+nzXn6woyemagyUtKsjIi8qEeKnU1ZctOz06rbPO7hXAdFQKcyaGTJKLH5gOKZwH wEm2fDOlKCDEkFSqjkqkRUZil67QN+tfYVVjxBIjONnXKUCSKwd0ZZoaVT0VXf8+O8O9V1TRnvh vjWEO7O6gUNXzZIyi/vKQo89BybOJ5RXmZLNglaCrH8rzpNNQScKA08yFykJFRcN3xWqfdqsYPS S8hqSKjZaJm8JBayLdpmnPFMyr/PDEtWMK2x417nG9YzREuO+8nKS5y6K1z2e02q1Flgjw2Wdfw dH7S6MORMx/HQgxlvzqrbdtIkLZudX4GGGSIBeCXjXn853WXdRacO+niijf4PEMMhvT64gnUAQo +5+1DWRF4Irp+tdjSveZHqokqJUYH15gIy5kfWBEmqKb0fbIL3g4qnaeY0S08fE7/oXJORx0kJJ 4fz441QdthfMmCtZlINEzHRPGRbspBbge4bVdsdOza0LC9xXnI0mD7HPo94M/I3V7NKgPYrVFzF nuo9AACIK3Mho8Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:xdnckP23x+jM4fMesOZ/UhHLwCCZ3135YlqSU2PsujVws9QTTIS w/qxQi6cgnyGXKZKY954olnjSZCTJGU8X0RiUVlzv9ECs1AToohx6fVkq5JZj3GyKpUco5s p4jP7ntlAvkvAApmxgG3TaHLh39esSZvTYVr8h12g4ZOel+y6jTosiImJ5BNmlwQG1pDimN bMPa2UPZcXH0l+y3Ss8oA== UI-OutboundReport: notjunk:1;M01:P0:LwZjE4Onw2s=;gZz79XWEhXRG/iFZClXuGeyMb2c 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 IyvaID2Q= 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.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733634801158500 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 Tue Feb 10 20:28:09 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=1770733672; cv=none; d=zohomail.com; s=zohoarc; b=dDnRSU8y1ThGHoAg5k+ee5RW+c44gNRHxTbmlU8hBpF86p5rqIXcLBKyx6WUcTlVaGvZaF/tSlIjaIfLozqin+Hz+cRhA+PsgMf2mIILVxE5wDclV2Pqhb7DDqTFEo92dRIsctQtxy9vXZpFYvcvwGaGVrU7a+L4vDJ5r+ggS7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733672; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=1ICvXz617I/huIhIVtPmcg6MlmFeXbl2B7uO1sTyTmw=; b=a3sWFC5knJUs7kKqSCY5zypNY4tqisO8t9iRN9NOjOEalEOqvCmAFxsxDBOWyYTbiyNt1qQUQPQX/ciHAOm5nb24OKNEW1y190Z7lozO4cUBm452XbGAKG+6oF9X5IvexqZpxF6h1WB/PkUYNgKYeJN0MsFmcqItJNoVJXNKqLw= 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 1770733672983196.83849102388967; Tue, 10 Feb 2026 06:27:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohj-0005E3-NG; Tue, 10 Feb 2026 09:27: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 1vpohc-00058y-B7 for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:56 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpoha-0005ls-QY for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:56 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mi537-1vKtrl3SkL-00q4wp; Tue, 10 Feb 2026 15:26:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733601; x=1771338401; i=lukasstraub2@web.de; bh=1ICvXz617I/huIhIVtPmcg6MlmFeXbl2B7uO1sTyTmw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=KsYqriaHSmD4XHCZXQ7qmbrQv/TGxI1w7u+ZtUQQMhy7f58+NbQQujLQ2jic8iYQ wYwSC3SWpdq2hV/dztLduQ9eYqUCU11QswNWFSOPBDvCTnhcdYCj5SZfAW38v5fu3 rT9D7DHpo0t+YgubUOWHA0ZCdVMs97wVYtl4VKfjJPvxzMuQsXJW/SwQ2bq6RaG32 n2fg7FRiubaYETgFqDe+iEN8UsvETLOm78xNqpbUXNVmgVxFAWAtMM8lHasYhdJzQ 1IUloMts4J8lili662Ts59Hd783Yj4MnTSSqozy6zdQ7mcj90r+pIw+hi257Ms9LP FZqjqY10RrOqQKo1kA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:20 +0100 Subject: [PATCH v7 08/18] multifd: Move ram state receive into multifd_ram_state_recv() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-8-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ac8lDvENeYR5YV+y4aqt/AzxcXzIoYJ7L5K hE4WXvXmaGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WN42EAC4w4NWJ5+nqQE8VJ6xVf8AK5meVDphLCY1mbEfzEo/M1CkUSa8+kWDe2gn0oyrK/P+XJp tOiQJIYiW8r/mn/YhYcPw4leR7yMQomlqBhCYBsy5opBZxliNQM2bGGcvObrg2vnvcv7Ilfva8E mZ/oZQm4qtIge0z7BZsKIM3alwHCybehhkXUBx2ZMHihhUJ1Xq/FwtZsYs4okGtz3sG+FQgkAVU YSJpUD6K4rlydYcXp3iKFJAw2MSsVAygdTmu5358rDbvFh3EWDV5/uOVPP582Dq9Hh9/F690BDo BZ4sbfL9BHdnxcgYNSNqXWPZKeYPfSMU2mGCvx78jn6HKFNefnIC1NaF/OYSNqVqcPRYez4YpYz T5Y3b63LfO3ygbbrSMoSn+/KZ1XQ50AI+DjmLP5nG3u/Vpmqyanht9PQhQfRhylVd3f23Vr2P+3 1MVNdFZlVFTQX8NT1VHmpDqL344MkkzidUMpNwYZ/jlt7R6u17qBm8KEMHW0hDdLh3CWjN1yR/L WrrN0u0y7c415cKEeLe1kZpOl0Tjnuv+5zjBgfnxicKM+V2NFPaqEOgOuxoOU5vJsEENNZLyMWK TLOOdtPDbAIrTLlsJJSIyMju1V+PSvzhWLWfd4gwmqZ3fwSNtnGlI6ygi+s2QQqSlsQkZefjpWr RSeEWYBYj2iUJfA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:hlIvzodC4g3zzJjzfjJbyvBsZm4iLrRQwc62tfi50JbJ7aLCjE1 NB1vM/4dkRmy/+Vg8j6zWR0utce3saza/LpVgRF5SU9MrttKCtxd+xUvTNKUrFSZ5EMO6F/ wn7WhGw+hPyIPwBBZUGAltIFKC0gsdzNNfaOiqk0t1lrOBMSRxk2UvHcRMZf7h/TtHd7d0Y wJGS6OeEk50BjuAf4BRtw== UI-OutboundReport: notjunk:1;M01:P0:dcLxNeCPKZQ=;j0rp+XBBkKfRgzyLcQ1HeO3z6O9 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733674033158500 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 Tue Feb 10 20:28:09 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=1770733664; cv=none; d=zohomail.com; s=zohoarc; b=JrTZ6IFuMvlSUHSb9RknK028jWJn21AXq3DL5pknUBSyU+JewewRAVxoIUW3tB8m2aCmOqfRDdGaXDF0x0T0d8oTUCysAaAEBDiKIja5mmYjixmZ5l4rNXtU8YhVt6nulT17xyhFucruU5PDvDTL9CoiSL8VCZku1XfjsyHuzBs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733664; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=EAb9TsMuWPPA3CZIfZr/ezHEKFwjsBr7eMTjDjKG9rc=; b=eN53UuDTDyKMBsN0FyzfBJW683B/hcIcPhD5BQCU2g8Za2eQv3mTICiB6hOPGRCQBC5zyLMb6mKMEJliGOk30jVeg0mrCqB+eNEHOTga/IsVHJSHZs1zMlhOF/xhc3TbPnnL7oipCsAosg6IyXoj2TfMNL8VDOkChOtRgF8S2Vo= 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 1770733664644640.0031728943302; Tue, 10 Feb 2026 06:27:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohj-0005Do-8j; Tue, 10 Feb 2026 09:27:03 -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 1vpohR-00055l-7B for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:47 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohO-0005ip-Hg for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:44 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MHEXc-1w34Er06wC-007uUY; Tue, 10 Feb 2026 15:26:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733601; x=1771338401; i=lukasstraub2@web.de; bh=EAb9TsMuWPPA3CZIfZr/ezHEKFwjsBr7eMTjDjKG9rc=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=YnzrhIgPT5lmTv/QYqBPRH929kZkIBgiUJ+UvzQ1XbgoWugXWoNRk8AKMlxfzqLX fQTHBQ+ls+wuP7OELDV8WrO7FRkvaJKHXZM6faTnhO/YwjMIsLG0dTqr1pQTQnZAG OZPyCS3LVcdS2G3w8keiq+QwgtXy2GZcl6FO83FugBUali0wXtqxSJtnexHAP4UCd pOW3Hv3xNUpl1QnBxME+tpsRw0EzDP9w4BQc1r968/udNwQHUhOCYESyEYz6ZgJou DZXPxhdjzkTdl/v2zOiWegVQ/iZq9dbHS9YkPK8RfdxzPF6d4yDzCaS4aGpzdducU kY+9mQekowCuYfBQXA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:21 +0100 Subject: [PATCH v7 09/18] multifd: Add COLO support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-9-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub , Juan Quintela 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=Abosr+xKE1nTrw2cz/Hd1u4moj2pYzHV7m3+DIZpG0A=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AcRfRJt/Ru42BRI97V9T2XEllQJ+mYK8OgN rbTOXlvRgaJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WBwnD/9BoPYIGTHA703NY00M1f1NdcZ/GtKpkHPkVxvsTH9z2SZo4FeccSG+3pD1B/0h/+VMqZW +prwRwoYEyyS5GGhcXEygjbbIo/U6/Bi9fSUiSlafXLOBJ6h3vP6ibKpaaEk/3ZXHCmvCr+FCV/ 15951eTZr5NlWMeeqfV26JDgAw0l+4ae/0l6/1ibaoUbGef3JbQBnH9cUHipjqTGRqiN42N65mu ggvi/2ExM1kEHR4S9iZOqtIcj+HLeNfJ2zCSLt8hSmkflLRrpZxM4Ov9Y1IwkAYU94Q3EyfPxAr umhq6wtvST3EQDl9XAH5wxy0X6WRAZYkMbjCHkDK4E0aPVjcV73ZbLHKP7rzAUaT+Y9zS9v2oBk dscOJzbuP8u2h+uDnmamSk9JPE+zUyjRJyl5ukOLLa1jYXIF+ZoZUFCWSDkLzwy/f3SJsTEuTfI 9JeUginFk+CRkoUdo77X6NgSxM+/Z39hM1fBzfag0uLtmweCnZ9YSD4aYaylDIVWjxtS0LwX587 zMC+CC/ybf0gh9IcfbrvN2jIpZgtYbZGE9v0EWH2xUrVhLLpWKvfh3gIEGVvZlGTBgIi3kQV2b9 2UJpYMRAjIf5bw9DTpjm9+2BSBfMQ3prtFbMOr95iMr83cmWXVb1acX3Jtdb3MhilRL7VRtLBu5 2/atPnIEC9sFy3A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:UCxpkXHPJRO+kUhAU09EFDbQ8NK+qv1R+rgD49oPfjeg7pVcYxA zcztr8NnjkpJbs7ILkWR67gJ9Ba/DsiougDtycedFyBPdvzNZUtqrTabh+O8w2one117Rid cugNBs3l6uPphvmpqECDYPpMgsTVyl1gx3KykESYd8JyoLeNTIRC+wNjkmPFWxf2+855m5h xI3AqUarvnWpDI2VUFKXA== UI-OutboundReport: notjunk:1;M01:P0:i8Cip7sevqY=;jp7S3A23NKIbeaDTZv1KA4q2Oqu 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 rVngFpPU= 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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733666227158500 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 356e3a7889f9ab45f002f165112322e6fb5a1967..e6e711ac8a333bb9bfa0d75c2c4= 2dbe74b8523f2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3859,6 +3859,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 Tue Feb 10 20:28:09 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=1770733714; cv=none; d=zohomail.com; s=zohoarc; b=idkfFAA6HDoH+1xTVZGKtEykHJojXu9lnxXKCgEBk6eEle5uAv+mO8mEN47G3FtkGrip/kKbNeqH7ry1ZaQm2TaVqU8QcKQTAs8Wj96y+b9+Ir3GXjw025oFJ0HffzGIJYMcIdQIRAV+H7M64grm3FWhlRmFXY62z2ei0jflfeE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733714; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=8Sh4jCsixGU/ngEDSP7iq4j7Ehuo5ihlh5H1iguY9wY=; b=WBUMm1YWXxVEmbFu8npKtTH28Yxk70vJ7iFlyMBLPkTjO/MFW3fu48DqB/wrQLI5Gj3dzSfdlr0MQMeIds/fPjfNNGKmfe6d3RP8NR/F05KKVOYVS6cEs1ssU7gpmmdZ5Dv4EyatIdaayRj98gaO1lbPOR8jTuqOZGVbBEGBQ+A= 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 17707337148071000.3062712014773; Tue, 10 Feb 2026 06:28:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohl-0005EY-KJ; Tue, 10 Feb 2026 09:27: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 1vpohd-000598-2o for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:57 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohb-0005ly-Bi for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:56 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MVJRb-1wGSms1H4p-00KmPh; Tue, 10 Feb 2026 15:26:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733601; x=1771338401; i=lukasstraub2@web.de; bh=8Sh4jCsixGU/ngEDSP7iq4j7Ehuo5ihlh5H1iguY9wY=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=IgHkxH+dL2h5KUcNbl9ZHwuBGBF0JjPJFRB2sCFNgY6CtXxTcSnrXLHooJyyc9YS M2pTMlKmQkeJBQusWm41jQMwsBAUPC9yi1itOtQgIY/IPoTWMF8gxaWYXQu/ruu01 mH3SqRZ+ZXtYxsHR9b4f9tC4v2Py2k65PdEAUtWGQz0EHrrPKExaJpY+ByAdxJbdA 3P5BRM/X+rzso1UuSodxV6qEuFfrKttny5wwnLC0i3Vb8Vj640OF27DH2bTIGpV9L 3tbNCEuVwyaP4bBPNjpAeJOJBXPKHUWm8dQY2AWbGXXfvntjq9twlEdSK8XVeg9CG 8kk+YnEEGsG2cFhkpQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:22 +0100 Subject: [PATCH v7 10/18] Call colo_release_ram_cache() after multifd threads terminate MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-10-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=CrmZ30ApIHhMHmX1e6HZ1CefluvR59mmAs0+FI/64Pg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AclyT7iPOJ+GBZ9FaxS3xWXYgsCLV3eLTN6 6I4Q2yRLh2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WEBvEACfkB11GIoIbsMtzvIb5J4nfnrwtRxrzzjjb8iXe0e/Ur4pfFKG7ibtWshC8sWuTV9II8M k5/C4UEl9HL3a/ck1hdH6oImF1lGQzCqX1n4Qz344Rey/5VHUVx9f4pEGCrbTZNN0tGwEskV0vt zEk3IOD67HOkChl22vwRUurcNlciqf54p6SEwt0FhpXFOwF3jZotFQHauJDHFCG7IAhbElwQkyP 6DuruhED8T7Vy54Nzy+Du09pQht5FXXzoVD6S4DiWzPQA4j/X0vYrqgZ9gluD6JYzafH1Vg8a3n zzmOTzRpjqEnoHSY5LwIJ96r2WWIvUJLiyIwGasZkqwmGaPByz5pHgA5Ik7U8S9dF0TcfkIPb8k P19fG2b9NdQWyAhg2KeJUuobUPrugLQYYiTTmGJmrqomBZ+/8zuOXkrpkqFK1rUHM5fBYDT5p84 pWDJuH3FaocQ+sDTXHKUw60Q1HFE6TxwnN9r+FThCL4xOc7+UPn/B/7UlArG0mD1gSWrHLbtTnU czylmJFDnyHqK+C3YIUVVRi03wlJVUApJUG/CWz06bk69jtC8fUv0OxEX6BPRDEU483wDjLjiD9 C7OR8wtBBBBHvVdjA7C11cZnFu54mwGJcrAQ4N2nWJ2Thylz0dYO3jREB7QICoKjQ4RvP01vfVO K0zjqM/zP7IcJpA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:YiyF/6YOiTURv/InfyrJR1X0HQnlH6Tr9HMaGpYA4ad3h62tczM QtbigRoaucMHlUGwvVyFqin9f8yFZoRpMwwdEeTxaRkK1zJc2ZbnPWs8pGY+zfb/P1xMjf7 6ehlF5aRTK8wkjsFcD0CCMwAs+OD8+3WPRDj+C/mcrNjlQRWouX5I5iISj8sxVQr9ZQ7lLA IB+MZyDOC+5ZCTay0UNQA== UI-OutboundReport: notjunk:1;M01:P0:b6MTlaDLjZo=;3XbJTA6Tye/E+ZuqplmL05u7q1R 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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.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733716188158500 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 8dfd39b035c48590fcebeb20459f01fb37fb67d1..d3534d1a32ad82f02101ac092eb= f818a0caee6f2 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -947,7 +947,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 5515be1bf305b40ba0b590136df18a53451872c5..9e3f73f27766196ea8673bf9a58= c97d5b8b1672f 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 Tue Feb 10 20:28:09 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=1770733692; cv=none; d=zohomail.com; s=zohoarc; b=N49Kb02/V5IRrZVfHzJ64r0dq0WyJSfp7iupez9QYQM8EaI992KgRnMVm1s1FKeiWYqgYfXpSo0R+sN8N0vhLKm7QsLYhnjVDNfTL0Bl2ypuj6gs3y/HM7oC/RdPZbkd7XLZ0vgRFJIpu0ndoV4jvfvvKtkXeUU07mmhZVg1dVs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733692; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=jJiGbc0HKecovNYE7s40yC6PTgehIGA26Ay31XHpXjE=; b=npbVNaaE6FCt5g3JpjDFwrLkV+05CcxMdf7zZ57whXRYjX1W2BXN3oEBvovIxF5pd9GyYGRGU1Qp2/gRQUTGnPw5N63qJrCqOKaS8ibFH8N6GlKlJ/PgZlUonlyQRLzACIqxjVngViTS74GNCYQqOrIV+lXt53aYzAfeZsHg10s= 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 1770733692102872.108422045117; Tue, 10 Feb 2026 06:28:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohl-0005Em-SE; Tue, 10 Feb 2026 09:27: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 1vpohb-00058i-Gv for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:55 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpoha-0005lg-2D for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:55 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M43GO-1vpohN24vo-00CMU2; Tue, 10 Feb 2026 15:26:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733601; x=1771338401; i=lukasstraub2@web.de; bh=jJiGbc0HKecovNYE7s40yC6PTgehIGA26Ay31XHpXjE=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=vq69A8XYvGxDjeK/upxXQKuiJTb09t4WftSRDwtmUFroVCkIAR69yimY6ubq+chg xZvWHSGB6LaF/Vz33uSoePJ3s0ztiKsRk+b4/DLWXWEQEvaXps1ilwTdLF+1WM9YR Yo1LzA7O+rfDvOoJHKty7LUKKxwbWBlhC7dB4bYseBLB+ggS3wvlW7RAGk8yog0oo F9F38lGw5pXkViwWAspCHFdk2VkxHzuBklAa3UaR9eBwUMtaM8MPy7RENUI3xeD/7 hoIsBjHAcmadx3FkG7QLEZjtuy4gMDTQDjrfrD8vhXlG00ujCVrFz7DF3F2N1zaXc UOrBKUWR18HYkIXRWA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:23 +0100 Subject: [PATCH v7 11/18] colo: Fix crash during device vmstate load MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-11-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=8iGx9SD/mI/gEl+YOmte9J4DH7w8mDTmFlt+tTKua3E=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AcGu1E99r/kiRx/aKgZkzmwDppRjQTSzEUt gJP4MuZ4VCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WAahD/9ypoBco46DSe6exUkmRW+BueSBfF+wdwF0b1DZopOM8jNG6D0cwskFMLY9Zl8RhSy+vub quMAD8QHL2fYf57qX9YgKchJ5tYFHz0X4XIXMeKZKbXMhfJf7M6043j948HmIDk/JJcf8nyXCTN jqWpTL6c82oWQyxXA9YcyU5KdvvG5cOUC0hRdyD35DLgLzUPiATqpKqqcIw5qoxxxTb2j2zcbn8 Eq1d+TgKJzJTp9Bnc7BdGPcaQbeLHXpeWNDwxYEcdnj0C3wN5VM1+QQhvqzmWPvTxT9pbkg2uCx MWpDeDqYSlEt8xXcq0zAr2W6fNwhUKeNogCJ10Ph/HUDrFfH1omXqYV1bocPVyfvk9zivFbO6sE 4R4uYLmW4cN69DMPkIVZ6H+IPkKBxHhpWBlnqmObO726jWlotGjK6plT4qSOk5dU4wK0IKrzsz4 Ti+tsa52Q1Rg9HjkT7/Yru/S65LGuteHJQoEc7afKzDgjmwNv6AUKPVNFreSL2CQiarSkrGTM6x Jd+6x1IVfXHKX9HY1ZzcST3J2os8aV8/8k0hDy1ZKYfSiVuef9vYPLe6D9GeVK//ziuVaRPL2k0 bFw7JHDehx97Mu0DKz2B+JyD9IBqS7abBt7nJAchuvaqZS5HqiQBHyfhqseah4MQclgySk8C0i2 gQhEmWEQncSSy8Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:/UdQRJ94NvUW2o62F5AA9/yvVJ4AvffNyfNVWYA1hlOf7xFdAs7 GjFEvMpL8xSX4K2DPfyJ7U+7b7UfG4qlg8bAes/oKPLbbFEoiioVWm8heflXjuSUTsBakHX S4XCyJSEAnfxTCORl30mTqqPXf2ukYjh9Dh9QV+D1hZdIhTgpcifJnWkefvni30Xqz8vqnY Org7YJrmC6zPSM0/fm8fg== UI-OutboundReport: notjunk:1;M01:P0:chYi8XwG4x8=;jS41T1cNpxvYzARVS1PlgJIevC4 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 3H0dmoiRM+u+Dlq+m7fJ 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.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733694136158500 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 d3534d1a32ad82f02101ac092ebf818a0caee6f2..afab8eeb14d09c1db9b235121c5= 845b11a80deba 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -727,6 +727,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 Tue Feb 10 20:28:09 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=1770733699; cv=none; d=zohomail.com; s=zohoarc; b=Mn3OiCb2mfAl3Z2CmsSuvXdByVguAuTHvqkLzeAp5S40DEob6a/ZmMDA8C0zohAmptxlBPwvLN3Kw4QPAdBNfhcy0Wgm+I4OhooPW1hC33Fj4wOxvm0ru3qs9AaNbAGXQeQFfmLxCP8uElkeRXEn/p5pvZCeAINTzEoPxaLbETo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733699; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=vDwo5voZ5MxEwVTCWV2ZsNB7oCoNMDxztsKzH90Jjok=; b=UJcNA75OuVsnqzcTKShyHS+PtGE2QmkR/iFywfSJEazhMp+maTY9iKNpNv9L+HkDo8b1Q4gMZO/yn/LDxRYDKfEkX6FStmdD5xw1u60q5AsVkzs6KA9xhliRCGfUBBKykE5nIMCH05IfB/i57s2eNF4t4AMYCQan7IVxpmkf734= 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 1770733699303454.2352457196562; Tue, 10 Feb 2026 06:28:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohk-0005E6-Je; Tue, 10 Feb 2026 09:27: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 1vpohR-00055p-Sz for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:47 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohQ-0005jC-2j for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:45 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MkVsg-1vNxKJ33ug-00ZqSG; Tue, 10 Feb 2026 15:26:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733601; x=1771338401; i=lukasstraub2@web.de; bh=vDwo5voZ5MxEwVTCWV2ZsNB7oCoNMDxztsKzH90Jjok=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=JZYmg2vkuvNYPoQoY70raCHiVf0NI+5EtQ8yXR6lroc6cfTEuUWidNBJUZG01Rrh asAqxEQ8ENh6gvFfyEpFcvz3aQFZIpmFHh1/KtL03LcFmRjAHuXhDAeocxJ0ShdvI oCfFSFvOgJ7CEd8mol+wldc5rmuzkMYsih8QQxAJOf3CrQn0dwy+qdqEqidLwNEes QhihlBae2YXnlMCe9Psj4EOUOrTKtVJ3tnuTHYBbxzAKdRvQOINOQn5YQwD0DWBSr qigp0U+pUzYzjEXdVFbIQrD/sMPyy1hxtloQ7rTQ/RBMcI9OwVmmE9CFsH+Qz++a8 Vjc1IIj9bhYJczBYqQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:24 +0100 Subject: [PATCH v7 12/18] colo: Hold the BQL while sending ram state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-12-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=999; i=lukasstraub2@web.de; h=from:subject:message-id; bh=qckNqe049aOGUPLcO7lqIGw+0pvXh7cNkXCCgK3qxO4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AcQ6/HH+UQ6rGsRVlI1ShhxyxotvkZkzSZQ cQfD204AWuJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WGBkEACNLadr85E1wH5uWEt3ICUhgGACE1NQ4Fyk0V/LPzgeZvoLpsMHuxTStrKhDue3zL5gvUx oRfUs8HcRi40ZHUVxJvbHKq5/9M9hqvgelieV58JAqr+Tj8JYlo/5i+xl0t/YDrYiSBnhnk1DeF 37M1Ld/t4C6GfrQlzbyp3UNyUxncxWkKl3ES+aNv+PZ+0gnXFG9Zj4m3sW0iweTZAYdeLBamtgS oUY4qarur0DK5hIq/PXIvfc6Pb51TCuyXZV4acxXIiauV1IOx5/xnrguRDuCqwm965PjndpSaXq woO+l8aTxQW1l1ORQJQnGeK9gZ2XsqoWfDenT1xmsAaEdregieUd/yCrCLfcgs53IKq6oMtcc4O l4Z8ANwsYHhXL7f3rTXhUqN+zPMcqJCf66CoR1bx2qZ9Fj9K0x7Nr8VxWvt0TOBM/0rX9+1O91+ CTDZyiz6a+dvE55VznUPcNgKsHRe28tybsua66vGYDuVrf7z+9Q+VeqiEBfI0Ejm+kKQoHB9hZT BPJgWfrgPjSssmQhCny+KzPcjZ8kmW2T7JAwMIL6GdKsXSEQl2jeOROnXk5w+z2rUYJqYrtyYJ3 +Y83IxmVMBhMUhVRO0IlJkAaMGpTGmedzUX6HYoDS5EbC3e0aGBa2sqkCkF6vNdsizSribmgerp QF1h3o83+vRBHfw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:lpwg2RTGVVz8JzeVlaNF/tM6YLUjzL9kXYETNdWrOAjARQB3A7j Ga+hx7qWo+XaxI8V5yX3AommJY9scwuTLdhANX4sP3Id4mp4xOfAa05s28RF9367/pNi2RC kpYqtLV9uB/EuC5GurYBlmrnptANnR6A/lD1+JQVzYGN/mQIjGQ717cYexrPfgAiw/h0qh7 CS3xqbxYaAxiIvRQdMcVw== UI-OutboundReport: notjunk:1;M01:P0:efBmd6kP2q0=;rZpd4To+K0422nF2oNQ4tvDgvnU 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 X4S6Wh+csxpVl/skUOnSo4xSBZEGK 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.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733701030154100 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 afab8eeb14d09c1db9b235121c5845b11a80deba..74338a59b563846f45621619420= 01889dd6191bc 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -457,9 +457,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); - - bql_unlock(); if (ret < 0) { + bql_unlock(); goto out; } =20 @@ -472,6 +471,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, * to be blocked here. */ qemu_savevm_live_state(s->to_dst_file); + bql_unlock(); =20 qemu_fflush(fb); =20 --=20 2.39.5 From nobody Tue Feb 10 20:28:09 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=1770733658; cv=none; d=zohomail.com; s=zohoarc; b=oAawOy+od6ua2P0eu6EylSWbQ3BucZ/ZLHufcJQFMK8Eji4YdgXhr6wWoaFvwnsdu1oFCwp1GAl69h0QYXl0FViNbfBf86S0C3+6qlfQ/GWltY+FBlZrI06S91840nP9eALC2Rq5euzCCS3mkhrojAo6nT4890SrffKm8HhcxFo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733658; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=Ye3cFwI/N8c6RqLVFLAQ/1UDDuW4Gp8NRD9ndorrXik=; b=RRHFm7nCI6D5qz9Nq6rsAIpNh2GE0rkKPQ/jXj1s6RiJRTakt5GZGLeyZwtZ83Em34rX6hsSfqJF66asziy5oaRBBXpfk04bjvSB1tvHV9w0ZUW5XudhrauORNMDUWYSG3bB1P8CZGH16j0ANMHR5KOUR1pAVi0m6lcEyK0Xs1Q= 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 1770733658791508.4840707968177; Tue, 10 Feb 2026 06:27:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpoha-00057z-3q; Tue, 10 Feb 2026 09:26: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 1vpohR-00055o-Qt for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:47 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohP-0005j9-Ti for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:45 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MdfCH-1vGU0u3rur-00lhEd; Tue, 10 Feb 2026 15:26:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733602; x=1771338402; i=lukasstraub2@web.de; bh=Ye3cFwI/N8c6RqLVFLAQ/1UDDuW4Gp8NRD9ndorrXik=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=XfE2hS1QS8/s4b1XXH76/gnN2xzG8HnqdWnEk90DMQx0IkqDGWtQjAS4FX/BnKCT y4EDDJ1ZXQiBCySmjBk78k/CNo5gI/SJN2RNePjDiJH6/RpBr3bdU2vyWUXfBGIp0 gE0c7vRdI0JUd1JR3AAgaraCJtt++Tpf9eR3tu58UW5POHqZ6yQzDkcXYBiggNuNA OSwHXIFhexPbzyWyNdHEUbQIrUfaXqY7HATY8sS7r6kz1VDRYI0qY0chvrd4lGy28 8IzmqD6ZfSWOWyphiKtAuVwGnM+lvuzMx7lXKi3JWLQzugjhFbJ+vLU0qFBR6KZvF GtK7RRZc6To+Zfy3KA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:25 +0100 Subject: [PATCH v7 13/18] colo: Do not hold the BQL while receiving ram state. MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-13-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=Fmqd2rrT7W38mHUZ1B3clf4lPLiROghSZwd3S2hNl+E=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AciiehjpEwSBxJ9/3DkAGzKkl0FTdp7d7z2 HA9wDGa5HKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WGmpD/4zOZogM70XBsnUtdlu5pa9S/BRR9DOAgPsAdXuVP+u5JUGR00NxQsJWGFekHLPgh45GSc x4FeQky40ZDVD3pAq94welmQSvd5jb1RkDnTsGIuT3VQ4ZXfAgTRNKbDdAvog4ruGHf47nccoze ZayFOdwq7wFl03jh/JacbS+csuI94sjSZ3gyrIwVtapoUxmF30mdI/xWWnACfQ7M30qB/4vecOx V6PWh2tvtnnu7nOzvXxRIqKfwYCjBYBvAy18Ts1CODxJn4xOTk/VPhKY4euY57OpivGRvN/14ud hVDWtZfWBLfXIZB5i5TfeXmsXZc6TFk55x56vpi6OMJsryQO1Qqv9sSbU/psrACpXy6wtS+avoJ D5upfW82ytv33KB/uqc4sh76BwErvEyxxlmML5GP6KAvdarXxMiXLJIu+wn/ihhm8S+GJfYnsdu 7mGKe0XGTWRKHd2OeWP7wzJBoI63B36rTVmwSwJE2FSxBiG2kFn7GaJA4N0FCqfTdY8LpmGEYLE XwIAw2eT+rHI3WBYoc1UMA5bW/jrtCSaJiA59DmvAUavPzwf0hkf0AMKKp77hxjGS55JVdH9jQg PEGlnlLo1zv0Krr7oZxcTPaLSLiU0+j8cReaAkaY9dqvnP7yDyFwS5yppvvOtMdcq8lm0DljkPF 1m+gGAR1hD7WEjQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:y/bQu9xbW0FBomZVUFxn3Hgh+pwCjPtKvrty058/WjFOCE8xihu A6W058mLDkzRMgdxc0K4kfCrkLCEmY783vfGFZzTXj15pVHY8CwONZNdapgXOBBsPUjnSi8 B+Ckj5L33Uo57TnFUN9R6tapEc1+su1JgB+tgFfi+bUgi+a+jhSIYWo5AhDYG06Q4ENe1Cw 74+d7WIxCRM7o1sP2BTMA== UI-OutboundReport: notjunk:1;M01:P0:nqjM4UTVMrw=;eZDSoEIlIAfxPx9davFct531y48 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733659928158500 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 74338a59b563846f4562161942001889dd6191bc..cd1a2b94f497fcb25609bbe117f= eaa8eed1d7f50 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -684,11 +684,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; } @@ -731,6 +727,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 Tue Feb 10 20:28:09 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=1770733661; cv=none; d=zohomail.com; s=zohoarc; b=lYZx9G5KrNcwEnMeReXEB5sIcxD/AwUFreeY7rB8fWpCgII9btQ9TtLUCeU+FgJJd9B89Id5XdFb9yXAT+x1TxKqJkPftMD5POSou9+//JLajqfzpGlqYwSG2Y5G2QPmePM1AAuTVp28r8lCIdLmvJpV8jLCmo4mo4z3QtXjFww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733661; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=zZmWjHjQ6lItQ14ur7yHrRObdhRj00cj/OHH9WFRmcQ=; b=c0dD+C384qZqbxD7i85VA1NXsmGPkI4UcRJeOx1kcwQSPQOlbFRkakFlo9Pm+5Twoy8+EIx8AkKvmx5h4VyV3uB9GFNsqH/r9Tc1QOn8z1vZcTBhYp8iamCkVMnitQ34sT52quMysKpo0FnlMarBBHQkhcvrZdbx3HzlHM0U9nc= 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 1770733661258698.9629904339021; Tue, 10 Feb 2026 06:27:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohe-00059U-Bd; Tue, 10 Feb 2026 09:27:00 -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 1vpohV-00056V-On for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:50 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohT-0005kS-N6 for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:49 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MHVen-1w2nFz0QaH-008BTT; Tue, 10 Feb 2026 15:26:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733602; x=1771338402; i=lukasstraub2@web.de; bh=zZmWjHjQ6lItQ14ur7yHrRObdhRj00cj/OHH9WFRmcQ=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=DXdFdSSrHTmf5mdA9a/CZSJXGWIXtw5cfHRG0vWaCJZ2OG0YUdP0kmxpveMerNDs X3c+f1HdhgIyeLvpt1LcZzbAGCNQ7kkPbqtKtVQBhXBOfP7H/B/jY4rPpM48WuKn9 hw5qobfbsbiFdh+nccmkbJw+8rQ2Ps9gYbkDwoOfgZ+TF8yYtek/jPpQDJEHOdtMl SeeGt5fb0OjwSUl1TlQcmqIx0brinB9dnpEjocFCNvrfOmzMW25fALsDv51fDUBKD cHHweOAmQ0FgEDv2J5EXmp83eLLjhlyF+7KA9tWOsmoon82tbbMpFbAM7XIAat3Ko F8tlCSNrmBa5mGKgow== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:26 +0100 Subject: [PATCH v7 14/18] migration-test: Add COLO migration unit test MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-14-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=l0keOMCpjfwRRBppboSoF5o5+YBX7iahZfhZmMFJqtU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0AcfKULB/P6IpP4IVQ60eJlBQtPGydA/LbZj jdOmzAi5yKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WEenD/4zfcRgF0kvz26M0//xRrM1//4xAjd79QY2hdBqyVq9ai8wXa1s1R67J9q91s67xEWCeNY hQqBkesy4BKYmy3Hu51Eb6YxDaxAMNHpUgT/+bNeue6MVfkSYx0IXJurox5g9NKphcXku7Jff01 C7JMvNRBW60js+HtaDKLt39neLO2AJUz0iCZHBGwJ2o+047SA1OhceoYtUeuZMzodQRGeXUgBfA jCmdygIZ8Na0pGIJqJipiP5pvbm5oz5qZ7xwLi9X/IOt7JXe4fYtbU0sZPJymSd7Mi/Gypsq38Y WNHbsdogHWf4AAtzMcIT47a+Yxjb3Zx0bx5HBy90sIXxbddl8406bP6pceznJNWerLCHadVAHPn 2Ypjh3AGcVpFqLNOOzoPRdoOEviV56v1oAcNPvcgBfFQ0FnISTrTsl4syI46oRt4W2oMen2sMKU dtj0ue1lWi7IO4Qx0g8uukq+QsSJ746ghs5KSdPf1eKitCYdg53i6e1aHXB+jbMNGXiXL7UbFIj xFQFzVWcGvdh3sy8ss0MVwKbDRJJce89O+5De07T/KbBLe2SnqYUJvi/rjwD/uVzsPVO07AbaJ+ lmd7h27D2hdleCzDWSqVwIdk5xyISPVA3Aamv2msmXQS/rR8cV1sbvSg6K0T2WhBCAv1l6NskaI tmRuKQNTa6e4NUQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:hpyB3tkimoqeqfm9ufqQytwFU0dmO/uiFbUUGuM1MtoQpuTzvuP kHA0ub57dBxxdInPzVYyonAzFrYLAmVjaBltpReXiKP/9NXJd4DLpmDnzd88YZeJIHdom8b qHlNHC10HrNPKrhGLOw44VQEVouJPS90tWbOLTcoC3xikel0F4wTPR9TVBnzuWKaB2POR6S WaUNjuDTCouCwk7+hKECA== UI-OutboundReport: notjunk:1;M01:P0:TJGNfslGWpI=;Z/Za60Hjh9jWU2pbnQj2QEA2Ar5 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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.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733664627154100 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 e6e711ac8a333bb9bfa0d75c2c42dbe74b8523f2..fe6010929fc4cb83bc8a7686fbe= 537f1120f1eba 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3862,6 +3862,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 dfb83650c643d884daad53a66034ab7aa8c45509..624f7744ec9bd81c8823075b966= bc95f7750a667 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -371,6 +371,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'), @@ -382,7 +387,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 Tue Feb 10 20:28:09 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=1770733706; cv=none; d=zohomail.com; s=zohoarc; b=WxbTNpRbbK4plvjbrb5yfsoCsYGlWz7zRlMsCYqSMycDUS9qQRaF1SLYmr1esLVoUh3PJHk2cQnhb1T/vCD9UzC1YbHHhc6sfVg1rJbfy4IWM2+VsAVG36OZ8RaPj37S4X9+Xf0ZQdcwFvI6lthQTOPaoGhpEcIUjb8sblodFSM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733706; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=hGC+m0tA3M0So0oR7D2e5cbVpsMtE6mQ3ydGsBOWEV8=; b=KfRwhS9UnUo9brctfOkyv2kWX6qw+9BKeuOf7hFBjZa+euaFu+bRF8m6GsRzERnl/VJfusXqla9ARWmsaXpfT3hvhhfbJhyCTlB60rGupQ2xAkIBUytSieyu5sqTBIDHbNLqI670JRfrx9tpqayIm7ucwqUojcucLKUQzJID6/4= 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 17707337067885.856808914445196; Tue, 10 Feb 2026 06:28:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohc-00058t-39; Tue, 10 Feb 2026 09:26: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 1vpohT-00055s-PL for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:48 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohP-0005j6-Ol for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:47 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MG996-1w1yqU1SaS-004cAU; Tue, 10 Feb 2026 15:26:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733602; x=1771338402; i=lukasstraub2@web.de; bh=hGC+m0tA3M0So0oR7D2e5cbVpsMtE6mQ3ydGsBOWEV8=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=JVii5CjGKW33l29wUsx5JBmxugg89r9GYcLfLsXYue9eVteV6WBg3u32zEuKNuin 8j4dxCH5SCIEOtatFn1sn2mz2sGCABKD4mdcS/FGXyEpBBB4OUsCsehhy+wGym9Mv QnkqRvb9H29rZRttpqwiaEHMr2bSRtIxA2kb05He4V6hiDDc5SorqC9YcVNu/W8hB JgsC65908FOiX9YqSPLvCpZsFLUsISTXSCg5s9O+ByWOvEpXXA8AANo5zXlhpEdUu 52jKFA3ktAcXJQARGeK1ZUByIW7t7SbqcPCSY/YBxoCZDNx+lJxepkM9ORK5iqGe2 Sn7b9SubX2RanTgqQg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:27 +0100 Subject: [PATCH v7 15/18] Convert colo main documentation to restructuredText MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-15-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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=+Fe4mH4KK78+TLQ/FOH4wNoY+Th9EiHhTnmw9JF8BDE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ac/cxIJkOwjq8PsnZFJHntLWJBlCLoPvsQu b+TOdUxUWqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WKmvD/9SCQkleCYh4F5NNuPcHXyOTDOnR83zDb3bZeyrmkuiGxkihn4q6NQbL+7iwO9P5ulT8Fs LdbDhLGPWw54KiRwJ24iqHY3i91iMt12eUMRWK1RykKsFL+NcTGjk9lGugbt7U1icS6+NAb+RTy WtapoRT7rx1Y38gf6VUeEDUZfvAYq1xBrTiwkwjtYMUo0PAulI5ClGOdBOe5snM8Jvl3oxGg+Ox /ikgP6wpT3LdtFmJNUbTe/3v99FkDkFOHeu09Ug5dOTHcy/upOSiGPcaO/ueciCxID3tUEUJDtN 8Jaw3Q7cJaynIg13NSsuUzYF/FBmZq4XDXbab8nTGMolgfSMamIx+1lQHxnKfas8cM+6Ht9cHtM 2oNgJeMB2uB5yKRCBaS+o0p3hDZ6qM+EKKCZ4EnM0KjGr1QWgIjgtvgE/PGoAKmg3uwpxEoNbTV XRz8qvMOeNXe5fY+/3dePwFW+u8N5/NNE3Z47nExFK3aMhzX5/kcC2qkEb3URMVr0RbtQWkviQ6 15bBZ6d5/GgiMLZUMCvmglKoRlGLBJwhKKTjXWinI88LHdyzB2UrojvBIoICe0bE8sSWtKxQIXr dD3wHPVAbBHrAM2hxF+K2rKthwm/Z6NbeJZexCDA7StidB6wEn97MIs2r1TpfJKAMBhEXpR++5e RgJ4lAmt3TQxhjw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:6rWul1ozgUP4efaI/SaQqLxvDgCgqyFCKWhLMmDKAaxcsfaoXuH pmHljA6ldFc/lOvNnYRbpj438Js1WgQuQqmijbWlVw+mWd/acs1XIQjOntQ3nQfepTFHDoP sFsOKhTZmYzkU37zBvn/Mvc9pOW6siGgd1Go0+Lq/8qNnaxJAutcm4hi/B4Lk6xgHkm/uJ9 etW31me3NRkCqNEknvsBQ== UI-OutboundReport: notjunk:1;M01:P0:VmdSWoPGNQk=;4RTPKoxhP75RJJkmNyAtbAq03lk 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733708269158500 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 fe6010929fc4cb83bc8a7686fbe537f1120f1eba..50beba7cb105efb867c7d8cb140= 357f329241654 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3863,7 +3863,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 Tue Feb 10 20:28:09 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=1770733704; cv=none; d=zohomail.com; s=zohoarc; b=QqslnBdhnQRLX91VzYsaaOBmyAiyzMvLeCyxxIhlyR2Mij7u7NpEVu1qpd0hMXAliL5em7mfAY7Z9zwkcc/kiRv0oGCjS8ZkRnDZLRIVajZYbv+eXZaFUKh+GiyYkyasw3VSnj0+heMO9lxSJKElxX0h/1QRa7dkYDUXp8H5u10= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733704; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; b=OFXy+ziUqA3KJGzbrJDQA+QsCrOy3/4wbBqUcITcqdcmOAz1OZmWDp5CigZxnxGNpHXXyYagYSRh/FFvzB+GpxMpvbunD32DFoXvfFzGUNWlriL0EOD1rI3XmQJyRdBrvM4YC5Fifc2wQ3l9Xb4hZZdK5YqGpvNANhnuhJLHZ5w= 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 1770733704572385.701048626667; Tue, 10 Feb 2026 06:28:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohl-0005El-QS; Tue, 10 Feb 2026 09:27: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 1vpohd-00059D-HK for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:58 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohb-0005m1-Ix for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:57 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M9ISh-1vuW4D2MWF-00GSwj; Tue, 10 Feb 2026 15:26:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733602; x=1771338402; i=lukasstraub2@web.de; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=s/X/4EJRyqeRHFaJLhlw9x2L5DTadOJdon+ibSmBFfuAuiMF9nlTmY2sjOaqz9CB iuHq2PIzByBNnS+cYO6lMja6eRabB3aGo7S5UNxwWO+OMsJbW8j2L6cIfuW9taQNf MjNaJNtLY59Gehcoe8lw/XAekrzHfsLKJWt/9MKjmRvdVGlZqjDwrCgJly7NUIOW1 k6sVwp+fspfgny4HJgXCawtNsCvLX1AAhfC4cR+ANo9C+BPDTjUKG3vjTZ2UdCXMK DM27iO098wqBVFhv+b3oZAwB8yMp+GX1eVWBCKiTc4+Llspy7mTI3nc9WLYzwIAqg 4BN4Flroy2H2gGi1tw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:28 +0100 Subject: [PATCH v7 16/18] qemu-colo.rst: Miscellaneous changes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-16-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ac5qrxT05DXNU7MGhnWKdIuSNoLGRTGeSIV neP9Cb1oqKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHAAKCRA1qwsonF2y WOP2EACqktFa8YorZ8XKRrpeO5GHTAuYyyzAg+Y9e2misyu/2Ew/d4Ws/772/Pum9/dxzVs7k5i Nx0BK0d62n7jWX+SPcNHP0HxVirSUI5ZaZK3oRPTzoM1hO70BgkJasW2oO4SFS2mY7o/npVT41g QAE/7pKkxpGPGRIknmBTtJae2WyeXAr6wmaYDdjcOSxgwoRu5zQVspcaGhAa8WnxwdhIm7hwONM b48HfBAbMsU3UXMb7pB/iUjVqf0CPQFPIeWsfMtBZmoLVC7qk2XKjeyFHO3InMzRnFC8u40HrDU Js9y1BxlWnME8IhFUVOv8MdZLQh8x/CYr/2mwNjBqxOKYpITC8ibZRhx4paLTpr2fYZNdyjZPlL QUic/8lualVfcGcX3AjJQNkwqrC8XUDtPnoyVAdbUOTZRsdmOhI0pP0/DM00K+oXb4sskOBGcs1 07TI4C7YtM0nUbLJWO1lFtUO3df3XiRK6TLgqbjVcpA7JMX8SoxCDefOvZuYklJNDSYVLtXgPQ8 NjvqtP0o+08GgaXzvnhH/vte0a8tONAsqHPXGB/G3x2amrDIeGVi0FGkyrh8VUSNXNrVl7QnCL3 5TGp28NZN2r/V8roOXhFE9XMIiNQsVx35qcvF8xqNXszGVJAbZv4S3Xwt7XwtVG4QlyMSgkM9qP 67kLf8AX3+k1zhg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:k/j0e1W6SVMY5CELx88SNBkXZRCXvLXm2kPqtnyf8FARuK6EteX l9p9XXJSTD1Aggp7nteSxh49pE8zJl4UGKszu4Wa0yIsf4b/qA7Yp67SkDQB1ecfFzrqtm+ nfGAHOO93FD6gIomz5REFTYtUHxwDEATYqZu4Cf2i2yeO/qkgNRPlKaVv1S+HxyKQZVObbI 5DhdqTVO0Eiu1KQtEV7nA== UI-OutboundReport: notjunk:1;M01:P0:gWrMEUjPWhU=;guiTh3//bLhCRjOjPEtGqNsjHA+ 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 YTuE/mvn2VhOHeeOoBKWFSRSW2z/e 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.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733707158154100 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 Tue Feb 10 20:28:09 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=1770733671; cv=none; d=zohomail.com; s=zohoarc; b=P65N4xFtEtm1+jMp3/8rbU2KcFs3MpWYkYazzSO8Ee8e+8byGf/6QtxfDniJNLokTfcaCfY3CUC9VeXarmyfPJSEJJBvmOzK9vb+AI05oxdoKfNXQ0FhMihrjzmnGo1OB4cSYypmF8QjpuDnsNT7F5q+ApK2hoReP+Vtp1mUlGA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733671; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; b=i6u9+HPgnlYEx9oncb8QCzcQH0Q9OtB7eJmTo59bjHqZkRmT4UhpFEySa4xWE3xDQoVHAaEYHkyyS9W59xuhyOhAGzyc8uJJD7gEP7m+tt3NX7+ujfOU5Fya2PTljBfLKjEr/5buKjrfEmRZR8GWt+FQhJRq1jglHPkqEQhI+nA= 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 1770733671792513.7705722726995; Tue, 10 Feb 2026 06:27:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohl-0005EF-8F; Tue, 10 Feb 2026 09:27: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 1vpohZ-00057q-JT for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:53 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohX-0005lW-MP for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:53 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N30dV-1vflC33GW5-00r65j; Tue, 10 Feb 2026 15:26:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733602; x=1771338402; i=lukasstraub2@web.de; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=SL9XAG+x2uTnNnrPKSKhs2UhaWve2i3EsxTJp6zlv21fJbpJaqLJ9sPW/9H2KIW6 6gtdJn7TUCXMgh4amQFk0wP93yCghY/24WU/9W9BYW1QOzlRhcfiMIqX/+0weaWAu nJfDUWxnR88ArKbwNxHnBeoEYDX+p52YJ4fhppEefuMY5pKM5+dsU9fwbUiFJHn8u I0fDkT59PLTAafiTxh0igkQ+8eFoPJ6r9wpx2JOaB025ut+4r+PalLVg0/jcHXpym 1dJGGsLwsmqGs+g/MTW0oKQ6pBB8gtiv0Dx+xZ8AcSWmlb5iNJqrTtTsIcRn1934K e3t3Dhs54luHFQgtZA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:29 +0100 Subject: [PATCH v7 17/18] qemu-colo.rst: Add my copyright MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-17-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub 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/ZANAwAKATWrCyicXbJYAcsmYgBpi0AdVka8uv9dxNW8q+nLq+k5oyBb7xv8oFETE q34MdHKmryJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHQAKCRA1qwsonF2y WI0wD/9g1VSVvOuNBQwYslkCVqOzi0/5xmvkPyA2A5FmlV3ciBcK21ojkXVsLLQPuWDzwB4/1Ua 8t84smI6pteDIPqOJ3HjXh5HvZj509x5YSS2/435s9a/TnT/+k8M+uiY469jaxM+T/zeT7pqo2j JJdd0bjjmt6ZvWPqxL0W3hT2liBwAo9p9dSQtXLp6FsBOwaknS12JkWGDuMikYZMsMIQ+jN3Dxh jpkurl1ryu5dFsZdlhYdGUtuEC5UAa0yTSrXtzwZVZHBDnIbvva/aLeMlYqzv+cpKO5wHnM8sWb nnOPGB2cSwmBEyAS1QIqOEb7Ytj1Y7+u7e3W0u0Lq60xoEUBgC2Bj8OHszA8ekhPzY7JpsMIbQW KtSssJlIJqSvOr/Z9suK6QQjjaKsbeHQUXK+KG0ATUKov8/5OXhIYFaTDxzM0Jm3TgpIeitq6NH bRw7IFQj8N6/846RZavl635AXdBqNEsOLjLDE4PKK4qR1hS0kOaYuOIx+1xFmGIL6vvARFLFApJ klIOcByh6MOsUmXbhSMh0JpTN5Oncz0VdTH7km5vSxd+hfPz6PlanoElR2LjhDi+23omQ7Gsb/R CUuRFbWAAQ7N8C6NiNJaey+/7jxjUDZWAOO/tAKyB1z2NaTt4yWYySf0+y4VPc4xU93OhuzCukb NXQ797v4sOynvRg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:gRV0ONw1Ly5NFfKH7zqQU4TaHV4ieQpdk1bdmCaBZ7oUtH78I7k EHY/oITfqYlcMy2QiSJxGxtcrE3Ot8TzmYZBCcuASnycgIr/F3Gc/r/Mb9zdsVXDo8B7vl2 y5DAytTKa8x3diIW30/sfedb1LtNWB5kOcqS7yC5WRekrDbnG4fmbIzk5dxdgHXzcqeu+7+ EHqxC2QRN7bcv5IQCfl9g== UI-OutboundReport: notjunk:1;M01:P0:QS5LtaJWGwY=;TlJwEssQJEs0OMAB5z5KO9mpmWX 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 xaLZWfyGvmcKBgXeSL/dMLkHtCEjnRorB1nMdO 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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733674018158500 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 Tue Feb 10 20:28:09 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=1770733726; cv=none; d=zohomail.com; s=zohoarc; b=a6e+N8Dio+1nXQ0qPWL08Ugc4BMwfffz5MoYuhn0NyHGuQ6UnJwH3Isf8ETKv0EGWPx9Ui9DlYLtiakNE/3g/wVlvRYN+c2FAUWeESUbtmGQL84lD3+EEBOU5pWmF229eT+aEIgtsvW32RhaSrbZFryb6zXThYizP9WSCUJ+afQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770733726; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=5DRNtylFaST6/JPH9QU2U4TO4NvWnISJBshbkAaedFI=; b=WvfhD8cH44xGpQejhzgR/y0+ZQXoLU/fJJk5LffpoBgBR1oJxPgdpPZYACSfZ16OSTzQpL7aMt/hu1wRsykEP//XkemAKwwsY9Gg52FX/HX1XyDgx5DvSK6B3djJk7Sab3IXZEHoRce2Oj15z5t8fA3qgmRZzEZd96BLf1kC4Q4= 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 1770733726230692.8025663725745; Tue, 10 Feb 2026 06:28:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpohl-0005EH-BU; Tue, 10 Feb 2026 09:27: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 1vpohZ-00057r-NG for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:53 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpohX-0005lT-HM for qemu-devel@nongnu.org; Tue, 10 Feb 2026 09:26:53 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MpCqh-1vS6CD48Vz-00eV9N; Tue, 10 Feb 2026 15:26:43 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770733603; x=1771338403; i=lukasstraub2@web.de; bh=5DRNtylFaST6/JPH9QU2U4TO4NvWnISJBshbkAaedFI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=XAz2aUsn2K2c0NTSiV+nTskYNABqa4ajTGgDPJplLuQSVEPSTlte/oC0zEKhFjGF t3m56biyFKtWgE2AALYwsxRve7q6YAT89qDoj1Eg0hUEFVTWFNZolkxotU+y5T15y qIKCPp8Y78AiiSCh6/wRvV8n+cDhlEM3Ob9R1c1rr/j9iVG5HMltQyDzNno+yiCH9 ajJUpQ0LBzLhZBUz7o/2cccuWl/6EdKwY77tgnlnqlQgWpuxEWwgazOGwxM+hYOhf jp4+EHGEgCxEKVPEECDZ0uOk9fhTjZUDMgPL5Ea7LRbLrivmp7HT9h7BafcJ6EVTp nsiApKrkX7GQwHQFyw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 15:26:30 +0100 Subject: [PATCH v7 18/18] qemu-colo.rst: Simplify the block replication setup MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v7-18-23bd32f36828@web.de> References: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v7-0-23bd32f36828@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4393; i=lukasstraub2@web.de; h=from:subject:message-id; bh=TYU6TTLFHjrH9WpcMw6oVhFbPAVy0WPrt4oU9i8UKQI=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi0Ad1R+f1Vk3I4YITt3rkJaiH1YHxPyeiDl6K fChv3Iz/P+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtAHQAKCRA1qwsonF2y WPdlEACnNMkELWOKoGz1xLv8O4YZP91hA7JxvzKblTZ7SKoTbgNi8zjNTS0mHiKG4AaL7MdIEj7 NO2ZCWyX+Gu5gr52CSN10UANibhGJYet4c3DvAeX3Y/fD0uXH+CR15zrQo+W6vcwdWAOMZeyJcK FlLFdVrO1sC0hyl6r+l23F48hZ+xVTjO1t0jobCbRI6uE73lrPFdgVeWO5WeLW4jk8R6Ll/ElAI 0aMBeJN48swJekIc03CR5Cm71RyuNYHjp51puy/iMcXzkV6DfeKgUpreZry2M27Faj6/cpUrhlD igbHVJGvvlg5rF2eVCjR2OATcKNSg7bj+fbxnD3rmKXQeiS+CvCjSHh86jBjjYwu8PKUW0TjsL4 7+eWZSMvofB4JjQw9yPIcYavZM6Spfcl0Xj7k9UorBVLLbdxF2tWaY+BfF/noDyR51GDac4DcoZ JTr63wTBAbxF8XyRBbrca41B4DVaJ8y4kMf2gCIR2k32+hlWyLBuO/bNZThUAFpVchVHqnRyGif ogY7xmbzXKw59pmheoD5JUCugtvF84ctAHZfL45ZqzwMMcvEQzJxAQSEcoUE8vkVFUSY5s5AQ6M RjKP6a4KXXh2vT+FbgbKVgTfTP1DEjyKGBZV2659eXxnPOH0UUWJEmDrqFqa/n8MrPZBld0GSWm 1pJ3mP3afBoJ/SQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:NMnynwR9zabIpF7VRP5WnaubOd7ERxLuRdtV5oUiVUmXPwi3knW GFqesdQR1PMrAZwSc6pZwU6tUkkWP9jKRst7/v9VEHtZisrV92URax7PzXzCpy6vGLxBxyk GhOaWRwOlHufEGHYCDUwa3xlUtVcgz48R5vqXeY8Ukyy42h8taIaEjs+3nr72/vRKPoa1p5 zR0oaeucV7kAmFWNSTf4g== UI-OutboundReport: notjunk:1;M01:P0:L/tEENQbTBs=;WkCRMKXJY8PiFo7wnkwazAbhHFo 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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.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu 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: 1770733727353154100 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. 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