From nobody Mon Feb 9 18:22:58 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=1770113790; cv=none; d=zohomail.com; s=zohoarc; b=U1+REF++11y6utrvVUSbEoJHQa9sVsjwozmxGUE35hxtxBkEKfqa8lsrnIntZ5Dr6CiRzWynnnqYJy4BKjc4gaUW/1Mhq5vXyiFVPV3dQrxR0rgeaTELdzVd7Z0fmLbhFbOu8UA+Yf5sKk9CW2K2PqjUSrINc9Do9tt7hwkyNo8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113790; 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=2fLOiQss7mpS/YnSLXytum1S8EPo3MszBelWBV6HFKs=; b=jKyfVAxNC/jAvxt65NjEOEtsPbKBA4orL+JANo54n88BcwctjPmwbUmwY/UwSO4sY6egbJKI3PnySQUFQ4oLBcmer2M1t/A7i4z/tRHRVIWaLRnBAqWPEZzt5ostx4ejB3K4aoXxI0+ebinCUa3m9QihFIurORr/5NHH5O0nW9M= 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 1770113790492328.7578685170506; Tue, 3 Feb 2026 02:16:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDS9-0007L9-8y; Tue, 03 Feb 2026 05:16:13 -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 1vnDRy-00076V-GQ for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:04 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRr-000280-Oq for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:15:59 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MiuSs-1vJOw30fvY-00nwUM; Tue, 03 Feb 2026 11:15:47 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113747; x=1770718547; i=lukasstraub2@web.de; bh=2fLOiQss7mpS/YnSLXytum1S8EPo3MszBelWBV6HFKs=; 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=WF8DUp4wpF9/KhFlG2H4NoByQSn6+lPlU5bRsRqwP4OY/MsE+3eCj0iSUqXl6YJo wtjjWRXep+eHblavuGWvPvp40+vVm3/2oApq1yOy8eFdGYNP0Ijih5QxrDb5t1KtB nyNb1FpzhTase20knAbLQtduKhoXFL47RgZt9I0XdK4GAmXMyrgVUO+Ck7hS+KTfd o3J4TuKC9M6K6KmR4xXTr/Xb5WkqL90e2FUIPKC6JjB3+Wrhlak5Ntw+LtRTjRIcO b40gyhabO2BOfCEuP6EarrQf65m0tljcwHpqyAyZJW7kXW2qqU3EHKOF0OOM5LKRA prdDmq/ef01sy7rY5w== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:07 +0100 Subject: [PATCH v5 01/16] 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: <20260203-colo_unit_test_multifd-v5-1-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=FH2/0egZipw9UBAskN0KxY1g2vT4HwhIXXub1fgoQvs=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrPG5GEPetGIO1D8HQEM2QwYYGrj1DKMdX0H p3eVQYdWfCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WLCcD/95yfezigYWOIhTaos0GHOHegOqtoJKGEPOnt/AJq7oLFxW3UJhxJ/WenO6s9V72rIrsPo Mc+fThwPfjdC3Occ0UsyK+EEKjMe+uMwStYdb3Hcby0bpqcnGSanDbRCxkNgRt8G0W/+3McsUII ran/VnlbpAHqdPqT+HUtBssmV33W+nxFB9OoMoc372DYYd8LlLAjndWFlaIkcgz7hdTYM3aHB8f /342Ea25iAp8+Fs3aFz8UDdl4m9piE9dg6DsXT7CmwCzUA1shwFdcDJGVlpU9xpGIGVHKmEAxdN FrckcGQc/QzS4mErc38Oe6L6ig5QB5HDO0iUEBDVo93D/Tp4pGAb1fosilDdxnETCHhpMAJYka0 OA07AJiw2MExqFrsgMhpyvd7o1M6iSMWukL6GADeE9YfxujDGxiua9KFguG0cVtq0XkbApVXfc0 4656h+u3evsQL5CTq1oEaXiHvdOCTYZSUw6X7CP+drmvOMRNo5I6WATIsAvw328yfVZ177vtR2E 9Z/SWcNlgFC61sb7z2HdaQNAJO9PURZZnf6Bzy15eKNtdMU6m1N94XVp9hizy59GO9mthCmtFgH HtBfprM7+vey9rXXDGLH9nIrspZTlYM9vmERIaOEUPEL1MvuNbFke850++LE7hWaB1pI3EbCRH+ 9t2ucKsugA3DpZw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:CuaJ34oqkMuSVhYm2sH+sRzXwkkGEKmCDmXa0TeRzgCVmbX4pvu p/R0k2tSKX2EhzOl/o7HUs2tDFFciVuqi8Uu93cLamWoMVqVvZJGb3cXfSHFrJ/LOh52Lfu C6bDHLxhh31QkTizfOAy2djlFE5EupNrPu911dSDANlvf9Up31FjkOZQVqbJX3moCAV5Nco yJb/3GXdRWBwC5OEr/lmA== UI-OutboundReport: notjunk:1;M01:P0:DwJiwBCFGAg=;2UD+CJpefbghO18M25UOy6lk+iv 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 fl5jFdiT8kvUYLIJVljGlbpRrkyLr Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113792711158500 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 9b7ed4fccb1dd0572abbb52ecdc9f0b217fea13a..a9b29cbd528633b25adb6ed7ab2= 162a2d11b179f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3849,6 +3849,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 Mon Feb 9 18:22:58 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=1770113866; cv=none; d=zohomail.com; s=zohoarc; b=K5huFLLeP44yyQ3mAYAEMclzrDVTRYOmmZ+lmS2OWtp0eeXRPEHDjIgM3XtMm7wOrWlv71LOYJ5wx3tUgwJy4XFeHzBRFJbV+QY7NRV0bhA70IqWReizyO5mDFdsnreg809rkQpOCq1ewnKlKiBRBIrCYqvkgEZnM3rQJw4UaKw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113866; 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=SIsYoIOUBzpJ4PEyh0nc52NL9mD2skAsvSA7Ee6VW9o=; b=NDKOA9t8AZbvfqDgZZ5GVtzcTo9Y8jVqHHX7CCfqlu1h2sWY7OcbRkni+A5+s2gzIpNQTWlmfFWmlTxWLxTEk8mOrwdFTIitjxHJPT3n+kaa91MClAxIRVf6Zsz/lk2LnhKHg/E+ndLrXTpkGHW8+pqea96JNPuLCuWuZ6X24HI= 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 1770113866267108.01121349809227; Tue, 3 Feb 2026 02:17:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSD-0007TL-30; Tue, 03 Feb 2026 05:16:17 -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 1vnDS2-0007Cp-31 for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRy-0002DL-8r for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:05 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MOUxo-1wD0Qf24p4-00Z0ts; Tue, 03 Feb 2026 11:15:47 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113747; x=1770718547; i=lukasstraub2@web.de; bh=SIsYoIOUBzpJ4PEyh0nc52NL9mD2skAsvSA7Ee6VW9o=; 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=BXduZV9fTwcEAiegSjJIDl/LaxVauAMRIL3ZR1ttWyToAHH1ooHyTU25qNcY+5pb u2ofoL/jNaH47wbMnQfatVQ67IS9ziNqHui5XAnKmLgSN8tpcTr46cY9wYQjaoXX4 bDSCzkEAyfJ9wmecxBl2YdyX8uLIbrDXJZO5I0Zab9XgRcVkivCXsOx9Zl/pq7WOt Hvbuz2erTJf65/DImcj5SGMAKTxykQ2lrV7PM+yUJxA7lUg7TfrvscVdGBjzGMfGC 1uWZZ6KVTtD9kOR8UD4bbHLc/1lY7c3IFnZfOecH58juDfUeaOvdtqZDJBYnRUOLY U99MgGxKcDeu/1kszA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:08 +0100 Subject: [PATCH v5 02/16] 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: <20260203-colo_unit_test_multifd-v5-2-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=akLtAizr0Rulj9FVksSEosvDq4TvXIp7Un4kokIcchA=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrP82jkoPOD5ZcF5gMq9QyRXc7AVWTZ9TC3f gK880dpxOmJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WBbGEACu3GZ/WcEyKgD5K9I/er+fIl3H5PKKdaCjwLO4x7fsagaVLv5leKJH96jrqWsIyKY+5LM YCi5OSVUvSRIJQaG8MDHHPR9qlyVUUeVWLs5lzVygHxhMZkrzTGIim2vWoIww0yWgE3MOmOyOIx pNHFeKyWCAZ+T75u1EdypbNtOkziq/4zlIm8fBQrnQ0HICK6lPUJYecJSA/jA3HOLS24ZCwvoES BnT5HXl/5bHu3/NcnCT6bCPnUDFv4Z1+JyEvAz5ydf/jXIV5Kw370eM2r6i2lcwWgyhibx054nz 835pn21/Mpsj11k/y8Q9QIdDqlzJlt7jLrVgxxxMM4M0mumNE7lLdm2tKu2gYWttekPjGo2qKRf VSftu8uFn4zpGczTYpb0Gi+1XjeAZ5IWxCz4cSsrWZWqa9Dw3LRcpvuQ9bX3YZxkZGNdewpv95E WUgd1PBGYLqQ9cmASHYCa/X/5yUNGFJ+4FzGurH1jgBzGSmkfean0L5C9ozEzJ4k/wPFY3XODeI Ne/t3gU5C1H9nml2pT83OfS3o4sZNBJOgYrVfgd9O8SV4fMZfSNG+cK5Sqz+CKGvFY0HbCY0tBT Nbh3Z04EnmGTzAYW9S68lHfEXPAbNdOiQTkmj35NdNxyZ4mdd8eWYDfENhjkLWrccDSonBX2Axp vwyAoVN+UrYMsdA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:2QLKfSY0HcobEPzZ/3tTpcOdmdHZGoKASubIbMlcueHB8IEyry7 jEt4knv3N2yzJm6DDpR+Tc/4b/buzS+dGa1VN6crFumZR4Qvbt59hWEaoZ9gGuEVtwEl4L+ np3Itn0zVpAZL5J9AdL8lIrCpGzrbxaKVGjknrv44M+Vi9VqEofULR/6UmkKdnKxm7RniKG +u7MWjgGVmiEbqDjk6mJg== UI-OutboundReport: notjunk:1;M01:P0:wBrpI2f80BQ=;QzK3wzjWsn3oMQLOo9GU9k23ADK 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 1/BPCUvbMSbyrwr9F0nq Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113868670154100 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 a9b29cbd528633b25adb6ed7ab2162a2d11b179f..ea170280580af6e3ebc586c3cb9= bf6e144b30c11 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3848,7 +3848,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 Mon Feb 9 18:22:58 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=1770113855; cv=none; d=zohomail.com; s=zohoarc; b=k3WmojpDd1K+zHlppocWoJp7uxFlVHXCqvTyEowv01T1HKuGWZHN7WrIS5OnzgZgqCng/0KclOwRfZAkmEFgN21/tNTKTCk0K13YW1xhiPoDrbIt3jrKTLcyHfdQc3zoHTsZpHtN8PyIJA8HXjxhijD60xk5DYO0SbDrCshqUlU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113855; 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=g0D4GD0whMF9S+29OO1evM+fgXXSpdPHCqCK+yS42Eg=; b=hK1YHFv59J+5XCinuM5iuI+qgDfrFndJ3HxO35Igs6E03jb0XsPtvZ9qtR6TZ7ncTKSMkpqHpYg8Ph4m3IoAeRy0SvBTLA4Lqet6tQo1El/E6LyPEYiqp2qxpSD8iGDAXpoSH40Lxu+/KlmK3uY6PDv0tZk6DFzNLfnWX2Y695k= 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 1770113855655555.8415535963926; Tue, 3 Feb 2026 02:17:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSF-0007Xe-PP; Tue, 03 Feb 2026 05:16:19 -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 1vnDS3-0007FI-BZ for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:10 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDS1-0002EC-6r for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:07 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M9IOj-1vt0jc3ViB-00EsWH; Tue, 03 Feb 2026 11:15:47 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113748; x=1770718548; i=lukasstraub2@web.de; bh=g0D4GD0whMF9S+29OO1evM+fgXXSpdPHCqCK+yS42Eg=; 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=Ek4p92pMTuruLIswcU5yy5aqZ0HN51jmH7wpsNsmxl+9L2tLI9ftd3pBqckoFt1E TOuo+Gdtq5mzh6deMWk9bjjMNQjNaDEy9TmAWW9Th/XkSLbbxEnrJ1bJo9V8iWpP2 ZAM7Afa0089qYUcfjL0/Fn1vbBd0zwmOmEyYOquqlAqzSw5oRyi1t8oD6m8Z04KFd FN3lc+VVjVX4m+YWBGxBItxEFCzIqsKIPkWoCTNJjjhE9S3neiNYyUsJxEAu8yWoT 0URlzG7XSUXN0ESrWfBWcAL71sHLzd1CtlBo5HSACZdA7VgryeW1ndu1dKksjR4ow YuLvWavna2w2HvisIw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:09 +0100 Subject: [PATCH v5 03/16] 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: <20260203-colo_unit_test_multifd-v5-3-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=2711; i=lukasstraub2@web.de; h=from:subject:message-id; bh=1mMhTslV7cg6iKWHsOFtaZSmCzWFWpfBUGInMbVbPoU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrPz+oJVfgNF+iPIzBYA7kUkouY8XQPm9/hP 7L3MF2FL7mJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WMYPD/4+JZIrIESYr/DgLTse4SrpAPmx7LHOcdR4mtsyy1E+py2FFDniWg5QULfv1TNGp9G49aK DyW3CvauY5xaS6HqDj7H7rgKT7q+aGd8rdv3VUUve8hRLSpir+IV5VJCkv+AI9OJ3sTat99SPxv 5wGKXOQ23xCfbL/096mlrFdG7MBZiU8kwLsHY45/+TXt0J3fyOmdNFA+k6nxpiWErObV9E37nJD RVT4tL2j3xGvbptETRwJdV0PfX9NlShihsHtIYr3EJGRYyfzKKzihUt2v0VBHror0wX4tz8iUVk Ytgu4jec/vueMDTDoaUYuLL87jKlMs62ZtLhThRzFKq7Enblge9qXUY996xaeHJFc7j3+jPjM4e 6BK2+4yFg78NJDvjax10FOwVM0MDhoVfEYoutWdxcqXplv0PZ20Z+lRX7AEFXyPjAL0j4adRj+M aLb+sGojGZHXe4lVjEnIBlMmWmlksVVJkFw6rMqDkAhSiE93Kjvy67XYTRYb7UgXVCiY8XZ3Fga u2ZfSvGeltmIMtMV5Hd44M2/wi1nc72+9WY8iUQfDGfSKQSKQVW8knP+AuAy/+G5+/PkEEf47zU uKtsBUR7LlVhFccuJBlzJANl0Ve++MS6w4uOVjobSlGrs8GpxD6T9B9Fc+7xsVePQmsHPGtIcdl WWOB5TIBM0JFyDw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:hwr9goDchxV9PwMFe6y6Q7YYxOTP5EImtGj+HomWbgkJJhQT3OR 6a9qKizP3xEhi+k6DsLCELhsHNTHjlurvJ+Fzl+WkPkZ20xGLQjD95mwlT9Olfs/HhXEG+Y 7Zw3z73Kul7U54qgRIgJI+SY8aYjq7Zy/SiW14LMS6b6+z5QlS5Skf3lrBT+mPZmMWyXMDw vWJAR3XzBVTWrAIJ8s5Wg== UI-OutboundReport: notjunk:1;M01:P0:g3pRwUpgKVg=;YH0wBcM48LdwPo7gsnTDTTAGwpr 3/QcTR1rXYh3fG6I2caAn7rER5CWoeWBmcQRncoFAL6zwSxrDEsOVBAA+mPvPkrCkOdCXRSxC Va3/5zA+2ssMbHTjFZ4RWc9WRG31Lmqr2+LF/YH8UEnpjkbN/dJVFNbAK6FtpSxyrb4pVR1sW dIqdw2QKntgU+N36BxnhHqPyjLnU/0rqmr3JqM7MNnH0XJwnWaWJgAu95yry3YI7y8+OEQgB0 kAUDdeaeGvOrUElw8G4jx6a3kl2nNeDoMLZQ5KTEEL1avInT0UWoSA6ptJVIeM78i39x9cJPl S/oJtiHVseg8hpouXmtf92m0ftgEjJL+/SmVYHaaA805hy7podeeeyBeyZqG8pFfn7ym1ui+C 1mBGSvlyfAJAMeDzPukxugW5OKVQjBN7yL6H3ZVg0CQjm6Tm192qwlnfwKTXZfH7wb9+EihbQ pIR+4125Am0b+afm+82EGdaL7usHqaSsPFslMrGdC5GDRfY8e9tfBh32n5uAH9FT+4UzI/g0+ kvtxx3LNDM+fkJ1g2xvFkZ7qFJEoLUXegodoUJEbg5wbuHjKJdtkIxf8u2wD72aTBBYIFdx9P ++YJnT0QL5sj7nObEPCgoPi2VQntvyik8l2kzuaamnKkH83npOcI3Sxk5Y34Qvk2wx31rajyt nEp07I8Dd1d0q4PY25PIbFX9vSc4DS6YAbMfx86C7spacBdvwi543klD7MYOnv5UX1qinUcAZ B2sukwTmCBwc5MJ1gynDEzuZG42RwguUptnbK83rgz8CrEAZC6bQ8xoGEWELKiWrNAB9RFsV7 nnrunZmaATfyQZ3F1U1Tex+y0QwgV9Kwn/Tkoc+xoH++QRssVAEt+pHjpWnwIi4jXigl1+Anp zVLqZeMvX9eW+ekpUsrBGjlmXvJDS/vZeLPgXVlPlLDSM6P1IDkl4ViZQzHJHRUQfcXTPVaWC c/R5LzK5LWJrKoYqFMLocr91o+5QpTUu4q+UVsgHkS7Rvd00gd2VNTh+iv1/3nCEnxqZjUomg 83/Vk34nS0icBgM2bhut3YJ9/pWqwBMu48GQgwZvBefKFZDj04dB7pW812lk0j2Yo4hGK//2p gsCfinevpczBwSLcz0Xafb88Uj13x/tvW4SauE3taYOKqr3NKUI0pLaPss6C1XYwgb1NgObkn YrbQNfBpPLtpZGM2mAo6j/Zxo/uW3o6PvCRbbi5QblGLpdo9BqkddUVbAJN1la1MMiIFYVI1m dRx6aHXcUDxaEVAWdIVeErXDooe76y4uHbur+iGJ4lThT7T33nniLbe2nOcTuWe53CQ4yYmKI qYqD+U78z0q6WK0StMm5Sgp9LHKly4o/qUm+avlerubTP17J65rEGKC0JvOL9eFDpneelSINf q13viYWNGVkTAiLPMXzO6tMBdIeEo8O09dyX9x/qmkG9BWMt0qj9XLU8+vytF2I8pPSZzqlhl lclEBI4QyO1fVf5oldMwUrQ3nioFawzSvRTcBwQm7I6/3qqJfl7ZDQ6vf+Ahe8mgUST5o9rRb GHttZ4QsiTN7ffojLNa9XIoYMn7aZAYt5EL9lQ7wyVuhQUu/CY6RnAlfwpR2raxFhTPdov1ks OS5ZGzLVTa28K1Ot4MWZoTl98Exx91Cop+sp3vWPbK5XclF26JTz7rrDXeBFDx9rTOM1MwQnZ T4ByRN0K5Ykf8bH2U2I/d6ud3MiRDo3CPGkVH42L+i5FvYJAGT8O9hz0qbgoSmKfwpVwgsFxO el8DfHocr1Cirgq2Go374zR8TyN3nNzi9LO2pUf7Ci5K5zpJ80/A1wSF2ZKkUDk9D8xlvIE7J sGzIb1EwnzTdWVVfMcyiY/CEFm5boigOelkznfUkr9guZIZPGnfTIrPniVxMOxeTp7uol7om3 enMjrgYjEbIAuJIkJYG5BOG5Fq3Q6XkMBAEAJlnl1epbwH+OhozI6qjQMw3o6cccDM+5cYS6J 94EyynDsoukJ2wGpFbBfs9E6SVptZvtKG0yMkx+1Wa6Qg/VWrIiV8P6ToFu/SdBL/oemhRjwE soFel6j1sFVxPhdcI5cdVUaHaiaGlaaAtci41BvV3OfBAXrvgv1Xfv2sqqQBNbYIWndtFc3jv YuBaFHIlfFgtIB3wkKfobPFzimmkveD7Ma91Y0JxSRtd4FAUrNVctbFPUazOJHiof5zTJJuFy 6HHc0C4cGMG1VwMSTb74C62txgbfD1IrUR8o4ckCUx7yKh/3cNdKz7AxLJYflfLLp4KTjC4lO BoF9FTZ9dQn0qMnOf5jlB2yVccW521KionGSe71jh4jbPioSv2aqpRNaM3KyDZDDzCZ2hyy1l jFy246eAWXEns3wsOTKwPQvEclqjtmahtimDMlkKYhQyeiL4QRGxZHBo/RvL2xN0Fz0fkrQCE DxjIgrwBB+VIgf9hcy2svhcD1KOUOqPizgrPh/j/og+JxnPTNYgvNpQNVatz9Hiq/Axu6YiI4 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113856722158500 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 Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- 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 Mon Feb 9 18:22:58 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=1770113846; cv=none; d=zohomail.com; s=zohoarc; b=izaqBAbLe6KZKBUpfjt1jIyChfZOG6zlOLpvptM54NrpVofZIjo00csR4pCqT8Xs2Juz25jitVA84rxqrZP+ijj9w9WaJhjntO6MGW9PAbeZXStrHOyZe0pi7AaB4ccsyfJxE3QS6a4E7q1gtyevi8VgYMoO2DIY4TZ2Pt7Tvwc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113846; 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=acIbGuWiYVbHQzrhTfvGmU5crz8RI/HnOnsie89+6bU=; b=dNTt0ZHT5pGscYtcgmE0s1kdvGDj/bEtZN0Yz0t+czh3d+VqqQd8eCcBB5WKBXVY6TB8aAax7lJ1VwLl+Si50G7g6vITXdKWFCzNs6J6Z0TDv6o+qFtl49hKHSgk8YjbkrmlUWEengdgtPzVkILNwNo40XoWXXp/csFkx0UeeCg= 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 177011384592517.595079629305246; Tue, 3 Feb 2026 02:17:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSB-0007Pl-73; Tue, 03 Feb 2026 05:16:15 -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 1vnDS3-0007FD-AU for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:09 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRx-00029M-Jq for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:05 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MiMEW-1vJwtm0l7e-00oUS8; Tue, 03 Feb 2026 11:15:48 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113748; x=1770718548; i=lukasstraub2@web.de; bh=acIbGuWiYVbHQzrhTfvGmU5crz8RI/HnOnsie89+6bU=; 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=OHNbE6twY+2E3ytDZD8STdl7U9T/DwaApPxdjynixYAVbk1tZtUaUS+1ikII1vzi WJAWXpatAGuGcCA+ln+vLm2ls5M5PMLA3lUoqmdZkMz3rvkc5lOLgESFRWxwLWqx0 75g1qHZ7K3d8wgSobg4YF4moLVbzeNsRbTlmdVcrBiBHmQw20UgHqkdbDY4VmwyxA 7P2w81MMwWB323HHatCiipzlPdfuZ2wE1uAIwWr3IwXHapMMoK2g4zvgHfzS5/Qlo /VqvOBYB5NjaNlhKg+Uugwn9Zf4UrDF3RlF+Th1LlGquIAFMO8rtrZ9HU556mFzRL LOEcVdt1BOcL+rq9GQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:10 +0100 Subject: [PATCH v5 04/16] 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: <20260203-colo_unit_test_multifd-v5-4-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=3490; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Xy8q5Le+j2M5D8fLVu4VkyakFnaluhNaPAzEkXoWOs4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrP46RkdTleO2a1zO4xHJ/qwVnGCE1/LmDsX f8IKjIZJYSJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WC6OEACWrSr71LPSr218ZVYVnzeA1sRxuo8rsP7VBa/9Gg8aho5+FM4jTTz6LmSqzWHx0TTNyQ/ kYMG8jEs4YGmalCYzTXV+48yZ5/4jyoc8D7adpJXl3QKAdHYl4D1UcZbCbF6pM4qoOZ6T+Uy/Zf 8pZ/3DmQr3TDroH+9oIBLybRzM7KC02Ie2lB6Q9X8WlohbalEg2FgF1DK6zfg8IWXxJxm6hYfZY yf65xg5SyV1N7pd+aIICKq7PbIBZT2PJEeJeLiKmGNYL3MIaTAILIJ2J+1Mn+oj/PQxgqHd1XWm xcxLjjOpuhrSgDd1i2XNomFmFv49+SJrF3zA3D08ImzHjXWgsEggGMnYM/qQOlzk/AYGpDLZvG1 siL9tPdvd6KYj6pNvi4Rf0yeTmM+421hLQAkSYw5T/taN3dx/zLdc/vtHA8LIsdXayZMuViiUri g5bKfXwVyzWhN33W6i2/rIBKrTBP9VWSLXaahcg2DbALEX3mjy8iwsbS6sVZpy5F3ywEqO8AbSc BpOXJt3slZ9E3LYrTZ02yGN3Gmt1q+AzNVPibpcNUzVEijUkccZnPGnkOs/oeHruOTS/J57v43x Sqqdxhkf3mf8XzfpLcvEU8S2mwbcR44L8s0anN6pCwGEBIAUi+rF/3/n1DzS6XAsEMx6MTNj+0n xDO28P2T9tE128Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:E/oS3le1aciaIhzZ6i5dpo9J69hepq5XE2bha5j7pP+sRThDoW2 612EOWpnMwe/SZ/5y95IFIUO3tOnIA0iqQuj8nwFk6HiFLaT2V2ONfKyPsFOguBaucSJ4e4 TC9B2rTcFJMhuvGdH2PbDCZb0INUNW6HX15GFYx+xEWcmmMDx5PIUJJ8SuplWTnCuh41j5v 1GLMd9oqvKW8ZQ5eJQKvg== UI-OutboundReport: notjunk:1;M01:P0:qCBQGnRq3H4=;CGjieGUZgKZlnKHbQLUOi8baT/P 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 /0sArB4nVPKxEdSS1c6cj1ED3ltUX Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113846594158500 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 Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- 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 Mon Feb 9 18:22:58 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=1770113835; cv=none; d=zohomail.com; s=zohoarc; b=eQI4h9YfUxEQrX7/TyCdCUub8lHMvQ73sPYPSyAujp3+2Xe4M9navz5RXqjvuoGwvJzc2Ixi1vPh4H9a0cTBTg7Ai4xVT5TwnF/jWydXU6XuuHDKaqJDDRtE60dl/XI8U6C5qFjBsz1Rk0f+NhvWCSMYh124F6gdzi2UreEUHeU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113835; 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=kZ1QAyWmbHqtIcuzY3Vcitb5n+LJ18I3XHzCp26iBnPkHkwB5rvgAxR7pSwonFFg7iDpkilor8K41YAswW3R0fniG0XdhuTrWrrJ6uqE+Aw/5Ej8INaW8Me7Rh4W53hE0l/Avs/GY4hartLXuYk93grR5N+3n9JKnpRLwnApkKI= 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 1770113835591283.93622104672556; Tue, 3 Feb 2026 02:17:15 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSG-0007Y8-4P; Tue, 03 Feb 2026 05:16:20 -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 1vnDS3-0007FH-BF for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:09 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDS0-0002De-2K for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Mmho4-1vOMl82DIc-00bJ9s; Tue, 03 Feb 2026 11:15:48 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113748; x=1770718548; 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=P67fbSvSoPHsba5E5BX4sQHJ0FVxtIvDD9vzpcHlMQk1so1RQ7gsduzaGM7o+fUd bw6B515/xHg+dmm7t8N1k8gB2duk0mvBdgTVQZD1F//4LjWmCy2kp4fX/6w+1ovWw mtz8RMDlpFcxVm5+xqF/gW6eJJQ7v6G52mmOFd1fGvwkMLcr0J+iSn+EnqyBo15xo 4JLpoVy+0HP+l38RW9HDVSiEtBEFPmIKTEOENa6MubQMilpRNW8AxVQQfLIlaWarp iKActVJv9IRWBKh+i9jCw0wMfcHVcxY+DVn3F6X4o/vQE5RhIGVVC25eO3up4gQwL G8rf1B8tTrqfu94TMA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:11 +0100 Subject: [PATCH v5 05/16] 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: <20260203-colo_unit_test_multifd-v5-5-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpgcrPwl2MjbCTGsdBCqEEd1eczq9dy2BwEzPp6 /unZYi6tyOJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WFyPD/4qwuH/ZcI9OCcUre5Ptw5L66Cp2K1ZTTa00qdqKlT0QhBHEVL64qKF/2QTWEE4SFbbXTe nflpBYEKUMbNzaEYx3F6mnLdJQMrUaMJsiCLZZ9sxXJuDKRGaln0aHPB2RzJEIcp5dXYMk1SZOy 79AzBF48Goz9Kjo2wIjgAEev8frDuYi7WBp+Bdy2G/IL4QqLq0zeZ3b5pv/envbJB1CumpPN/gh dlO9h4NVytJOwlUaPzFuKhlvhElj4gg2nnMpPVZwAqzhv8bAI0iyfLEBGD05bn+1lDQ/XoHP0nU +9Suf3EJsAE8Uvws/5ayXRmmol1fLjW20xzYmFcwQ6lRSUSOJREP83azF1WbXkcu9wBNztnUzXR j5oCszq6LbmAHsPfz5SDICytdnMQoiaes8K7n2ZXuNT3tzt02eg8TD5PbACuCyDQ8y4jlvXJABX A9KWT9YKws8YRSdvc7YWKW5g+fol0iWwqDLHOQMIxxfBsF00PNdKxgacUDrNRyQ7pSHs+sI3YSA IGmFG0VOc72nUglDDdj7PfOql18cp1PWVjxNbWKEWqrDpLrWLXMhsShu/JqnwsLoAEIMGIS17Pq AUPmfrBAZrWk+scy70uIzJyXeRx+e1QV2ibaKuzzUgDs4yjSf+2fWtqsiavuSe88EvQfEzudKUe kvy66jhQS2IBWXg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:iDKiNTdpQieCHHxuKzeDUdsHiZp/Y4+O8jD+Il4OJO0dcjc060g vsFlg7wOsUo9jGsw4g0+HBqD3Ng+OuSgy8X1ZyYdCgUNiIdAvAN5LKVxahiqv2QAM0eyQrd Ng24GixQPaWjLZETOf5w4KezPORpV+krIpI62ixHPw/MZ+O4QQ8BHdS30zUmd+tQkVXlvKs 6TX+46tNweiRVbSBcDuzg== UI-OutboundReport: notjunk:1;M01:P0:OAi6a9w2eGE=;6rL6H0WGY4MyGxkz5pW7mzqLFqb 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 MVk4WQw7WAjB/0tai2VrcOrsGHjT6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113838325154100 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 Mon Feb 9 18:22:58 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=1770113833; cv=none; d=zohomail.com; s=zohoarc; b=R4MA1ETROcdcGO4S9ulLSQAMcv7gMtVBuyPtRPr6KPlQljic9j4AOtM/0orAlbgsq5PQbGy2xaFSvOv8a0AJLy29htilTSUqhVedZeVAcWXyoHACGCnXoQTC39L4G4t4V6w4z6eyn9eBco1/vFRxojjx7fHXRkrX9bpOvhZWiOU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113833; 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=VrcI6PxuZ1L8eXHQm6VvRgueKLdx7DyhK8LwdtUh5f8=; b=TSrRMoxsIw9A4a+iEC/lEs0v8afomyCwOmZ+W2Xv9h1XVUB5i1m3QvNiDi/M7XhZ8m1HTWg0KwPUntNf5Hhp64Yksnb8iVmeZWYoFlxzheRGzvepcWMEljLlHA/6XOHQzI/H4bCiKL2f1TpvqTQQ8JoG6N6nwCjZbENT+z1A2gI= 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 1770113833265616.7653458719648; Tue, 3 Feb 2026 02:17:13 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSA-0007P4-Q6; Tue, 03 Feb 2026 05:16:14 -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 1vnDRy-00076T-FW for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:04 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRr-000286-KC for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:15:58 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M7elj-1vued73idJ-00GWPb; Tue, 03 Feb 2026 11:15:48 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113749; x=1770718549; i=lukasstraub2@web.de; bh=VrcI6PxuZ1L8eXHQm6VvRgueKLdx7DyhK8LwdtUh5f8=; 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=E254y2BJzb51nkUQl1boW5CKfIcb3xT7mQXrFSD2zYu//CSPCJ1QBFcddDZsTm9M f+qbUH9OGwOwfv6mYO00uS99tQZAHE6KMDpmqjtMCXjM9T0jWbLL6Nimqw0gIfuPq ICPHNkXCTLsnux9f8KhdEEvi5X/CFAE9o9tXRum01rwdu0IeiQ96SlEe4a32Wi4MG QSjKsjsiA7rfCNE+7HbSaJQjy6DEkUpiG4ZgvGTYSKao/fVUZSMrHELf8/lS3HJYD /gXHHzXxFajXqKNtSkLDjITF5nP+fbpqarSGApUD+navKxxZGT7QDtMMV7YFjuGkB wPPawVc/zGAljhVZsQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:12 +0100 Subject: [PATCH v5 06/16] 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: <20260203-colo_unit_test_multifd-v5-6-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=3335; i=lukasstraub2@web.de; h=from:subject:message-id; bh=nZTC8zs4apfQA4GAvORqUb4bbhPSlbWQnSJto/VqfvQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrPMZWE0HJA3A4x2E3F4Xe0uN3WdAFynjVUK 6tnzHVCKGKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WE1yEAC7UwZ/XPBTNnLte1sekt8R8AaYkWN0Y/2awjfSLgANSiQfQmoq3I4PhksW95yLMjei1xN VXFxox7fYyEH0TsF3wILXpMNG+Niteg8Bnhu6MAd6ag6le4sJ+REPuwkN6XMOQvor0RAHjpLKaz XOQL+Bc32N1FA6G2B4in3oSPGyFjNiNXVS6jNDtotxtxD9jMEPndAHKzqsL2cRSOSEIyR8JUi4J b8U1i2wHh5VIr/ag6wcZ1OH3kWRj3TceAlz0Kh2HSLl5K286Bk0EZgAftXrWQ8yiuBPRhbSFO47 QvKqW9ugbWN4TG54ufj7AljLPn8CsYvFndk02dn36NllHoN7o8qDDzFAWJwyiu3f+fs6Y7gdqw8 B1ds6RI6UsS+l5wWL/tWbCM1eZUUkrdWouvjcjBoeqAZzWeojiBoCztanVFPK1y9o4JLb+3P+1D BfF1lFsLwomB7hNw7ENRVsRL99eVRGGFBsD2dnYGYDc17qc7HqyfgR26EDmrGdwDo1u/kE73jXD PJO+LiHmpjk35jzUJbPQMnMq/UJ1f0A5eLkBx7L3SFAP4hCmN2wDv2DfSAgIcwjwd9EJdnH0Yt/ qBZQLy2RuClY7jR1qdpSLvg16sT0vQZKJzqdvIG48pbKfChdmEJXHjqxfl+clX4SRoiA4ZDe15+ UGC6685nm9SM6+g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:SNTjhRpFfC2jCkR/FnuK3znTOrYLjmx61ZifhHhjd3fQLrGaJQ/ wMDAmEQ7nRpHI6AWHrhf8OknHKezp3k0SKhvQO//fMHIFkjquMjbcN3DZePIP3XtRuWZTRT az0LtLEw5CViLv5UGkYWKr0nrlGQEPym09zNin86VdpSWlOjsq1EaKJPKgJEta0s8j79W8N wCMsxNz4z+ZSvbMa8br3A== UI-OutboundReport: notjunk:1;M01:P0:MuMdSBgnMm8=;TauPEZW7kpzmzRfSq/sVn/QeY+X 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113834592158500 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..a3af09616a7bd22194ffba3cfb7= cc4cf15fc88e0 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_UNUSED_0, /* Unused since 11.0 */ 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 Mon Feb 9 18:22:58 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=1770113828; cv=none; d=zohomail.com; s=zohoarc; b=ZCDtmGzM5Yz5ctAQ0lUDUWqlLr41/SQPMgspT38l+F8MLgbbMVEwkDlAtrTy4WWMABppLfOvQdwYFq1LxaVVTo4KyujkgMmE2oLlRgUpY1VCEUPDIpu/d+Y3UGaG0mpKa3DJnurODcY5lGAjGRtEc3hvhYETnVQEsDjw1megOKc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113828; 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=uuMv53cnY/NF58kfbB7HunUnASLW39jEamv0bqglux4=; b=mZ8g6hq7S1Y7qb/MWr95ZcUYSHkwC+0YEXyAPlUM4sqaJXBdVR+e/+Ec28Mk29qfFu9jpUCJ9yCbsZ+5leQ7ohJZJ2LVPFi8f5NEKMWuVd9ldwJiEoJ3dlIwjWvDv9uIEWnnFDoG+CJAJjT4NgTEkeNx4G3kkpBrSk3F2hZKDMo= 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 1770113828161716.6579920074072; Tue, 3 Feb 2026 02:17:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSE-0007We-Ud; Tue, 03 Feb 2026 05:16:19 -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 1vnDRy-00076U-Fq for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:04 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRr-000288-Kd for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:15:58 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M6YJ1-1vtYAW0tgH-00FPx1; Tue, 03 Feb 2026 11:15:49 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113749; x=1770718549; i=lukasstraub2@web.de; bh=uuMv53cnY/NF58kfbB7HunUnASLW39jEamv0bqglux4=; 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=YiobyogA1g5B5fSdqyRk9ezwP4QQZoPKvPYaScPHozQEz2WFgdJZTK558lyZTf8o S8QDKjlWwyD6PppDNh6JHUyN8D+tgJluJFk7blqxH3OyQFfkHOGX3EEgTvUuES0I7 L6K8us1TV3hlZ3BFNBeBgDRm+SzAjFINo4Zam1hEOE6S/OxNJTRIgLEZu6qMEBrli gEwJqQmVtEgyGsclNm65NN9pb309KQgKRWHfXlo4a9hKfWeNhFuP9er0VDynrQT+h 6s6E6x0z+9Y82wTWjHmWZaTOSB8GFmiRbsdwnF4946pSrt0f+hI7IwdyFzmtFUrbx F5EYDGTbb9nGTXJLjg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:13 +0100 Subject: [PATCH v5 07/16] ram: Remove colo special-casing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-colo_unit_test_multifd-v5-7-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=1014; i=lukasstraub2@web.de; h=from:subject:message-id; bh=NdyvakndV3dkeHSFzAflHfbOGlcPwAgindSd07Zzuv4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrPxFqQpFo60Uum067/hM3E1CvNoFRnT9kHn k/KEsipfX+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHKzwAKCRA1qwsonF2y WOKYEACwJka2AqR885CGD0duJ2ptb9D/7c+3ljQnxYtTuH4s6xCGLZUO+sfpwClgM4HHqlB6xfv stMbeU19h+paSFB3ELOi07IJ8eFLJHHOWtAEg27mPbc3sRh59LK+AbnJlYKCObGWAkDw1VwSkdx N0WSKciLm4O58qjxe8mFRAY387NC9Dt9+zAblBL/UbfTGmrdSb51e05aA6r1cjrsL7S3P5V1jmL lE5R3lokl9UaCn/O3Kj2RqHyHNso6d7NalGBiY8OhRtiMQKoP9vfnBq8FiDLE6CIpVf6/0fPAZ9 K/xmvP+sZZKYC+is73Zfqvn+x12r72xXQ5R08kxaqX70BmQ5V9DeLJyy/FhNTC+WPsYFjDd7pcW w1XqNDKXi0r7RULpojRoidHGmwkjv0jWKewP7WXzt+43GOSEDkKsefEDFmQeWG0qvrLuUfNH4lp hU15HQZybLIZXn6oYgT8wAxvoy0Z0ju+3pVpCv9+fIASx0QRpl8JUIhUTVXxpiL+9YX55/3sKeX d3wadW+TntwderewcbJpyyChC22ApBMgG8bABRDv/+r4KmW5hf7FWVUuEm/OUAVJEranuGSonVk 9klowz0J2zH8TbKLUPAyBG2c+F/5mB3lD0nwdEpf2jPTV/MEWXKTRUj5bKwtFd8teHT41paXrFJ rkXc3VIoOUsSuqg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:S8aXqzEzz0loVsXB4DwqtHhXw6leNbRL4URKHveU93Zoh9TBdks U+P0teCYbdrJRa26fvcSJINISl6HG6UmwUGfGolM2F38+eJ8PxPvPt03B1osE6gTuWXMmDb x6SODfUF7x1XQRfKXZzvE2B1DXtBZZyfr1AOSdNI/YpsTtEAyAsPjAHsdGsfv+rXLVMyBUU 4x2h+Rf3EgfF9sl2qBguQ== UI-OutboundReport: notjunk:1;M01:P0:KF7o729modw=;0wqk2h831MigMO2LGJ6HAxSlsIb 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 D8DD6iGuB4fMd6wrj2osEab8MloT2J7gNRWF5L Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113830203154100 We only enter colo state after the precopy migration is finished so this if is always taken. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- 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 Mon Feb 9 18:22:58 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=1770113885; cv=none; d=zohomail.com; s=zohoarc; b=fXnid4BB8GSJOAb8gdJa0P9rZf3NUzsEqpbArJYqw2GtmVm/LFVy6+wnvOXodU+C8BzjI72c9lvZXXf443S32gMp5iU+sfvps4M1X6GVbIyXfTJOfU0ghQnA7jhloZ/klyYLCh/w16R5YNMtRk84F0yejLxs4w1RY4+u7mZUJao= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113885; 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=ndOQQ9s2PKEp1jQj/yOe6+qAJmD9nVoLMRuYaFOShtT2YgMk3Eo3aVjoJhcK8tSGP1TKcMrES1vObCHHGC5HxClEvqdBIOc6a/ADvM5eUncvdjkCBsI/zzAnlccOMLu4q0sHx0QgW1wORXx8iYVpReU4w7fWfYCcoSChSr8wLnE= 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 17701138854451018.7713936129541; Tue, 3 Feb 2026 02:18:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSD-0007TM-3M; Tue, 03 Feb 2026 05:16:17 -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 1vnDS1-0007Ck-DS for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRt-00027r-JF for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:02 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MqZQY-1vR8B32JUm-00e4aM; Tue, 03 Feb 2026 11:15:49 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113749; x=1770718549; 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=LAxlmClVT/2UhcvcaBopH43oqxGvt54bq9uFk4D/lI06vtTbwWAOTCv2KY/FYGYd jxLsYp5jVoazL0BWWlsLyjP+iF+TTy4hO++CtfrnhONM4V0glmDBKxxxDHzmn6/o1 lvgA7Fbg1VFKwpVA2hiuVweRoP2ZfvZ1rV3MYCFU06bxQe6mcH+znV4ZAOgcbvT5d TFac5/uUoWr0sGe5vaDuYIkLdo+DejIxgQUJ/FckU1w5LTJVkIWzRrvdHejipwCKS OTzGrglu90as3uDW7Io5kqQvEvvrP0pf3g3lYrEoPohovu/m0vciytzLo1hqT/i7f rqWGjIB/lcmfpn7TJw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:14 +0100 Subject: [PATCH v5 08/16] 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: <20260203-colo_unit_test_multifd-v5-8-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQjxRVmzaN/2xqothvmLPJr82GsLFNWfXCD ZNaudEayOGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WKc+D/wN++gK8+AniXXA05PdmKHrJrCpbzUjtmK8pKXsFqeDGcyIhPFSk69D848ha+sCUmkf3xD MSSEXDYbsgQku1M9DCoSpbpm3o1RTxYdqMwSLBhAMtdbJkKceK/mLdv9+GV9r3SvJHUiZ2MaXwx jTEA8t7mZKVN6VjNuGr479v8OajYGM3DhgY5bLHch8JJHnNOK3FgJJUM/dkVKkWoklTnlJJeAO+ EZaKNCItgOS+7/yZCXQn3M+gtl23H4QroQJR/RulHz7AzT/1R9Ei5YmvxfmoJIENA6HDRsG5zXR PBfuFn3y4uonrtMUHJEyRkwGAC6vokU5qZoKFwmOX8VBYapjChtE9sin5PjpOBSOqsmlHS80XAA K6OO8WipKOHJ0m97xsj+A2IEQM3/ql05S+0zRMsYUPY0wd80b8pTCyNmfzeXbEy0r4myEADhH6O vcpVcHcT5j2x1Fl5/5jtisA7E9ZxEHm+w0fK8R+/gD/7ao4S8VHBr144DYZHSzqcaFq4FMnsdvu y/5+lOnredSgc/gnJrqSrPcNInFKwdGUC8SqaIGANBwwaqgr5ClDxHLw+/ohSqNPfswiE671EP2 VOptb6MZcexsLIt07DiL/46+G+RY/QOeM/2e0yIS2U9v8w5mfAn99uV6id5W+c+tMBFjhNK0byg s6P/i+yqkeZAcbw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:N4Qil2VXLqEtAcu7IdYCMKe297EhKX376xLxzR7clL6fEbpwKBt +aya+qobpkTT6CZU2F60Ae/HVmTIjuksOnBVHwQfmBv272dLL/nQ6NfvvcPqgtNn3caDsjt wmm6JaSelosoHINiIr8OCNl4NU83m2bNbMmBvqGKTgtE735hlaM2YqOJO1pezxHBhoD3RNH YHPtMZkOlq97qvxzNY1IQ== UI-OutboundReport: notjunk:1;M01:P0:mAM0MbSXxqg=;U5GyhxmS83NkchcQFNqXJZUy2Ks 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 PrntOePSAWzxYYO+Kkf0f2BBDKJUL Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113887058154100 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 Mon Feb 9 18:22:58 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=1770113790; cv=none; d=zohomail.com; s=zohoarc; b=MdDAL5WlkfdvPBNA46c+i38JKKn/F9Kez1TmQ5d/veCa4oa+8FFi+xvFBaBwWGFZkX25wkPVMazlxEAh3Q+ZMIup8Y6mslBGHxEgMOhFEqV2j8N3GWvvkFugm5SfzJKTkzQvS3qT/IkmAt/mQ3uCMf+bfLHzg0CaRaU0dolGheU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113790; 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=v3IuNbgTvgjl+w//S7ZOGWW5S1O23Lcw+wRZ3fjyBzw=; b=Xuu5Q5Uh9OtR/80KBtCGg9+z/TnddikUqHd4NL2Ldl9r8LNR9PY6ZJ5dO//kQcU/tNko7X6ikMfiH532vYOVset8CPGBiTglrjHGx0f1vMJURLq8WD9XhD6D2L4Y6LKKrEwbL4Nzp2dnYy5es4ZvktxlAGP4dH4rpW0c/7O8hUc= 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 1770113790283926.864035226689; Tue, 3 Feb 2026 02:16:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDS7-0007FE-S3; Tue, 03 Feb 2026 05:16:12 -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 1vnDRz-00078p-Vr for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:04 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRs-00027v-CS for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:00 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MbkWK-1vHiup3ye6-00mGSO; Tue, 03 Feb 2026 11:15:50 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113750; x=1770718550; i=lukasstraub2@web.de; bh=v3IuNbgTvgjl+w//S7ZOGWW5S1O23Lcw+wRZ3fjyBzw=; 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=fosPf1Eu42xQDkBVz8CenMyUzXIb+laakSpQu8icmSFX62HW2P9X8ICoX47H/Rfn TaX1JzJn+U9S+8oHe7kRuD6Qfwb29fBQzPw2m3eIgTt2oZ+05QCmDX5VAAP9zCX1a h6raafL8pb6UGfuOFD2K0vaC1GrrtCRPnfYf+QEJxWYLm5VqUO4I7GLSz7GK52emz gIjFTgeUkAcDYq0CBgXaTI5b4cwnYQu/6R33bkw+Q/+5a/v7e8ESS5Aetv1UD6adZ 0/sufuE7wo6dLki11aGrBWdxljx0BB2uLfC1C+XV3MAvMIurkxq5kXgCcBlGdnKKf IW0bO9p5WtiPcLf85A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:15 +0100 Subject: [PATCH v5 09/16] multifd: Add COLO support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-colo_unit_test_multifd-v5-9-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=7699; i=lukasstraub2@web.de; h=from:subject:message-id; bh=2jsBEUVOcJ7WHyyQuBj2SG8zKOO1g31niSL8UYzmwwU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQBvthg8pLiEMmJIh5xsyJUf2m0O4dEesqN dU5NhvGx22JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WLooEACJK/6Qm+E7m0kblxg41yYprjaGg5vUBPbaoWdLPidgTsTKNKLrkt5OK4/qbwm9uWQ5jkB DFO7W2fkrsZRGpmGtibBW1IeSQCquMzCH1S2zbVqR6mZ5UWC24vSfNGIvohM+w0DhBIUY+YMhsV i7trggqEBtV7Mg+IZk77p3J7h1tLFhB+LX31tM90eLyknOEpyVerF+lFWIRXWx4wOeL7gBnEKAv 7NzIVXze4kTwnltbDkxI/C1EfNwKDiAQLML0xUNqPe4NBOlgHARwOMHN3IZ1uhf/sMTLsvj2NTA ei3lpPfJINhjQbe+Th4Rqh+CGLKhDCHFcy/E9fTDAgBFvfDpLUutqxgD/XVnrcOpkbGnesy4VJI zmdoNBzPvWwOjSpQlpfYfamqAL6BU8QbYxxeD38kLdQag9gBUPDmzpdQ70eWEH1bCOvTeTRroQf RZSKX663/88zlAYz/vlGIrtQOcrBhep9YTfIZIVmxtNfijqIWBtsJOS6cJDpbft0IaLnzCNBd+Z aJlJCaBwYLBHpaai2N5hgKNBOnUNUSn7iEiugHp+1AnOYHjN/bvblUcTrvhjgFtqa17sMRNznqK ujg8qwvvECBrXNRpWmndFNaQXH2JKzjS7tUntSWSq53XHAGSZk33+raH9bA4NHTfGfvS1hudyX2 c6xlapXGWSwTkBg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:qkHsKdS/qp/9ItzpbSCRSmDUBbUPxsYswLHkvLLmzSHtEnMupiX YidwOJK7qK3gfJv8fyFlLvJHPc/ZR0dyfE7YM+aKdSNTSvIY2RrtDndCjutNdinRs9QbjtF HNdSm3xZkJecpX+r+ojbh5Spf7Mhogb2F7sZKRxn92H652FVJagUsILEBrdswEb0BEDumbk sRj64p9YELPWSprkBTiJQ== UI-OutboundReport: notjunk:1;M01:P0:PIr6yuz2j4E=;+YoIWxPtxVb6EE+mOxXTNuhBDIR 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113792815158500 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 Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu --- 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 ea170280580af6e3ebc586c3cb9bf6e144b30c11..70e8b9cae59a1768ad9966d1291= bd358a0712573 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3851,6 +3851,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 Mon Feb 9 18:22:58 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=1770113870; cv=none; d=zohomail.com; s=zohoarc; b=c740Vy3ufk5WtYkqRSEQ01QcFG/3BIKg0/S2LTH16penjM1jvu4QSkmkIudymgVpRWECOUQwT8rfvPB79xaeAhoHRme0sJTEatLFbfJplwJhv2o0ln50cOINsWAPn8OLXOQjQ476zIP6pt9sFhvaZQXn7gw8GlHjGO7hjX9DmOE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113870; 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=bHKDgq6h+b/M7EhW61MaX0Cm/kdRU0pIx1l0id9k6Us=; b=DsL7G8hbLq/Z24kSTatkNCyY0Ot1nN/SOWMzMJIyq3qu46QHvjeuBlKS2ApmYn83wv1ugjFNMUX45E+BlvUS7SUCDtGak8gltuYyqSgqPwX04QhsrTXNfbKWTl+w14l3kDf1FoZr6kVAJKkOUgvpMbtHa31rtgEPLqE4LLlfMIQ= 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 1770113870579429.5678848317459; Tue, 3 Feb 2026 02:17:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSD-0007UM-OW; Tue, 03 Feb 2026 05:16:18 -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 1vnDS1-0007Cm-Dp for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRu-00029l-5F for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:02 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MiMEW-1vJwtk1JLy-00oUS8; Tue, 03 Feb 2026 11:15:50 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113750; x=1770718550; i=lukasstraub2@web.de; bh=bHKDgq6h+b/M7EhW61MaX0Cm/kdRU0pIx1l0id9k6Us=; 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=d2Q5hUyApbiqH9w44lLdL5OSINHMgXksMF0aVa86Z2wjzDdMV5K4Rph4F7wMcxmK m5Vbai/Np1jCSEjYWvnif6TSXnobcjJTYI+g7LKkFkHdO2TIw0uFmaQqWtArGK5nj RfmWtelCX2PM1tHl4371RthcvnmVZi97PLWx9Os2z+qc0zezrZXAk3hZAR1W947Xz 2CifcVSz7Quu72O4h5TgNVBw2nrEiUZN1v0feVDEdvoWbrFf65gho8JuirPGl7HCK THrx49ZFDmYU1b8d27WS/qGQtGmxhdJzM3nKfcLkfc6kvXVeCWcevm8AeubK30ZfR 9B3YAD8e6KII9lsgmA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:16 +0100 Subject: [PATCH v5 10/16] 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: <20260203-colo_unit_test_multifd-v5-10-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=1302; i=lukasstraub2@web.de; h=from:subject:message-id; bh=F9IEy+4YXw0ic4hdA5SnWxv36ftHLR6BjkCOtPAGjYo=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQWj8+ufCeheqFCQH3VbQFgN55wJLfCzVFF +2UWP4eV/OJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WCt5D/9+2u8B2PUzBItFP5yGH1nZ5HnmxCBDRUyWi0xSskME2eZ19gPuXn/7KklPFxr5MB4erLD C+d5SBsoyCYEcFx9ghR/O4yZydcATjbR3qMTDliixtaeU1OKtG4ZGtWd8+/U3dUZK6UkZUd4+gH 7oqkxu4bSRUswNBVuZhrjC/LJk6qOxv19srN8Jf2UzSmiovINKmOGMXAvnvL5VaClnxHNCkPGI/ aVOfJJIN/JfH3G0OJHRYwqZ36PDP6PKTDvmyLPk4ZBK1grflQl41ar2vQEFyvXQFex3/QTUUB6t jqv41eIqF8ZQz85F2A529bC+eA47M0KpW29KEkSPVcLekaVkJe2qs5H1fRErhEj6mButqNJWEXP HGKOrfbcsbTrKtd52UJxkH+5gdwbsd3tSO+CkuUu1ZkRWll56mwhD9uaey4zFocDQnN8MTeSM+R 9exscmANGPPLX72wxzRewVzxk69hlr/Vm3eR3uzEK2ADryleldCKfLYgipGhhhZQ52EaVexDSm9 dGsB+scethVRLzwiRozy1AHTfsfP5ja2C55PBNfEhfanEOUCiPWG6QbdqyfJVV0eoUtJEQoCM+V s+mPL+tkDmWGAshF4nzjszGca97sxESY5CL4fqJP4CFuSU/5AyeZFQ0nK1vZkIarNdxv1TnrZ49 WkDH62OYiNqk3bQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:IYaa/LF1142Gv3NBbRGl+11CvHXARIup4qu4Ay/+ig102xjpJDl 0yd1F/IT+QxmASetrGp6maR22pjYqOas8JqDCePz5xr5oCc8udDb5Y3hZGsh81WxleCDRi/ eGoIcPKvNWTKWk1M2K5YLNhsxJy7Xtm5N3aqQzFGPWiWdkNM0W8nkl2juulzbuTGBhxi9a5 YDcZvOXeU1ayo/qWSGv+g== UI-OutboundReport: notjunk:1;M01:P0:nGZeBb1o1qk=;CXVBtDPe9YGxcMtnUYOiMnV7oYx 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 F0567AkI= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113872710158500 The multifd threads still may access the colo cache, so release it only after they terminate. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- 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 Mon Feb 9 18:22:58 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=1770113804; cv=none; d=zohomail.com; s=zohoarc; b=Giiz9rMP6vJAkllYVMUNmbGDutJ88yXdW5Em7G5vYKswp6FwBhJ37ALj9BP7tHIA9iY8sv6pwmk+jiwqUSeJa7WqMYpF94wTxJasdp9dhr29lQjos4n2uFneTPvKagswciaTwtWLDWbDptmEE0+tYIT4DSf4nIMqySUx3jpjeOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113804; 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=Rv9ycJrBK3pjna29S1uSuKq7s+8eVjFKMBWmCNv957IPmA8I+DlDXtFqausrIpc+GTCAWCGzk3Q0gqHMnyHp/I5+Y9dQ8y8tkaZ7dO66Pv+3B9F4G2XiX9H4yTuXedUhdKOJjUFfj5/u0d3TqfFE6atQPPr14/X0CbG0/BoSElA= 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 1770113804484559.2157254040184; Tue, 3 Feb 2026 02:16:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSE-0007WK-Rq; Tue, 03 Feb 2026 05:16:18 -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 1vnDS3-0007FF-Ae for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:09 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDS1-0002Dc-79 for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M1rTG-1vpPJ82iYi-00BHDK; Tue, 03 Feb 2026 11:15:50 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113750; x=1770718550; 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=HdbNGjqecAubCH2O71pgp+6t4h0D4ylrI93efD21HytkojAro5OF+5ayrfWbEUbk NR+phnRbaDvPBBfTLJjoQLOoyZGL/8eX8FpW4BAZQWJ+2P6Ge+ImyWHb+c2cV8OJB G92wfg2KYFWff0I03KmKxlYnEnyBzbSvrVNAcHEJG7XtrgVD1k6HcQuoPvXHz3wED 7IBHWA5zfilhzKQhPPYFKl3Abm/91aC7D8BTxXZ9OarHLjd2Bp6HAsQ67lo3HxOHa wjS1jnekk7KcnMZ7X8+N3GksxA/UUAkNQ4YrDvwpP1jIjGCK4uQ6ahJR05rMPeYwg dOgg2oKryKEpjyITlA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:17 +0100 Subject: [PATCH v5 11/16] 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: <20260203-colo_unit_test_multifd-v5-11-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQt/BUpxpY1+uixMIeLsAlrsN+MvgulgqjD o5IQFOxCvmJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WKsvEACq6Spv7PNlu5yMBcB7qBQ6BIuFyTi/njUU0omNRIIP2LkMb23Pg7xKlgpo5LKnT8Pp5An tilsmZXGUQZvCyySqWEcbrbFQcUpHV3A7DIw6rWZNlp74vKEtjOepbePGTNgz4kQM+qXlWoHpzS 1YHvDWTiDxXykofTKwoGMImEHyjRAmF9jK+HHvDxpk3MX2jDZ1y3O9vroZP9x9qP7RMd+5Qqx6Z oEA5U1Ax2n/bYyQxbGLoKNTD08dUVyjfke3GPPZ9X4nLFJ+qsS5MWzqBvCQSZ1D1tg7e37o0UtX Zsym3P7BVJ2Wy/VFZBjbUR7zs6E+M8djWCLL+ifmjs9qfbhdvtNQnlgM6+1qoBAZvx97O94ks9F paySXyWMtg0TLHwbL6DbNj87MqAtCm2GU/z5ICfzdHMZ9t6CeNCICYPYmYLxGjnBV6CgtmHcc74 UPQ2Iuh4907V1DgIxiwJ+6kOxgvhWsPuOir7bPRmNKXoK8DpCPgoBf7JatOETG6GeuccLVqLCsB d8XcCx15hhhGbIPyTB8kZbgn1oHDRQLigKjEj4uteZPJcfzIoIa7qJJlfqbcOIf/WikMlijo7Dj fiKwkBnE/LcynylRdPTqwTJSAId7n7ckVUzh0qfsrT4LlIEq1OhoN+cMTZvpxP9hHtQ2CRgT/VU Kziym7uf6+tcTNQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:lRdlDrrQ9ed1S2LlroKHNKiLr2E634RoPFAvbVujLFCQ6DT1400 VnKalv5INDg9b2hS8Qd1OUs2dyFerW4od3bru+WibPab/BVqXKLKjb6e+bvykPNo5Yp3N4n E+NKwDoE1Y7BowRNEo0eCfN5AVNbFpfQXZQbRtaVk9850f29FX5Wbyr268DnMjEVh0+YiaZ GLyjOyoaKfS/nmTyAUXkg== UI-OutboundReport: notjunk:1;M01:P0:+35vGQ+YOQ0=;Tbv4jZcVul39h/JVJIvG/AWahrl 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113808611154100 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 Mon Feb 9 18:22:58 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=1770113844; cv=none; d=zohomail.com; s=zohoarc; b=ANElML7/UiENc1xYvpBshp/LTp82mBhRrfC68Q/GELMKXSmWp3oKEfPMru2bsguuocLrZk6pyJxVD5iuhVBo2vLoXLTlowQN7Fe7aLMgiwEpUaiP2fH5X7KlWXOFmSDt61J/w+5Yvk2d9LcdlS/PS3hLA5fU77l5AkPngKLY2ZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113844; 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=RH+Y2MgwD+ufRGhuuBMYu3Rw0v9kmr8I7sL/bsv0nR4=; b=bbjpaB4GGAwcy4vuIZUHS0g0hIlIWiqps/xTyPXQG7d7JnFbH5KSNAiWkjS+OiekyHyso0G7sfKe0w2GutVeKifbEW0F4R2L9k3qF7nzex9r6s0GpG+dIebKDmDxtjqzk90v0p/Xr2etv6HqFLagsnLXLW6CdJXVUWeuUIYwCWE= 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 1770113844240111.8412529877113; Tue, 3 Feb 2026 02:17:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSB-0007QX-JD; Tue, 03 Feb 2026 05:16:15 -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 1vnDS2-0007Co-2U for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRt-00028C-Ih for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:04 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MActe-1vyF0p02H2-002Vlu; Tue, 03 Feb 2026 11:15:51 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113751; x=1770718551; i=lukasstraub2@web.de; bh=RH+Y2MgwD+ufRGhuuBMYu3Rw0v9kmr8I7sL/bsv0nR4=; 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=IRsS4eszZvbkpE/GmQncwidiMBu2SMKZ7OH803sGV+Rmxfzj8sV5FcWAUPDCwrDp ZIKAuThkUOBvM93wOPX08fTiWgeWpyC8qDevGEkIn8uHoeXb2ciXtUNnovu7hvf58 nqnnJ0wF8mU1LlvMz/KwwCuR695jUyWTmiikHJTfiVjexMs5RUCJGW52QeWAtLU2Z QS4PAm+e446IIjbXq25QX50ZhE4yXOFtm/QBtPg1u0WvRs0LNOKTY+vHqLPtzR2Km nJ7iM1HKYitxcc60tOis8PL1x01Y66vzw0d0yhJk3z1M2RWighgAmEmWhni4UrmMn xtOcUmhZ8MnRs+/gDQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:18 +0100 Subject: [PATCH v5 12/16] 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: <20260203-colo_unit_test_multifd-v5-12-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=10800; i=lukasstraub2@web.de; h=from:subject:message-id; bh=jj8yZP4mf8lsa3pBgK0Zqr2kVZh642wRONhIwtQcjrQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQoD9ahy4YTa3tbzO3TMFh7Z+t8DHtEeRGc L97IXb+fL6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WLygEACmIjfBL4Mo+FEyV4X1zYNq38bAAhJuPVjenVPtI9Hh6GY6rBk64WbwnxTvCdFYBFaiQ3r wMY9ONZc/4SkibgKuJ3z1LIFrGmoJYJQH0kPlNJb4H+nCg/NfgQ1KN+Ok3phzXlupKFSCEw8ujS qjqErZECkhvF9oGcGFow2thqh3tCrkb6KCm82O2BAdQSojFyWKxgry0HZum//vjlxrV0Iwhpa6B 4YPAH760B1t0JaBNGWBbNtZwRlxnfbUW5YPqC8KfvzroqK1M1I1P6Yee3Y0CQdqnsRP5lxJG9TN eABqEs9/0KC01QCAGlZ19OiddghPaAk/bi9AdEoze+kYeLf9xGTCfDSfCNl7BD6p6Vw9MY24fQX x7Gw2MwHfb/7d0N52SPMILkZFuOGK1ShOxzJ7lVnQ37BppBwg4XfOD+Tss7sLQd1VZ7gk5HOpTU essGCvnb1rDQJX2QN6o2WQGFAKF5rnYELywryZDTkT2VeLxTiShtBTTVEN2XPPzq5l5HFHNSGnx rH5GTKCupabK9dtMXp4KHn54gRJ/O0jR2UDM1lLsiGlKmNy5Ge+3mP51ZpWatuacNbA0LNR20R7 p1HlyzazDu/i2sOzYW/yOzNqrgFdFjcrNPVZakAhsNcNRZqsW0V1wtuME4wsPYgiuNetewfr/bf ezAvFWapyPaAPrg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:ca6WZauAEjxWdu3WGum+JeQ4M/IzXrmINRdvAgyrH6Qc32I9raN d8TcVkUxZhp8RwO5pKAFj/e5m5XM5cTQJLB7BhO4s4dscgJQccLXODwmnMCCkdkjIVUMNtp eAB+L5MhY+viG4tUqEx3VsArTdmAUyeMj1mtx+QqFWt6AoMbzRg9fSqAJRH3GYPWYhwy9/n lwfW4ZE2Gnp0IeGzhuzxQ== UI-OutboundReport: notjunk:1;M01:P0:QkcDQHEiR4Q=;OgspJlvTLDXUd272SM6f6YGXNen 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 NuLAYzx8+AMiqlImZP4B Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113844795158500 Add a COLO migration test for COLO migration and failover. Reviewed-by: Fabiano Rosas Tested-by: Fabiano Rosas Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + tests/qtest/meson.build | 7 +- tests/qtest/migration-test.c | 1 + tests/qtest/migration/colo-tests.c | 206 +++++++++++++++++++++++++++++++++= ++++ tests/qtest/migration/framework.h | 5 + 5 files changed, 219 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 70e8b9cae59a1768ad9966d1291bd358a0712573..8e63e0a08fc7417036986f27c2d= 910eb99d8a96a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3854,6 +3854,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..e64b7aadabf24ff87046988eb75= dd34a7d3e34d8 --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,206 @@ +/* + * 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) +{ + /* + * COLO crashes with TCG accelerator. + */ + if (!env->has_kvm) { + g_test_skip("COLO requires KVM accelerator"); + return; + } + + 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 Mon Feb 9 18:22:58 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=1770113870; cv=none; d=zohomail.com; s=zohoarc; b=b1SUF0ovySDI3muH5pbl+sPjGxw9eYNpNsUR2xZYZtv5SReCQbdG/ng2J1gFDj22fiDkTzpoJ41WZ2nC88TtJTOFICph+0QnQjZOsjJf37PhbMawstPl+RO0viKjzKohtbXEx0dZiHGqJ/4CG2f0trEVUQWHsQGIGv+/dYu4Ifc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113870; 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=70/HEn0hqqgDOLbPVd7d8xWKBuzi8e/yoPt7GJKLNoU=; b=Fp5QKZNPOR54FhZqavYTNeNonbqwWiwOeikmHgehowEFPhdOVCL32ZeorIDrI9mZ3tQJN94yLg5CHWJeOh4o6iT8Rb7D8azVlQqSfR7QtLPV6Vv8h8Zf/8cjalWAnmEIj3gmO6E6ttYNERVH8IYbdy1bIc16uTFOeHaQwxWvIds= 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 1770113870231413.73090307149175; Tue, 3 Feb 2026 02:17:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSB-0007Q1-Fa; Tue, 03 Feb 2026 05:16:15 -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 1vnDS6-0007Hr-SK for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:11 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDS1-0002EX-R0 for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:10 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MECCd-1vwsd81VqP-0019GF; Tue, 03 Feb 2026 11:15:51 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113751; x=1770718551; i=lukasstraub2@web.de; bh=70/HEn0hqqgDOLbPVd7d8xWKBuzi8e/yoPt7GJKLNoU=; 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=lXu097w9QGXsOj4lr8FR5JFEyOH7x91/3GxnKqMLJCc32PLqfefmQYK+KIwb/dSM b9kp+lk0ybw8pfKvAF8QkW3THzvRHPJT1ry0QgrDugr1Eid0XtsTWRx2a7zb4fMfl Rgi++V6ms4KvWarBG5MEOAA1cBNSIASNCb8G3YDMlnwH2cLgwUI1AvbG7E28pWada qMoUIQd66QurSBuN9mJlzp3WT14lMNpG6B4zvC9UduA8NrTZBuGz13ErkEekGeFoS WP6GYchuYK2t7tAWT1fYhc6Y3sigrNvtrfNzRYxc1OXE0eJw+ZBtB1PAwHe8Ghjb3 h6PWjq1kUK/eziRVkg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:19 +0100 Subject: [PATCH v5 13/16] Convert colo main documentation to restructuredText MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-colo_unit_test_multifd-v5-13-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=41484; i=lukasstraub2@web.de; h=from:subject:message-id; bh=mhgknraoC5pcQ3eDg4ICF/TIe6mb5aI8qd2+1t1Mbps=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQuBbLrbTvZAyfS+jEzKvWo71EcdakxALDG Sp/kUHsb0aJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WO9UD/9HvyEWMmS/pQpmmpOJOfEQU18qA8I5xVmQaP/GEj8pNsOdoSgPy2KOk6hqmTvo/4FXlik zkomZBgo2aovD5VeOoDOb4mt6fAfaX4OAe4C4x17cpxI4sK0X4ZwpGLeFq0HMvNy/Bpemwn8zyx z34hH6nymy7QDd4JJ7uEs131HkrwEiuGV2lGvp1yFSAU3kVH71nWZMRk8gd3qH3H8c2/G1NxDa5 wPj1vk0zVafx0vdcJe+L8gR9WLmy2MvwcL5Q1rYceTmRi2+U+7ZFDU9TXKge1/W5mv0+5+7QHEi TM7yg4Vj+HHKAjvkOkN00FNBJXCQB2Lq1Q04tyImUDmabnrujMAhnxmt0uUnosKW1NljEQ4qMt1 vfDjV85JgidQ5SZeExLGlDsCI4UY/Vv1szY9hKraadnwC2t8NcdkOgQ/XM4AfNPjy+oeMf0a9sF NzUPbUQXNBpIT42kUPGBzDON3r/wpvxR6Hhm0Yg9N4+ee3UwNT0IQuMPv98MlZFPQUcBlfnTOil 5YmAfiLrFC/mx0kh9BwROl+ZQEkMxCFBB5/mVaopK8Za0rkmTAWnavFrqdapiIx/NVRqy/qCAEw zbWkDnoUuf9ezIFdKjXSGaD7A5AgZDlM6mq9Tgue046oT1pvCqXxFAe0BpIfaD4C7FUdhEn7Lbf I7eY5YfaK2EoYAQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Z6WJkQSgKg843h2F6zoXFhnZAdg1YCGUapTtz6Ui2Y0vDXowqjn d8euf1lUOVirmJ3kczPE53t0sUTiCsdM1sIFwlBPN23fMB0d+Ltr6OamSTdq3mqxGAEuZmS EKjBVnAlqIaenq3xx3YjlpJ9KLUkSoXZ3Np1GaX+E0re77fU/e+osp6s/rTDEa7W+9sSZrf 0zSvC+/zCZ2ERoLNJdf5g== UI-OutboundReport: notjunk:1;M01:P0:PfTT5us9vl0=;RgP8d3WlQSUN2uDfGgaCPG2Kw0u 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; 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: 1770113870805158500 Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub Reviewed-by: Zhang Chen --- 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 8e63e0a08fc7417036986f27c2d910eb99d8a96a..f645590b8b940919bdc84ad585e= e493f5452fc20 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3855,7 +3855,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 Mon Feb 9 18:22:58 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=1770113863; cv=none; d=zohomail.com; s=zohoarc; b=mJWfqBMHtwCFHiKJeTOtiBfwWDFGWD8CeXy/FgTZmDPHS+0evuvg+nYymxDBw6vgICKHsSkP7Tht85eYSQBTQvWPrgFAPRlsZIQeY8PMizWZxBbQeQXFx4qDR347AHk7vC7XZ/CZB5NTRq994eJvNiu2O3W3/3wPs+bOP7uhvjo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113863; 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=vPdA5YHqp48z3cME0KludllELa88DoVjFkKeaLE2BzM=; b=fkONBjnb9s9H/HDCjV834Esr1BB5qTbGyivG6vTotfyIqAUl7FVUsxy8Hf7qoTv3WOkQXy7ssZX5kaVZfaTGfbu7x2NzXV2l/Up5GjQRW2yQrRwqv4pwv7tcWpbL1iNHM4VIJbx3YzCyIZ14uaQbfBq3sq0qW/XgGjlJS1/gQAE= 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 1770113863217538.0929985046639; Tue, 3 Feb 2026 02:17:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSB-0007PH-0U; Tue, 03 Feb 2026 05:16:15 -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 1vnDS1-0007Cl-Dm for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDRw-00028E-Vf for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:04 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MbkWK-1vHiun32di-00mGSO; Tue, 03 Feb 2026 11:15:51 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113751; x=1770718551; i=lukasstraub2@web.de; bh=vPdA5YHqp48z3cME0KludllELa88DoVjFkKeaLE2BzM=; 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=AulfmudjjfVuTmqBRLrEXya0kCrvpOw+go+sPzH5LJS0ohq770pkoQIeVbnrSm2P UzJ9hZ9nqpnrio0kx0lBDfwZvQhtVkzWH3VrggbUaERRuGpmv2z/6pcoz7pjEG1TD akolf6n24owdWz5bXkuC/QQvMo9gOsGhYhl8druqPZtNmrx4MNdm6up4ZF/56qMUl anY6uxy8G/XmzZMDN3HrepzVV6GRESLG45HCQtjJcMwURW4kQx9xQxjen7b7LSH3A yOOwHkf12b+ax5x0xEAedw1sdNbw1lJXLvuOf4zOivATRFVzdtVtLo+l3ySQHBgBA xGdRgnqX27NdpGarUg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:20 +0100 Subject: [PATCH v5 14/16] qemu-colo.rst: Miscellaneous changes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-colo_unit_test_multifd-v5-14-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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=3193; i=lukasstraub2@web.de; h=from:subject:message-id; bh=kNrl7OSQUzh9feTkXpfcqS5ojF5ddlhd3s3KlJtm79Q=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQXxbcSgwaE/Vkkg0urCvLQPYI0AO6kxMlr 08q6XwGogOJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WJduD/9Teisyj28H9C+nhYUuQtOG+VO0reT2msHrMlDANmdPu9FidMS7KLHdPKsrqLG9a/R8Smy 0u6KfZd4aDOrEHPvDZBZEAvBNhQbQFzg7FVxpm4QQnVU9MilHf2RMNtqZnAUxr9Xr4Abf6WKw4w 105gQjzBSoEmKQhU8+jkIqROwF8A6poXOGHXK8va6U70N7fH398EIN7SWKjfznuGKvlF3kbtCPT PLfMiD3EUP+Nt2RpfVlzMmzemR9byHYYhHO0UcByrmj5S5HH2c1iynbaqASWASWvth5ttkkcW+N dLmOgxKjZ1/tKYiI6xtEMdWKX+9ecwTYbT8kFUFaMFctVPb90mZFg+jQ4uc9cWCIB704cgZPVfu 9bMP66JRNyabDdAjzocXzdiq8+QF7GiSAPykChs7zcMsOmUv+vsZeI8Apvw/CM7H/+pKtKgRC1I adO3lyhi4BMOm9RRawfNINd+XhOUhP9CtaKMIyAExbhlvXGIUajjtE2U1eRX+rm0D0owTieqJUh aIeDIlgpJHZsfHRblGp4ggVuuBO/ZE1Bu7OMPjZsdJeManfBJaKeRCx1c5xr4TBetjziyMa/6dP /hLXoo81SjJZp4H4+dB0RPB1YPxyed/aRk3kEQSVtsr68SH/rZpRu7Le6P0bmcf2daX0FVc/sOm 4c7tfiZ5M60AgyA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:coREtnMd2tdlbmRF/JLNolt9er/Akbsl2mayRrouV8JIgGB2cwO 6dU8I8Z96Q8f3k0Q9P8af2lBF+URW++dMOrbccwZ2OjcKdYB9XIZfLUJlxG/4q+MxviJXja pz64xVeNcOTfpqFNzZpsRuEq8Qx0m4XhYOdUL2ZbSYiLvtoWYXGra+P1U9o7YN6ygcV5Jhs 3tgoIXzZildxDYoJ7sRxg== UI-OutboundReport: notjunk:1;M01:P0:laOcnJrOpQw=;tg/DjvUnt14xuyidLCJuXglQM6R Y2nKnRZv+qBb713nyiYQ5R4gpdwXYuPQvd+Gq70bGe2Wg9yE/iGV2MdwBP6loNJ7HjfUyjDg+ r7LGQN82iVwwautZ1sxb2Uo62e9aqqvRH4Jzp8jJaDPrTUoiYdfJg6i17bK6GENy7Pf51eQdI mFspkF4y3zNH/SsY0Ganj+5/Hph68YDGY8SK5g0dU44D2PwWzucj5xgE7p66SdKg2V8bVTHsj UUHPFl+5ELggUYgQ15A3GHPQ8bQz+RdhwFrbTib5MT5EJXmT/Ttwo2AB+zAKiFjGUtNwx/nTx rd020HxFxcUq0/DN+VGbVxjyRYOvEv32Ps1we/Y8UcT6SdjCOG2E/2lzGmswFvOhQFVCHTa2D +icyKPqEkG9jiR6rbyVgI/R5BtxC0NWVJoGW50sR7Gk8SmLk+cIZoEAvbn2MJBwaFia27L/j8 yTmQ9k8BMdGKo7Nt+2NjFKe+7eYrwikVJidbQCzaqKshcZdM//O0jtJVN2tUBe2LCTrSce3nt m/u8CFDZ87ytkvZVvTABVscvt4n+a/Vbf1pl5lR42WwHUu8QvP7xMdVUfTnNLi4fQ1TbIbTnD gJ8KUY9CPq2gurCi1wT38IEgiCjqLsWrDd73f9ZdlSIRB63zvPWExycwZykpapoRTjjWrKoJt d91jDmnagKaI4tdjgNWvDGqCu6dbJYCHP39MGjJ1EhMzORA6/K3PpFLIXl8lTYTPbyOkkFAYf 8FqQThaHnkavgjPBesGvafdOvKJu5hBF3a7uu/F1eFoyBNgD7Sxs6PwTPSf3Sdaf0O8M2HKS5 DMmm9g5kr9b7xJLb9WRLkEESaKvs4716DLqNbfok/BqXu1J4zitpl7zfIRoi7MUSzKOuc6oWt sk63mAJqh6InxzDtWEKnpyPgWupjhKHiMMCR5GWBO8AQ8yR5NLCh7Ql4x7yV+x/q/7yz19ghv UvNgEKvpuLsNeXoUR1Kz4gKlSf+Rsv8QpQGtIW0DxwDj+lQ6L1rq/kiewRgBzcjknLWHnCSKn uM69V+d3r9qMM/suOFkWMNNWI2mN7/8vrs5qNLcnARVcuilB4rsu3EPjJik+47XK8hiY3WWCt mjGcDtNgcnT6v1Yrtzv+xRcTM2DS1zMOOH1xvBlWj/m12LeS84Z4wiuN/yBQ/U0d3XohS/8Mn SP2XNjqe5sxPQl8uIDpyLziV3A4eAkR9GoDUus2IyKKf6kGyevHmvmK5J8Sb77h6/4STa4o6t kaYy3YhfzOW6GNN9CK3fYsXg0Y05/xj1n49mPz0zMviSaeRPCUkrZdiIpkuLOe+Hh9/uXNMrO MHvmugdejz1fPsvvzzSCqQUUXI7j5S4Tb8iYPhpiHIZ+Zvrr6dizVkxW1PegeofkJZfqRUw3J T3l+QfWs7/Ia+THr+PiYO8zvCabX6xRMuHbbDLHyvN2E5QS9AsL5qUAHRiI46/ppPWcpI2Ol4 g7tlm3FpNIkpqBFl5aeHU27cdrdHhgJfW/GdajFN/9cL5+XO39df2pLHZFZKSk9JMlOZcvKzl XQvIvlbo+KZkuEiE6zwDm3RQOEHaZNN5MCKtVgmtGspavnBet1Ma9BSG7E3bnl8Aq0/6zWXYI tALGIVVYIf7DYWUZfD9zBG+B/pXlxwNawlN/YF/M+3INlkunOadIAAt8ON1eSM67+H3WvD1O+ atXfj6m6VABPEs2edySqeiNySMI7k840Y284CXeP3ZM/un5fvDHDRybtedDw8eWE39PXTx1Dv kUW/OGj3AeOxRY9bPV6p5eyLV5zOpeU4Srpxbskr4oy4GixTgAvoWmHqb/RGW/MrO2VxT34sc oeeaqrap8cHkr75xp4Atp3t7iVgy6kF8CwNiR0nP7WprnH924TuGs/Y1KHoLFXFttxD0s8Hmj 5ZDvXxa02Mapf1E2xQ68g8kW1Z2l63+5xGwaa/7rReGaSc3AvrxH8DPG/9RHFekQkgA6kOl5W uCjTOsA7Gr78Aob5K9Hg9lI6OIaPwzEMyyKJfGzwBZ+4F/wBsK0wq54mb/P2Uq22bYZsd+XqJ vckn5/ApX1NHbbJHFVd46fldZnLbWliSrfvV+btzQXeSf04mF3Mux/39W7EBhk9TVTMWrRw8t bLcdVZw8A7XpHo1QLqTyWm6gwcM4Muc0pG3QsAAHgCiIjKbvJPD0r7zV1EskTzeSvWH6wRH6c iqkR1yRBvAdV1g0rBPbScO7tVqlwgYU1km6KBgWORZAkbBwt/hj1RZdr1WiHJTytPZmpDmYxJ L3xKwn6hJ5oBlQq0aal0k3AIROToIIUvRypMV0GHhLpRiifh8tIE4EiDtrxYH7R9VWh8ludTR +Qsn8v6+bVWTyXSnI0Z+u5TVLBBqa5Vol1AMguZizIDN4FWxmb3NIq46+SlDF05RF9wMkm4ow TA/q+KmGn93f0PxfYSaqtFvHyFMiXoK/nEWPNdtYw+RiCjbgePABo2d4Y+rmzdfgP15vuW+dZ NJJLl7zyog7DKz4m0B8VRJedGuJwGQ1tX0vW5JTaERa9NM9J54SGQORlWr/KnwF2XOdbgAmef CvRBhtOm6SVwE3l9kMPOrKwPmipP1Y1ALxE3dItQ5IHeIa4nI0IcJ9Rz9YO4InssY1aZ1H1ID SBruudaf28aho7h7ZrmYK9aj2BoNzipPjOI8t+3tpvl3zv48iNaFDDBqf8H2O6z2ySNO14tTg ZLCwoiDwwtkEMVoUkY7eq/fl9nPFD32LhdHng87NHDJfFFnJAq6ipCfPCvMLN7Sys/QvkI83I 66b/+7d7QGhnK7RN+gkMUYIxU0mmgJNkFGE5JjcAdYx2VaWWG+iYdgwe9gTuKL+BWnnZvX61U VGgn9g4g8809r7r+W5AxH8bGjAipSRYZ2+HFRMHHU1L7Sqe7CaSlneQv9hAx2rc+FwmYsEJyD loOdiAh49PgrrLP1wWx0YxXr2RmynqJmGClpmd4V5k6g73qmnih7DNaMaGUbsBW6D8oCknu0L qnMNvT94FlM6zhajb0XJ4rP0TixwGJHfT+xES9Kp5290xvcLuCFccup2uZZCriTevOHev7QSb +D1SqI/ci6fc66m9z8DCV0uwNqzlrqVy+LtthR6qAM9OyuTxHpskcO4+XzIkqKQy+wwV4cC+m VXZMwptn0lHXfPWlZSsDtO1ZngziS/dA9ZAxH0veLEWYSAt8/UEj2zLPZwnfPVq1H4JVBRyHw tTxs+27RtUL0ZvAefjUNT0B1nQsyS3Fu+cYAnySCtAkTvyuTMflBlQP6hdpvIV/qvoV1NB1SV dtk+hwq5Sj6Qq/f+d0hL+x7EMhQc/GM41P2XmlHOXgvSMNHZoK7yw7EZcjmml07lLtBSih1gy 6pk9dJ5RMFplpZWY/mSZ8iRDN1+hphsQ6zmQYhx0RomPTD54gz8rJkEGh+XrzzJFFPxm1Fr/U 405dPHcvGvjyA/1E6eTD+C2cpkFXMhNTVuKQnk7Td6jVz/oDKDn4DgVuIR5vPV8eBgbEjYEXc 44l1RbBJuFS0llFBqpvbz7JpLWRMqHocQSaKCs5jSTO3juQ1OSvlsEzyisA0A9fnu/y/H4rHN i/o2VTjImr7sN4MFTgcRjiZcqs1FGkknM5K5tuCQjXYF/4I0XFvBKRJdNiYeV1KG8XH3e9tQu SdND4CGtk9U6PJBtL5y9nfYzo//xfC4aghRD3vAxalNqi9PPn84/DbHl70/TzC7iI6bexoy2O RaHkSAU4k4SbprcDWtPERGLFimIKVkClA/tiLX/MDAhNcY2QBIZRgrsMabFdemok4jf7vz/Ax C14Xw322uazhl5SvBwySHtQHeEaAq1kLkX9vYY3o6u/M3RFOlZgJHtLc+ynvKZPMGz+IgSY4v Iq0YoQ8zpVmF4gxuIB5WBwF52O+/0nn4ahG7eCA7q3RTq984TzqNL6gxOLflKvV54DqEQHx32 xQd20AeQo3hkbtT71UpxQhb9f5QkChWh/485pgk8RnNM/3/yu2pucXaPACTqZylDykwA3Q7UL rwY4JKnqbL7cznwg37KfIZpHz6uc0ASP8rtQwoZ6dEF68s//d3367Y8uv9a8qPSAZoPwt4NMh 8Dj1TZIhFXVDp6q7xQkp7yx01RAIaCcuWq6BnHTiBUywWd4skyfGF8LlIJ8P2J8+n1gcCCLEU MSLKWe0ZS4igdmHagP/e5CPNUqEebSbFiGrv4DgnE+0iNmdtdJEK9SLK9bC/Ioyw5B3ITyJux Ybt0I5LMZKV3SGvXdchQ9Cu878jM3axuybtvIt3IdT8Z/m7+amNlVAGQj/IHR27qJW/7tvL4s 9MZuLJuQcHHc378qAa9X3gCKhBCG0JOmNS0IEGM+fodAt8N7xrCDF7UQU7TLeiJsSegL6WUYZ dH1TyM6DpCs0myjQD+h3lpvOPW9cLcQmBNG1w2EKB7CJZd1AWQiURHc0riEpaZt4tIYNFs91c NuXJMG/MwTe3AgMzjGZzA9va5WbFxsycG9K5xLV7ppZWwbbBWlAGW7JN9lLwmvQpqG3+V1tK/ WAewWh/Odo8Sgl5PTTUdWPUDQXk/i7m6wlZRmr/EoiKqhyniCIt5zF/LMyYV9CSUP2NydTIrS 9yUIxJ19Ur9gxAHM3QtfD2Y2/Gb8Ale6K6T8DlTzEWzGzMl+SM+PUstLOZjysSWIwC3yxYMrv 4BombRDI1NZuOCzbk5yUBoIAvuT9WVs1Y2ZpTIAfXshmbZicYZemb6GmI9RAWootllZ/K3uX4 4PtmCueFdNRQRuxiDtLWmzNmyEfZAG0Y8saeaiZU92f6ArRyrQojGBz48mP/kOW8sWikOA5ne F+096RBhdGRtWcJAQj1Waa7aGJLxaU7/ghGKuPoGM4Ynd9iwa3jU4tIMe14SmnFgW6v3Vr1tF auKiw3YpH0nipzBuQwAshH5Bz59QdyWjuEKue5L9+TA2Cmxk1NH0Oxu9Wc8uE7zVeV5P2PFmo X5nERncAAKdiaz2RsBuvWF9fND/eGfcSvWgvqYcl8YOAEnFBhzvZ3Wv2isAkkeV1iDLSDMTjX kyhA8DPHJ8H+6Zg6BjPVEo9Q6TbgiO3e/2dTlJ6dd/4srHWNBSsRJ48y0jgAsZnqFZBbNYYKk pJ7U2HxN3W5rbXvC8K9VIvEpPmjIQgQZBbX5XFYk00Be5nw6+ehs19Jg8NMJk6dLTtz8dNMAd JIYr1DFPu/o1gTFiUuwwOThC3fxAcTULCB2nKZbU7vAiTqmooBmqmXz0h9+zgTF+tzh1wPKa3 oMIGaToYLAsQGmPWOxvNnJtGDwOOR Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113864650154100 Reviewed-by: Fabiano Rosas 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 Mon Feb 9 18:22:58 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=1770113803; cv=none; d=zohomail.com; s=zohoarc; b=A+WBsX0GwYVmac3uxDhw+NnhnQ36bilo6DgeCdXDDBp6N9v85G2q89zqi2Frmc9fLlyzlKftppItxN0eAcIu9PQfbm815jnolPakBAXf39ae1quXMH4mwrlMCydKxi3QJ3uh7vjOqmMg/2a0+jmraux/ZEp4AcBmd0HOdBb1zo4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113803; 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=lYNpP+ve2jooFweXFEJdxHWTTHwodeMmzHcJyZf/BftWRutLHKBvBA+OSiDoT6inhecVjW/8Xo46ny7JRvXmO2TQsSeQOqEIsDLPnh2D6MaTKKPdsIJMGKf0S8aaoNVI2o0VO17xdhhenofjJytaCG4wFOiRRn5iTq+swA813dg= 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 1770113803027599.2604896851504; Tue, 3 Feb 2026 02:16:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSG-0007Yj-9C; Tue, 03 Feb 2026 05:16:20 -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 1vnDS3-0007FG-Am for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:09 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDS0-0002E6-D4 for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:06 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M4sXt-1voatT0G7L-00ASfR; Tue, 03 Feb 2026 11:15:52 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113752; x=1770718552; 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=W/5jxnOdfMJfVsLAbBYZZlsgMaNfxqcr3ki06g7rNMJPZ9TNxQX50wC+ya/x8lfC Wp1QQvl6QUUHMhsoilWFYnYxs45ddYCqTaZQsV9wnLxXnx0kcwtOBL6iwHLEKmGRY cuP8JoOgS3ZA9R+GYDCGgRzXax8PzNVBfmxghA02vhQSpy5oFJfYwlCefzuyN1IRo 3NOqDuYbD+UVd19lzygHSfj3kuWP/gxsaBhIkOfKOL3sQE4sZ4xkXLYCpeAmr7WO6 WYr09GdusPTci76iZK5fOzBbbpcIxwwrI2xtzgS2rtBiO8j7QTG8OZjAMre8/5k+k rFoVMHW+gADRoCDGDQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:21 +0100 Subject: [PATCH v5 15/16] qemu-colo.rst: Add my copyright MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-colo_unit_test_multifd-v5-15-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQoGEJE8/7ijOhf8cVtzT2s2EAJ9/jgqPQT PVd4kx26N2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WFOOEACHG8qzhoJgNu+SsluNQlh+yvozUKS7xHU3hn3YZd529cuPWJioINq6jhmHd7+DXEbzQ4j tl/RzTAH0VIvNqH2kxpj6f5C2+I7NmE1hDlls/1Ctea3mcKPTAFgOB9p/BeTwJ4LET06pISX63A Gg+WBb4rwEd4fzuAQhEhepGhsJIGsihsnBMRgUJwo7UVF8JwMhuYOBxCUO22873hZDdx4cKLgym l7iH07ws4pKNusiXLqz8JaE2O9Vzu7WmJRSDJA0UNv+M+QcEiqT/sFCRSeJLHJIQD9iLjyt+iAb dZX26RZ2RPckL9iNUS5lPerrvVlJwA/aGQPnm9A3O0qR1Sv0ij16HgDo4xZDNOFuwrmzKYfqD88 KGbHZxfrj/RyJhGDWqk7irEUNBLVK7SN/JL+eDc/4d+6j04MsgLV9WeNzl0Bc2JOA8kZG3ZjGbU 21qkl1ELUOYGaataps42YtaqQynBy6axI/02nvhvmPqtJNG6Hqt4QJnr3vRsz7IILqecBUdAzRr X5TOD7Vl+jgCMOIf9DIbYQsvQXnW3Tt8Qg+eAN874ssnr37ZPvIuF3UQf7kjheLKXGtyxZfNArM ixr0UOOuJyXx/fW/bgfM+epBh9gLFJNlm4kcQLrAQNYoRIwPnuwZoKDGxIYm33JyYLPj3JqzTnf ThQNlLtuTJMrWPQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:XrYk89A7ABLa59tx80D43RUoWVNNHQ8m+lgpkbQZk7QHrfg3CM3 HKFxNcagnhqDai06luYoE5h9+KymA5vQgM+6goJ2BC0j0Yrr6ycvqcUAWo9+5vtuHNWvIt0 RyJ8ghWqzhbVcomtrvcfjD0LindNOgttPaZuZ6PhLl4T1UfAQ+TW9O7Mw0LRwv/dmAnO4RQ Fb1n6/k2ziUJGC5q066VQ== UI-OutboundReport: notjunk:1;M01:P0:vwb/bPYYvYM=;myBlUIMeV+N6iZ67MavCM2kwcsG 7KXNOdMNJumDwM8v6YZZexEL53hwwjcY786RfQL5z5NN+XrYkqWXlpsFSqJj0japvEZsrYPly e6Fg1vkeU4dkxsdIJOSOIjySrSM/b2BzT5nMcZk9LiA/WbsM0Z2RPYcWFgWf2q+cr2r/ru7gv ejHpyDacr1ol8jSl5+ihj9yjwE60oEhGd9J8W+y919oxOQkuR6DYsIRCyx3aRZ+27EohyJNV6 VKRkTQI9BnFaPh0CAGJhACV0IoBz3sGJa85DkfsRbFc7RQQO/S0CuBkTsw5CujskrPHwFbAp0 sybkMfadpZg2lx1el2cQtMtb+zki2YL1nWwERDpV9pV+FwrLs5srgGJj6ZefzsvXQ8Z5/p3rW O2bAKcS0p7g7FhRN6lh8GAje62VtoNv+nuErzVo5684NwFn1EUuNoeHmEwnGUa4UHUUNBGiPJ hMaJxcEUrFSm+xhrxPNy4oW/n2/Naf8lQB2ysLpNloWPRH6Zhxy8jQZitxtKOf5cCW4tUdeZn u+LYm+pVJVq/nWgC2lr+HWopDxm/ZwH+Zb4PG8UP8yL2hH3tfwrM5gPb58eSHVrDLUam4udIh ap789N0/yM7fQRhLVCjIOTS/oC7Vh1TUIW57PUvHMwppy30++a6Jj1bsIn24MFjtWvArVmTXC 60m5mazkgvnLJRPfVUBYL/b/bXlLB635QA57MOlQqo/r0XGQ3Fhy1B8SX2xRt99H49ydqT4nH C1Pm0RXEfIZ2VsPgPrfHHSu6bYUqEg1vrkD3zxFLXpuRXjG3o5M82U5Kns1e6K8PVfMjIzLgk TtuYtLdy0aSTokvQBxofkRL1ajChBXkjT8uUy2WS+Xh4HhvXu/7OMxUzBA17m4ynoZMAxwtc4 G8FpsQAngi/gpN17puoSzCmCo9U4HgYiBz+F5YWLfz86cN/TQzstEMFNvWbaFNwjXNGrSTxm5 z5M6qCiYQzJZcDpDsEtedecvLb57lKAFhf0VcxTji0ZF5Q36Ih5OFgusgJWqwpMVe2dA7eBhD LhVZm0CTIKGVI4EMD9CfSWk5qTTD/reu8ZZIQWT0iIU4nUokonjBnjwOpGwU6uh9xd5BmMScf 1jgEBAEk0LvBpssG6L5Vt1C59et3823d3gy34KiXOMHvdEfVBH4elQtxHMBoDu8yX/O1cA3FO yRkBLk5JGQWjKSL8Aop/y1xRcu/oW9b27DtWfQyf3X/9yMwDr+jPTFoJjzk6UZLwgfAmm4kwp Hh8/QmMVE+jkaiMuit2cVtL+oanpwmXIP6hE90uGtmcZTbvA2xG+tzNgh1kOA8vJl04kGzV2K nl+7EU3ikLJkxJJcTu1qV8DFzvbIEvDuXhru9UIGBbhBymv44L/g0Zjxg53GMOJ4JrPpsUF/R W3qnch2mRmJNfPQeKSymsjLGbTom0E/DO1uTOqmCsDpoSUJ9ITDFeHbNek+yAiYqsLIVglCQk TIgsIOZfHQJxzOrWxd8stXO0VPVuf1Z1Fm0+OhrIBqRyWFpLzfmyOMaw7DjmrzK/81Gx8MGk2 ZfWgPiPXetUz5eyhaKzCXld0hdyWKpE7ot+Ir7AzyDiTPOGWr/8yKx6HfJF5emjb7gjsnw6bi 3cqWHOywOubhQTnxREsWTJohtYV77zAPif9wKxPdMIi0vruTywmSesGjPGfhz0Ag5SS2Bc/PF xMbCm/3LdspGCCQZvrQ1mBySaphicsbQkKwcO8h7z6gJWa5CNMhHt6ibpnU23TKPbuY7+RVwF JE9LBDegX+Z/2W6EHe+NKamvlEJfB3GyS2iqMgyOVN2VYUTiNmsnLLEekqm3eis6V8/g+1VXe ZOa7+/cpkWMLMkp1V8rkOn2q1SEskzjwxaiyPaeHMZg5XMb6oA59sfrWXxdWs1s5VCeFu7cpW DRTajj8551Xt4K71mOfpF+qqoEt+OMxaZKmCxOqetIZSZ5ToLz4N4m8HdbOrpq2cda7tephbm 5q5xDRArbZIikAGMJJn3i4Gk2Sus4DdzYpO1KsR1DikHpc78gUnskY7qrYHakXX6UzgEbDcLB bNg5FU7Fq37swWffrebD0yjPHgN0s4wB3mW3HTbkaqS/HfU7IV6VCjUZtGP7K+RXtysdDoZB4 peCq2DyUxZkkZ9zIG4tp3wzUmZoL8i8L5CGpSzcy3n8PBkxev7P/+Hl0zt9sF1WKlBRaYuP1m 1wckQ/1/c6uPlok5OJkCzsLCPOBVP3joXN0aSoR+yZ9w9oqaDedHhiOOoRhOW8DmdBYyQhfF1 NKSaMWssXJI5AzLLnXktajMMnJlyeUMSrrpbT81kScasHs109aPOTxTCTP3Q3aVO/JdRywuwx /aMO0CyCt+gboAyGQ66hDFAaGKX0agHMnGJfs38Mfmrxm4WtUEmwd06vNQPK7+w1k/xVBGl0i 0eodQyQIz/FslcpwZuWOsRKm4iKbvBqRJ2+6sHk9yxVPIPou9HF3qUXXm79Uz5yPxELCWnrwm xalDcDIdz0IXjryz9qnE74lpJubWB1V/OVbi5/tf/94j2T1ak3uQF+/qN9xiE1LxulKJ5A0rH bmf8A01hDCNPSzDuFHkEOVit3tNZk7Q0pMhmzaIw0z2mTX0vvPt6LhgeyDBbb7jbEef29qsHH 3tWVbxGNDQAEo0hG4WXB4qcFHDG1dIqGhTVzRciZ26jHyzIIDhB2/xXsmqq5I4+GI7zU1yTIB dKBVMlrK8GDQGTZ3hV0Ge9gGVX8Zn/WvF0I+lNPk7DsMq2upXXQNC++8M26R1oowv7ZbuTTec MhdJ7CYIlG3ycCylGXMFQ4J3e6AeTF/10LrCTvaDyNFmOyqdr6adibTma63adVzWw2tkllAFD qu7z9xz9ji8cAnRTzDJ3RaVRhX7ZDmQ3Wa9LnXQgXiP7fnYc5qAHThhPFCIHs64MhnwWc8/Ah ywwVA2C/D4jhzjR4wp3s+aApfqiVt0VS/9lCC7qFfn15fnkPItML+rAUwgu/axywjoxEemn/X Bzrd6ZG+sOCoozV0K2G2M9Cj/ZwVLdS4qY/7TsBJtlmSsrWqh8QzzLFkHMh8M9PEqNtr/KxIs oVkdNMVtGZTYLPYtKKRajYrCvRw8oqy2FKCPhljOFGM0e8XOKVj2egSKvuJx+L2MWjKG9ze3h 71iQauRDmJTx2k0VOXychoqkRm2i8/6UBrlpfaPEpxUxso31aKhYU4q4lLJdtnu/ojHqGSDT9 Ne6Rj/HUXWn8IhofzZ6FnBlkHNsg93hAOsvZ6nFeqXfRN1Cgplqiv8KCsrVtTHzIG0xYDnats ox3F5r79SxE+gJSjLlOoU/BDWgs0W+5s3QgnbPAPmWcgKjXlcCqj74IQ1VZ2R/QyZ9Z5ePsdh IPzK5rqeB/882fLBUCXt2a24+nucq8HLrDriwOdgxB9qCFR0D2S1JRxCgU8xZbzoU5WNtFzgh NlU1O10W9lmY2/Yuy5kliM4Oi63r56hOjAECVgqhgMBxrWIRc8/BLqyf6ZA7gf8LXiK1k21rR RiPlpLbkqI9V93Ou2wDS1q+XRmcZkCpBfmS04p3r0jIglD9gSATPAsBzN10iLKreX2lNMYerx xqmeB82x9Yh4TE/1z/ruem8m9txRnxfaftWd55TnLo0LvlF+d9haIt6Ft/+NMKqoHeMC+C4IX SHnoWAMKUeLKMXVuvfH7214d2XazeJAsXCZGwmaKm7/4J/mcESSGf237SCte/4VUrjKyWUtFP AxDJERE2L8uZIIsYGrvetGE2l2i8u6Rfww2fNwv7cmJHdUceAW84j1mxzgfshy48J4DRNJaJQ fD1guphTIeN/l83zrQWhzeCZBXsBdQdKQy3bpl3Bnz1Nr1ksr/v1O5ullN+Yp1VH0CBYjtKyg wflemEEr7I8w1BIGOa53z14G5Qe121WKUi7HVdFTu3KJasT0p45GoNFdGBjMKHHGgxnqgnK37 0YAamjeDQV7K5Ax7Gd7RWJhhezAUFQ3FPlmTuOkpidBtep4fetEAM9GROYw0G+Rv7uMWYfHSh b14VFndy3C6kYnRGOlKWjKKzgGU6fKokSkqD+QTVkXpp/REY3L6M7otP6VN0od+rfFWJz7qxJ VxyKck56McXxieTM+Dj9IY0lGrtrCKXSkK4kvg9nOdZbS+3kveYycqKbkT6/OSjMW79QCCNKk OmiexDRn19hGoMKXywYdKQxJnfNj3PnfsyPL2kKW5+CgvsBrJhoQl9ZsKAaFkXRTXOJtkn8kT ErSV3UsW4YurizA8vvQ9j2FdJUHox0T0WJSiwkpmVgwvsDEIqmM1KXm+SaasW5uYBzioRfcee Oh4vMshgAwCFvYKe38ZPuK9zBGl0f2IMdkESKycGQ2dAM2kPG07kABM/MIPgz5Th5MYhKBdrJ /3bAxHtEiELkQJyZLZSwxvsHZ6jGGFkA9+3/wWMm7eL8bkNd0V09SMUWmXTrN3slkP4gUsyGS HiIHh67Bv296Y4AGDnYwGpaRBR/KqcvWRGBKeR5GGMP7gosygEe0Y1hSIL2muMt6szLA3zpdQ pWLCsYzJ+xJLgGezRAgMBXu6FXNEEz/3z3PDLwyAWBfGDZhM622bUj3A8vGmiy6U66Jj/ngAV wGaxgp4+eCQNZ8JFmwcXxZMRafJ8RYu7WbFo9PevKlIrsFl3SddPyeezHo1N/aJNjwPHSqirh FgaC2C8YYghMqozhCyXPRZLkUYvkzV4psU1aNaP9ssXrPgcB5eIWUEmtaZbtie7cqmRqhrG5y 3Abq79cka21MSV8LFnn8TscIpG3N0KnwDoO541wHGy4FiYpXEu9TLVYjEY/4TmBGsYATxOuXD OhFbqCZEnAdE75o0PVpP/Z+QzhXtBFtI7hUrPIKpoTfqz0RY+h7CwHFDmuz4HDNNSsLWXYCfl 5qRrZsKkKXCOHqrXZBrmHH0CuBfOBXfrNQbnU0A+Pck3Q03TOIwfxIcIqd8+cKXTsBdNPP67C JxfGldJ4VGiY2POhlCBP1zTuE7iPfy0pnQPhGhTMWr7TSBEUGITTvBvPEobrPE1WbtoHG/NX9 U7va8m0WS0uUPQka/YFWwVHmtwb2Uvt+bvn7YlKYutCi8EL2CoHhExzWmlgNi1QmfYkVf5ea4 OzpCSFIeIBWEC9teNkDxoDZQd2LcqxB0zvISp40mOKE8drHHYNFvT4VPyvcI86j3xCXyKUZLX PAB8jWq3VwkNVevBgDmj0fhCb6FL1FpIwUaPew Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -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: 1770113804575158500 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 Mon Feb 9 18:22:58 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=1770113809; cv=none; d=zohomail.com; s=zohoarc; b=D6OytR7Qk8J97arup7DvAzE2StzmyhRR1agFecifmmERk6qwlxyqpvUsKrdw5kCbEMjiNl0WLuA6l1MnyItfPmyg+bzMYkaRUuZB1NMmGUOvvWBDdt54GivSR9B3bPtpTAqMPefYsW3QXTRAw6Q/7H9L+Kw5/NZf7rr0V7u9nLg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770113809; 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=ZXVo30Hf9b0Yjij9L3V+68c91v7OJOey3BpNaclzh9yCCevZxZt3Ia7nBAPfD2OdPPhLj+ogRlHmZTdFQhfwQvAgFXHdhslMOa5wM83VyNw2RvAnpsnofGIHiYo7ZG0Owum/OkT9snCwPc/oNVfcZSiRaVRIUQckMNLjoWrpvLw= 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 1770113809925212.9720222161933; Tue, 3 Feb 2026 02:16:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnDSG-0007Yv-MP; Tue, 03 Feb 2026 05:16:21 -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 1vnDS4-0007Gc-SY for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:10 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnDS3-0002E4-2G for qemu-devel@nongnu.org; Tue, 03 Feb 2026 05:16:08 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MJFdB-1w7D8d1dZz-00TDTJ; Tue, 03 Feb 2026 11:15:52 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770113752; x=1770718552; 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=kGNbRyqc498zliYwrHKxCgh4srV+bZpnkBxpWGddY9JEDVc5srwin1NPDD+4MRIu nIgiNCN/8Ec5ddMeubDaCjWy7+Wkw31mRjWR6FHGZyTclB6/aWpmpalL3fZgvaaRC 0rwnjvWCaTFGuDg4By3tv4F6O8h+Bx46ICfTdCPFNV4kiz1sbnk+BlMGlPSVvrTbR El8+HZWPLy1SlTuRB28vZJ+flHis0RdRxh198y/VCDlCKArmE5B2BOYFkpZ5iwMvK g1uLG7g/vpwwm1de+Dt3N7xnorTNmnOrxL0v2A/QvFyqkcCOKdItSFduWZ+or5SZl TDbGAOsO4uijMg25mw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 03 Feb 2026 11:15:22 +0100 Subject: [PATCH v5 16/16] 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: <20260203-colo_unit_test_multifd-v5-16-57508b7389f6@web.de> References: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@web.de> In-Reply-To: <20260203-colo_unit_test_multifd-v5-0-57508b7389f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpgcrQt8I5ZhVJgrBoLPYUubUzmavuyZB6FimEt S6GxaCIhamJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYHK0AAKCRA1qwsonF2y WEIsD/9unCoK8XI1sXohqjrLcu9aYcEqUNryKtIn7bKj7H2ZPPUO9vZS6FWVe3AGHLuaDRTOFu3 gvInO/fCTRsSAmRsjHCj7Amrc0pZA/+o8kbFtIjC2cfujM2wIlzSmCqNIRyvfZ6NMZZZLlsQAjh ocyuY40elgQdIRXEtDGjONQzZAvF2Qp1BG/1tEDrJ+HLG95Sr99ZgVMMI/iaTXB2HL4WwC35s+/ lpGfpLnVKhfmqvsPYsxBEURHpzcB15VNFZswfr8sY9iz1Q8/kevggS4tD0RUeUpEI7MN7fXSPHW P0FbAtfAyE2H49Zfm9HcbYr3iptjKKjAc0cmVEF6gkkMdXkTcRgnmb7bcPhX7/b4bHCQ5NOiFep Gor7UI4j4LmKBDbQz1M0b6kci9tIjjdrMwjc4MNDXhhK7/2andpokRwPd/K+2ZYXT9mlhj23Oti 1X5jojOp4mM7gIGLRZI/BJeCIhI+ZzGIn4IEjgAhJ2GJcv/rAToolJwgtGG4PueyjaRO9wPXAmv SSg2Lo8r6QeJM6QQ80Pwx17Qg23KV/N4yHsXNTVuFtPcJqaHejsBJ1MF4zjkFsKeZRPLy2NVKLk Pdo1HbeFWW1ERScPFmtYCSi8Y4/VWxdEmaRk/uewpBX3p0JG4RrKGxPJlThtktr3F4OG6Ma833K Nb1G8OVWvMpVVWw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:MYLtUNlMGO0xEyXCjRw65xH33DaoECDc9EmUHo6DlWIUVksaPb7 9rvxasGY+F9tbb1pmKO3e7+v+KEv8FoJ7BaHoNugH3Ej/hidghh3Fd5vA2cNyWJXRyH3pWo MUFNa1UST8ojqw6vF7NuNNLHtyUBtrGDfLZEAJm2Ny4z+TBrw+c+S/gFmEWIExqMr8f9kHb gqDfeAGHQ8dSUXPahVnzQ== UI-OutboundReport: notjunk:1;M01:P0:4G6+xxSiHNw=;z+WCo6GAoCrHfBnUyhPLxNtjf6b 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; 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: 1770113811846154100 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