From nobody Sun Apr 12 04:23:13 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=1771450308; cv=none; d=zohomail.com; s=zohoarc; b=RVZXE6Z4CU5DlS3ROTUPMTAWMfwgmB+v4z8qseh05dS+1tj27NnZHcSH3XVgw2Q2R4chUUWTGG0Mw0mqeqUeT6toQNvY4hFeTqCW1SOxDvwZpP5W610P3jClvL450vO7MABhALEVotjedd1Wq5ohPDpqBWANS/RQpjtj8QzfFWs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450308; 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=Wgs8JnPLwSHCXYAOpefvV8N7YHva0erDF8oWhWNsX3A=; b=i2htfKjpxe1+oJLEAsIeE7ylsArvPpcp+nn6rHG5ZIgjHw578mlG4PnvUYHog7c8uh+B2Go90rmGbYyvlP0PEWhli5/EMlOw+GRNBnH+EIWSde8/1MjmjFde+sysL94YwrU5ZFLrJNS8luadiNmhVJirLONw6fFbyMPSDSgE+/Y= 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 1771450308633559.5199274624285; Wed, 18 Feb 2026 13:31:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7E-00076l-BK; Wed, 18 Feb 2026 16:29:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7B-00076J-0E for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:45 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp78-00072p-QM for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:44 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MPaII-1w5YXr0rpa-00PkvR; Wed, 18 Feb 2026 22:29:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450177; x=1772054977; i=lukasstraub2@web.de; bh=Wgs8JnPLwSHCXYAOpefvV8N7YHva0erDF8oWhWNsX3A=; 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=vTz/6NtXLhmtJlGciXhcklBp0TLmryVXQezWUxXqW/eBHFnza+oRlGBL2Ofuxynw y5xyWvDZXyEpj5P3by8xcbjhgzCnFsLDs3/hHE78CIanv1PrOCo/k+laHYooMZIEv TbHM8dLJodS+32WOx6EOwT0jUTK+hguLE7ewnn6k4ZEmfCxPoBJwXWYZQriVl5cwp EiU/g/hcTDkShxBiwSsyei/f4RlrS74tSKxKcUD+keB4pW8+8lmfbbBQKQx/WjE18 bBMisXnF9hKhzVwWQ3yr2q9BspJ4LtWWSmU2QY6ZB/oRwF+hOfHVTO12Sx/73gx5w MklbrWBZb8OM/KTRew== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:21 +0100 Subject: [PATCH v9 01/19] 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: <20260218-colo_unit_test_multifd-v9-1-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=MPZRkh7CVx78Nod7CaK6mwPKVKcE6Kz1AKvpzLXE0w8=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli88u1nqb+lgKNS6uCeBl7JDsxWlXhzhJ4B5Z q/6fAJeiPiJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WBZLD/9XDwa87X103cG3Mc4Shj5TBx4OTkMGGu+tkuRrB5HTlxQjDB/vHU7f+npSJOp8fcFfWQS h21sfZqZmP3aU5HGsreqhQEeg+LGvBq5kKp4nkforQcYdzT5WtrBDzf5wgftgo1Uh2DyFxAhZgz JD4rdaXE9iuhdMTOrLSNgx2SMRoehFjciw0qJ3/lJ3zGel0jXOH06T9jYzGBm0yrlwWJfhyai0I v1Q7zhpTjoWAkog2YxRQro6xst+UNQYEnV3DAyBeVD5rEm8YoelgyD5cmA9ScuxaB4GzQL49CZs CIBKuV6bknk6s+eYP0mqSTm6R5TQJjrIry8E9PID+2FidS5m8IDGyMK0hwps4oqAYsz0ipfxkQT F7bYJK/L/v93Y7AzF/8rWGByneh8UevKVd0Q4aTqI+a+g3NM+Qxk6mdku2BJb2VVQdwW4/d9+EJ AeTaxEQMHdpT1yAHcvfBnSaEBLAUVDjRFFz8uGK1oXl00diPxlyDWeAMw48NuK/1xsEOtOUZ16/ 5UY5NETAC9XDd0/tuUG21dchcTKNNGILkIQfZVIs49mUW0vjJiFgQQKfUVWQ/Ke1tO4jtRnPbml Kg+RtiNdb1TC1LXBT/gEqLIOnUYQ9gdF/xRkHYpqiFon5ekGEhHBGQDTK2GOi2XT+RjKTommlvr 4YlTB0ZX7yvGG0g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:YI94hL6h8JHZK+hNMk3DjfgX9SuoUI2RhU2rVjActXOSqo7XrwR eyyCKUryxJ/GiFYZCThB/OLpAzShrBd17OiRe54nApQiyLM41oWztb0MPqE1v2ndV5qAeJa s8w5zYf/SeMd0qy2Pjh9AWYzf1sJI5hbddYcMKnNNtewARZ7iLWOHBANXnkRPAWeW1Os4tV 0W5hQNDnRfu/SzlQ27Kvg== UI-OutboundReport: notjunk:1;M01:P0:x9kiSxNTM/Q=;Bmd9++kFOkm6bUWvapOPcLKa1T/ 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450310499158500 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 e0c481e2125d81298a52caf7f7b51c3e4f026d85..2458241e3cd45673d7228a3fecf= 2fe94f3b51b77 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3866,6 +3866,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 Sun Apr 12 04:23:13 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=1771450384; cv=none; d=zohomail.com; s=zohoarc; b=jBl5ZUB66Y51EdXTB2RCGAPAiZuhx+Ppe4Ww13an9ulnA1NqdEwnQCoJwqtROCbR40GZ86OQCaOEQ4R/5xBiTUsj9+AJf3KjmAinR466RcaDKlII2TcHp4jtFRirRLPLf3bWaGqw2HhuPahZc2Wly0bXiSZNT2Qk7U/6pH/22zU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450384; 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=EItZ/+gLUzr/5kLXi4A0a68bhxdVbobY0N6WGPa39kA=; b=JeQGpMQAutA+Obb3TjW9BiYQFNK4MaGDur/Di8qOaLrHyNGMAntuzwRM3Jkt5II+03RlYlntuIHLvAonYEY+ruB7n7+PwAzqwi2F0uZmwnX1D3lK77fjKxsNdRVkfFKfACfTEL/OdNXbWnEhBP1qqkgm7X1Gqc+gpUzL5IZX7Js= 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 1771450384828550.6160237753315; Wed, 18 Feb 2026 13:33:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7L-00078q-K6; Wed, 18 Feb 2026 16:29:55 -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 1vsp7D-00076m-HN for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:48 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp78-00079M-Qq for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:46 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MHEXc-1vxCqH3FGi-00HXRr; Wed, 18 Feb 2026 22:29:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450178; x=1772054978; i=lukasstraub2@web.de; bh=EItZ/+gLUzr/5kLXi4A0a68bhxdVbobY0N6WGPa39kA=; 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=BfnBIuLKbyxcvTFOJRT1UrSj3kHJxdCYh5C1uaD/a9Nc3d/ZcKOC6W7TLDICultZ H8JiwpD8dDtyDCS3TZi8lyOKdWhtAKk20MezWylElR+bM2SezUe6aZ8lWhPA/TyjI hmHzXm9nuTeDdEuuK2HfXJxZAF2gGsBFtXVEuaU1wCIZhtO3Yb1aSfG28eANZpOa3 9ti8eEUaMcGCp35d31v33x30UKsVFjsvM48F6KvqTeNo9QKhQcZkC+m0FWxBvNGK/ ZcdlTkXtJeChtemCcN7FJo/fY7MNGzPqJt8/gYZEAnXYosN7R60VO/QIGFt0+M3HS UdeWpKC+vaibzfsdtw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:22 +0100 Subject: [PATCH v9 02/19] 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: <20260218-colo_unit_test_multifd-v9-2-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=is3YRplQqUwEeytK+Q8qH2cF/R5ufk9k2waP/h9xIHA=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli885Dljd8DCEmeYqCxQH3T02h7ZLdFGoc6yr 6fMnMDUaWuJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WLJID/9IrtETpDLWRFwAhfPrICpNxjHrS1hHzxvkgj4I0ch32cJ2aj3Np9WkEmqCvt7Rknukbqs 0GxZvuo3wAtr9GptKPO2GsK/4zlsbT/UYSjsNJT4p7i3C/hUBH7Jr1R1OnlsePzWIXgkJD25GoD GNJnazdixhWUXdxKZsYGkrG8wWd1gsQlfZBNYht7bnK/QjStMS6aMn2sgE7pu8N2c520VfmDyJU 0m+WXuEYpYWJvhs6hOHAZvvtQ6YXIbo+6C3ca5nhjeOIHUQ8guGO6DXAw18FooWVio5bYY8r3/C oaQjvtp6Dj+YjPeQHDw1+be2wUUAF8rVfiyouScErBITIywRHapbKVE5YLsPB2XFfayRd/bKHN8 m7+CNqLgz22n/ovA16H2B4bcTXzzbyP6KLaS0w3lJOTPnnSQpAxCgne1biJDiPGhprfBHGa+fd6 X1ksqZPZqUF5WzkyF8gA3C+Y2WX6fSMPhX146Jhd4JuIOBOEOwK32g6ZE7Wep3laaREuuunPg1z LSp1acuKrxibM0nONuPs+dXHanQ8sh0J+gmX2osgawq0XQeCi/9t6scXSUako1TPGN4HAdqRkfk Rx982A3JLEOlwR2Y0ytt8jAxJ440lONJBsdT9IrftC8YC/QRV1NobvPBZcdCyNSYo+lkP+kxypX HKFDNNP82JqsiIw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:3bJ7zSH0JABvk4AJo5W6mq3zs6BviddYxBn4EciPOt+CG9GttBb 2KD0tjpzE9PEz2giz2ZgD9wSApdH5h3MGPneCOPZdub4Y10XjGq/9m4Nr9q6DLEeLvmQOzP FOo2uYXptwErhf6xsKORsrw19ALH7nfppwv9iQ/bIJFxv1oWuSf9BrCNXU+b6OC/DFE5GL/ 3FwNEaZWhTCq2SFZ8tZfg== UI-OutboundReport: notjunk:1;M01:P0:i1tTsz2+2Vo=;QRa4veSwTPo4irbbub4vQF9BGFD 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450386634158501 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 2458241e3cd45673d7228a3fecf2fe94f3b51b77..3c4eb3bc744e23dc3d49d14b24a= 0d576d7bd60d6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3865,7 +3865,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 Sun Apr 12 04:23:13 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=1771450271; cv=none; d=zohomail.com; s=zohoarc; b=MkWs4pITd7cQ51jUweq21iRlP9hMFShEyyu7vbHMBdjMecA5NKtJcw0K9KnIShWnBJV0Xq3FkAn1aW8pEFhdLFkkIsN+YREkB0VCH3A08lIkVdQkThzeI1vw+K5JdkigM20IgoRmfXwAwi2v4ECyxmZzQpe8k23TQ6NFelCYvlc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450271; 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=w7yoLFLxOPrYAjZU0Xno21H3kl0o95xRyRJ/F9GznRU=; b=SrfrFtccrM25aNmNtkdTkShtsYAueTz7SG1A2j9U/j59wXzZu3mtTcAYvwTUXaTXO/HP4K+RZLVV5ewyoRqxhlra+dX4JQDp/dFGc2lLZdQbiYNC+Chga1lG9+mHwlhSSrjchbssMhuRUpAozQBABO2P+MYFQ/h38FZhOwkCeyI= 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 1771450271399886.7456684658416; Wed, 18 Feb 2026 13:31:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7b-0007G3-VO; Wed, 18 Feb 2026 16:30: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 1vsp7O-00079q-Ui for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:30:00 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7L-0007OT-I6 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:57 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MuVGA-1vasYS0tvO-00uQuH; Wed, 18 Feb 2026 22:29:38 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450178; x=1772054978; i=lukasstraub2@web.de; bh=w7yoLFLxOPrYAjZU0Xno21H3kl0o95xRyRJ/F9GznRU=; 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=dWlFhzUU4oJCHW3ti6NMHbxFy3qFqFNofZEQj4SqHCS/orH84n0gPIcGthe1XNRI k7KsjF1/iWqKpG9XqFvdy15icylP9OrD1ttVUJjdt9KOmkvdwoMgpZk8YBzy8ST5O +S0CDNpRHtgHiiOYJZdchNc/MNMUDwUUYgj15fW5dXTGUsyYdQ7lzKx4bKMi1XcfX H2DNGU6W2x4laGHfu2gqyspOO6tbI4Mu95Xm1/HqLtjQh0EPt7eRcnNfVxibDx2Er SC1r6Da7nHv5fev10yGXlpAX41Ic6nnMWQFj6JuasEakNind+/w78o5wXecw951zZ PktTn8sZgHaTITw+CQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:23 +0100 Subject: [PATCH v9 03/19] 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: <20260218-colo_unit_test_multifd-v9-3-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2754; i=lukasstraub2@web.de; h=from:subject:message-id; bh=bZqP64D7rElL++ZH8EUI9LK8uvlG56Ai3ztis+On3P4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli88cdhrumeMs+ynNMRg7XsVvDSlBfiYoMEIT ibFQ7+QsyKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WLVOD/0XHBb1mDtCPE+/KYbmPGE//pf7wpIzkeCrOec8HGHOTBJZj3fEXXEDL8V7jnAS5n6MPoP ClGNS2WVH/bJIY6oFRTLXT79GmhXS3N33FdFjVyWvKph7v5olBeUPVtq1uvWVwrkagtb1A/B5JH HFsVQAlnhsDaawSEJ4HaRCUgPTtl67HCkgJw97beH/qK3Pk/MQSFNiYCBuIMfRmsXiRcTI4jEhH TXP3il77urn+FM5lK67CrNj7WFdWXJpd4hyyl8nQmqB01kP16q9NbZkIVo66dt8w/Yu/w8l5jYj mp+UkspZmFzSvDS1P+M1n9kvPRVO0unl7Qfeg5TWn4zmjsHxABKdHLdk68HTCV+A2qUDsJYz0vn xa3YFxdyKXjZHS4o1NnsuhNCYSXrz0uTIxKTc8n2lNE30eb9OqN36yDtW8Ip8knd6ZccAgSAL4i EnlLho+iUWo006Z3vMV+ucJ5hpd1K7zkpoy0bjxc7dhW4LOFWvRlozKPTgQumc9aYp6tGBXvL8q 6hijvPciRHrXbukGljeXUJU8FJqpANb2mr152hX2IV2FOpGxzkebgPsJI/ODMjLGQKgi6QcJzIE 3xZDgWxlktuoB/AHE3HmapOZ7nHb0u7dGLLuShD+S7+RSSVF0O9S90E4HtAP6iPr/BfM86CBK46 rhaMdULo1yajuEA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Jeh5pGsW9PUxqfjpobtZTILo+/ONWgyjcfx8/SBiJpqHz62ZVgg 7uTCAiMyIu5Hze9/DR6+f4Dybe0vs1LCA+naktP9YRNwE5L5exHStrJKmcYHcYyseGWThIO ZWY310nvQ8g17zVB2D357bOy6/Citii3l8jAuXw3WRmAR4JyBlevRcdGH0gdVuIgXgCzewm 0cgzk1oZ1AzQxRyuqRGmQ== UI-OutboundReport: notjunk:1;M01:P0:XJ7MtEUA2cI=;JuwDuC5B3VHLWpxTYAvOkZfaLN2 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 7O/ixIGz/tFXf4njIGCh Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450272097154100 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Use migrate_colo() to initialize the ram cache in the normal migration path. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/migration.c | 18 ++++++++++++++---- migration/savevm.c | 14 +------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index a5b0465ed30cb812cb294ab901c7a37fe6157dc6..c2b9621190f8678ac6b32d6794d= 9bcb6ffa5e402 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -630,10 +630,6 @@ int migration_incoming_enable_colo(Error **errp) return -EINVAL; } =20 - if (ram_block_discard_disable(true)) { - error_setg(errp, "COLO: cannot disable RAM discard"); - return -EBUSY; - } migration_colo_enabled =3D true; return 0; } @@ -770,6 +766,20 @@ process_incoming_migration_co(void *opaque) =20 assert(mis->from_src_file); =20 + if (migrate_colo()) { + if (ram_block_discard_disable(true)) { + error_setg(&local_err, "COLO: cannot disable RAM discard"); + goto fail; + } + + ret =3D colo_init_ram_cache(&local_err); + if (ret) { + error_prepend(&local_err, "failed to init colo RAM cache: %d: = ", + ret); + goto fail; + } + } + mis->largest_page_size =3D qemu_ram_pagesize_largest(); postcopy_state_set(POSTCOPY_INCOMING_NONE); migrate_set_state(&mis->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 3a16c467b25b8d93b7d40bd0db751158e0278b4f..b88851cdb7974314b8481646a1d= d19642887f210 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2427,19 +2427,7 @@ static int loadvm_process_enable_colo(MigrationIncom= ingState *mis, Error **errp) { ERRP_GUARD(); - int ret; - - ret =3D migration_incoming_enable_colo(errp); - if (ret < 0) { - return ret; - } - - ret =3D colo_init_ram_cache(errp); - if (ret) { - error_prepend(errp, "failed to init colo RAM cache: %d: ", ret); - migration_incoming_disable_colo(); - } - return ret; + return migration_incoming_enable_colo(errp); } =20 static int loadvm_postcopy_handle_switchover_start(Error **errp) --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450241; cv=none; d=zohomail.com; s=zohoarc; b=mC1++I6t933o6tWz9omLBf45qMWdFdCldj0jUeKGwJBAyy5K75Sua1a4cptn2kf5baGTC71Sk6IWYl+Z66TjtLcvbZy5HjZIsnoIlZu0C9UrrPt9nc+oOIAB229zoJ3uXtpxRt/tmJsFt3XhfWHTEqgd8PP81Q8q1Yl6LksSAhA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450241; 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=cKo1RcLXnUykLSWo5DXiqn6Y9pPE2FE/DD1aFztALAM=; b=eL7xS+BYv9vgR9Gtcw6Kj+XuNvGe3zpNOCZF+UksTlvKlWopnJu6KI8/2VjmJT9FmlDz4z7wUOiZyv+So7JC9ckgu6QfKSI5vOjPOxx4EK6k6GCt/vmL2V2NZA6d3KSBUYB9gR6kzlP1xyJ3wu4tcpkJUFohqNcsjZggwM5NIog= 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 177145024164049.99676453118457; Wed, 18 Feb 2026 13:30:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7S-0007Av-8q; Wed, 18 Feb 2026 16:30:02 -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 1vsp7I-00078f-FT for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:52 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7G-0007NV-Gt for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:52 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M8C07-1voA9R2ZZT-007x3g; Wed, 18 Feb 2026 22:29:38 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450178; x=1772054978; i=lukasstraub2@web.de; bh=cKo1RcLXnUykLSWo5DXiqn6Y9pPE2FE/DD1aFztALAM=; 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=HvgJMaTHbiTQ+BQlo6cHOlsftQdcsra2ue/p/iroxdKgoYN2oxjLU08n5UIxQRfv Y8Rk2iWTtmkYnJqXDTHJn7SdriXc5YHrVa74+o1XVxM5eTDiO5gBfv1ilVxWDyR4f r8mccjnk/vTGcIkfnWuR6wlCk8nRoa3P7icQRw/V7wcVJ0mn/2DVzBtNQxCI0X1tt NoidiARzIDrr2nVHBKhTW8Hzu5uBmI8N2QGc2JmGLIx0AxijpzMVk1ZKxubR6Pbig 0/WnosqwCMyovD1wVRS9zwnc8DH2jAAstvzCGOq1VZp9/CTb8LGR6BaDIs7JOUdhb CDIhi7YvwcCfJ4bjlg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:24 +0100 Subject: [PATCH v9 04/19] 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: <20260218-colo_unit_test_multifd-v9-4-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3533; i=lukasstraub2@web.de; h=from:subject:message-id; bh=n0JNkGWwDvp69U+jS7cX+vJwFoFOUey0gb5uYJ0EtrM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli8895dZBVsoIFEbDi6K0FBWYWDbOKdaY8RA0 e/OO0NTLOaJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WHiXD/92pO+LrCiTNONors3BY3+Ki/D+VuI1Z6D5uQujemE6PcAPgh1knajBP4VZVo6M9hfClSW QksLql2iFFYNZkb6dH172ErVGD85umJdQs4ThH7Z+12hQskdFsCW+N65P4bmuagp75cFF5WewoR CTiJ64TPUfoNFRq+dFEVGXS244f7ijUTN94GW4uTu47xVTpp4s7KVaNkZwgxhj8BvTxNP9nHkSm 0RTuaUO1RL1plD8/6LpTok/EK3uhVs5i/PkkycCZirPW/GeUqhjP/5uwhb+lU7gYjX2Zv1D0VKs Y73HBAykFCWYPpkNsf4H7KzrP/mtlR7J8cqN/nfx/CF+jVVqfDhDD/lnur+T8DV0VzJxudniqxl 1wgrjWvoLLaVFBLoIM9SDcIVMI+kOLGGXHUNREdIQIwxtROQ5IqijdAt1ie31uL5Dqdh6hZzKjN w8TxkUDC5wsFKf7gBfz75iO7AFIkXd5Mi4gnGFpsYSS9HZG5itcRE0Wa45AP3qH477t+qyJBuFA 9U7ff5zbCyq4VyIEgSOv/vYkFTb+vCWimdU4f5h18tPWTaiHNboQQ6IC9a1OL7P8zx8zZqqvS9n 2v6BmIO3mH4YqrtMdCZhEzKxUIwLra2hfl3YKKhz4Mf3Brao/1vreTKBWxq0GmRNcARozXJPy0M habCMI8Fztc4uRg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:CbtSBdRekclbiXyfbLvxkVyOGOcMZMJpbzxtbnWBSHfq878Ov/b Gx3P+BXAJpt/7BWU8Nb8D+X5giHBJVC4mp6A2iUTzQgZRt8dpnMENNVIJ/w+dxx6jK5mMlk AbmXANnbmHSdtAcrrqCx6OaoryKlKp/F4/Ey0vp3d0XSAfF74JikHVM3Xh0wFX1brf58Ewo h9NepsqsBMTLjJcdJK1Fw== UI-OutboundReport: notjunk:1;M01:P0:T1F/O8tuGKY=;8C3hDGFm2byWcFR6qaQV1xGG5eE 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 1LNZMUO+FYDUQ/nMlxKKGkrWgdpKQ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450244077154100 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- include/migration/colo.h | 1 - migration/colo.c | 2 +- migration/migration.c | 9 ++------- migration/ram.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index d4fe422e4d335d3bef4f860f56400fcd73287a0e..2496a968cc1ce709f706c0efe57= e4f765f163d3c 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -27,7 +27,6 @@ bool migration_in_colo_state(void); /* loadvm */ int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); -bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/colo.c b/migration/colo.c index f7a5bd3619a49a3b4a8306973de7a4411cc0df58..97a224c39c49ff2269f375db471= 12458cab0b4cb 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -935,7 +935,7 @@ void coroutine_fn colo_incoming_co(void) QemuThread th; =20 assert(bql_locked()); - assert(migration_incoming_colo_enabled()); + assert(migrate_colo()); =20 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO, colo_process_incoming_thread, diff --git a/migration/migration.c b/migration/migration.c index c2b9621190f8678ac6b32d6794d9bcb6ffa5e402..ef6aac53343f2217cd1aa37e493= 483703068d1ff 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, } =20 static bool migration_colo_enabled; -bool migration_incoming_colo_enabled(void) -{ - return migration_colo_enabled; -} - void migration_incoming_disable_colo(void) { ram_block_discard_disable(false); @@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque) } else { runstate_set(RUN_STATE_PAUSED); } - } else if (migration_incoming_colo_enabled()) { + } else if (migrate_colo()) { migration_incoming_disable_colo(); vm_start(); } else { @@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque) goto fail; } =20 - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { /* yield until COLO exit */ colo_incoming_co(); } diff --git a/migration/ram.c b/migration/ram.c index fc7ece2c1a10f34aa5a91f58cbe42ea418d7c078..aebf77aa0b861e00516d6f1090a= ebefdd0d97e54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f) * speed of the migration, but it obviously reduce the downtim= e of * back-up all SVM'S memory in COLO preparing stage. */ - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { if (migration_incoming_in_colo_state()) { /* In COLO stage, put all pages into cache temporarily= */ host =3D colo_cache_from_block_offset(block, addr, tru= e); --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450341; cv=none; d=zohomail.com; s=zohoarc; b=lziTKc0MGjm93Gd1jDVdj0yx8eECo2Jo6cV57fpIL/tx0smbi1Ac3+1K2UkNMTFEvCnvorhe3itWJ9eVxnHv5ysnxrzA7a+1+3FofbNrOehMN2N8MTsNPye4ttWfJgC/WT0H+o0Eb2utQOm6SB2Zl2CXr3v/c6PEaL7jB7Y9XQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450341; 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=lFaylqJfRwA+xGkjtlbHuBTbGEoGnwtC2rN5nMHNvvg=; b=lDW1cUwohlKbX4gHhly/4Dfm54vqUxxs+CsL9DNXTa5CbU8ZRR2Fzts4I8MJRo67xjpngmE/aKCY6AL3d3D3qWq65BTR5gQ/4aFNkjqQd4h6QIVVfXVWtguy5XrA1HrwrwRGVw/2iKdkfdBiFDqLzaLrSoM4pg4+HZi+QrLtQ9k= 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 1771450341777265.6231758655251; Wed, 18 Feb 2026 13:32:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7M-000794-QA; Wed, 18 Feb 2026 16:29:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7D-00076r-Hy for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:48 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp78-000749-Vr for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:46 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MElZP-1vz7SD3wYl-00EVZg; Wed, 18 Feb 2026 22:29:38 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450179; x=1772054979; i=lukasstraub2@web.de; bh=lFaylqJfRwA+xGkjtlbHuBTbGEoGnwtC2rN5nMHNvvg=; 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=vm6/hiXXcOapx4gwhFgPTjZPsUUd8y3QkPwiemdeIpGxh81kq4Q1gvA1AiZ1uNgq cO82Ha6FhJXXjFUqswSdyiiw6721jXcM1OKamBwZT5z0XqczwVPEfSUp/NRmOqqS6 EYIFjh0cjT3KHbHdFBZ/JpLRb7CFAh27nNrX2g6pLwMm5lIEPewUwP+1MSHhi9qbi OU02uaQu9VEfp2/natfpWFTDEqG+BeRzw8o2EVBoXCveGusRdunzBf1xiTN7DqlEc rGNMQWiLr6ddFLln6tZizLMSZfLx8ZU1VVoyOLYDWg31wORuQtEfxL3rUIdTlRa28 H7zSmMvfhsPD0/6Rsg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:25 +0100 Subject: [PATCH v9 05/19] colo: Remove ENABLE_COLO savevm command and mark it as deprecated MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-5-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=7042; i=lukasstraub2@web.de; h=from:subject:message-id; bh=YT+h1EviSwAmcakmyBDcRUQRzNdTm5AuYHH102VFwng=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli88slgfK9rm+FE0O5SP281RVMpLNg7duJz1c d7jTbmFeoaJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WJGPEACQmDvzuHBrdxMmT1PuDAaf6TXpLUmX88YcOyB3UQhAnjxFQgIkcjCc1LvK3A5q5Gw9H0h nX1K9upFLFkknEwJxCbrVDUi3CDYZEi73gh2NAdh4nBVBRSDUzBM9QpkWUSJib56xMxn3Dh/95B Nhd4UcvzvkOd3fczlkBdQSyTOyBfApkMW1NVBkYZiLjsPNC6v5kO/4cTpAtqw3N5GwB+Q4HfEPb 5vbzRvMqVBznEM+sGafkZzrc7IV17muDx5Dp5PojzHgOUMVdhuG3hh3+OCMQ4jugyWn2lu/4iPz l6kGn4iK3KcwY8qrGKUqPJR0eZmxzGLOVCC0qJWceZZitQE3ZuffirntlJQ5opON+ymqQQEvtE0 +m4FBWbDej0fUlHL5IQ9+mh/iKcN8Gh8e1YnNx/csg/E3S26OOFpTKKKH9gZwp8WBObRtu3m8ej 2MN5+POq7I0Hj0YTrSUuFWbMq7PPNHsz3ppyB46wYuG2HmFwcFLTMID3Pr2wLRTTEsJYcsQiQph 14yBeGTcg8HlXzJPn68W/O/BsbAHLTIDITklbh8IyXlBJE9TRhxF7//d4shcoqnRTh6BvsYvrjU SleaFBey3P7CGQpLCGDn4/erqqixyDis4iteOLvnbXiFu8Xms4tZuhg2Sx7vQMdDGdEAM42f1QF LbO1xGsQctc8bLA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:oNkMHMfhyTgJcCHhJcN9QIo7EW7OuTZ4WruLTsMB7JI0Un9AQYY zPaYdbfJ2oTM42TKegzF4ICxBxQsCpqLq46JiZ65Kl6KxonpA7JfBhdvttRLru8INX5uW04 ZGOzsDkT1Op3AlDC8qLe4raWKTwfjZqA7ceLLfKF560bhYG2bZosf3EltRi2GFux+OdWMVC 2rysjlGwEZkBdy1UNxhKw== UI-OutboundReport: notjunk:1;M01:P0:BEbvX/yaxnY=;U/wUTaH/pYdZUIQSqYF278TZnK8 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 LxhGtq6uownnXYA/Ecb7rDH5TU4Eb Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450342475158500 No need for it anymore now that x-colo capability is required on incoming side. There is also no need to send it for backwards compatibility since we only support COLO with the same version on both sides. We mark the command code as deprecated and now error out if such a unhandled command is encountered in loadvm_process_command(). Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- include/migration/colo.h | 2 -- migration/migration.c | 31 ------------------------------- migration/savevm.c | 25 +++++-------------------- migration/savevm.h | 1 - migration/trace-events | 1 - 5 files changed, 5 insertions(+), 55 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 2496a968cc1ce709f706c0efe57e4f765f163d3c..8f94054a10760d0f2598f080643= f45f9944cf051 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,8 +25,6 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(Error **errp); -void migration_incoming_disable_colo(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/migration.c b/migration/migration.c index ef6aac53343f2217cd1aa37e493483703068d1ff..dba5d6ede579da42693d5270ede= 9660fb145238a 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -604,31 +604,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, return migrate_send_rp_message_req_pages(mis, rb, start); } =20 -static bool migration_colo_enabled; -void migration_incoming_disable_colo(void) -{ - ram_block_discard_disable(false); - migration_colo_enabled =3D false; -} - -int migration_incoming_enable_colo(Error **errp) -{ -#ifndef CONFIG_REPLICATION - error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " - "replication module is not built in"); - return -ENOTSUP; -#endif - - if (!migrate_colo()) { - error_setg(errp, "ENABLE_COLO command come in migration stream" - ", but x-colo capability is not set"); - return -EINVAL; - } - - migration_colo_enabled =3D true; - return 0; -} - void migrate_add_address(SocketAddress *address) { MigrationIncomingState *mis =3D migration_incoming_get_current(); @@ -735,7 +710,6 @@ static void process_incoming_migration_bh(void *opaque) runstate_set(RUN_STATE_PAUSED); } } else if (migrate_colo()) { - migration_incoming_disable_colo(); vm_start(); } else { runstate_set(global_state_get_runstate()); @@ -3534,11 +3508,6 @@ static void *migration_thread(void *opaque) qemu_savevm_send_postcopy_advise(s->to_dst_file); } =20 - if (migrate_colo()) { - /* Notify migration destination that we enable COLO */ - qemu_savevm_send_colo_enable(s->to_dst_file); - } - if (migrate_auto_converge()) { /* Start RAMBlock dirty bitmap sync timer */ cpu_throttle_dirty_sync_timer(true); diff --git a/migration/savevm.c b/migration/savevm.c index b88851cdb7974314b8481646a1dd19642887f210..197c89e0e659b889409c3dc9751= 8920ea9c1824f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -90,7 +90,7 @@ enum qemu_vm_cmd { were previously sent during precopy but are dirty. */ MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream= */ - MIG_CMD_ENABLE_COLO, /* Enable COLO */ + MIG_CMD_DEPRECATED_0, /* Prior to 10.2, used as MIG_CMD_ENABLE_CO= LO */ MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */ MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */ MIG_CMD_SWITCHOVER_START, /* Switchover start notification */ @@ -1103,12 +1103,6 @@ static void qemu_savevm_command_send(QEMUFile *f, qemu_fflush(f); } =20 -void qemu_savevm_send_colo_enable(QEMUFile *f) -{ - trace_savevm_send_colo_enable(); - qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL); -} - void qemu_savevm_send_ping(QEMUFile *f, uint32_t value) { uint32_t buf; @@ -2423,13 +2417,6 @@ static int loadvm_handle_recv_bitmap(MigrationIncomi= ngState *mis, return 0; } =20 -static int loadvm_process_enable_colo(MigrationIncomingState *mis, - Error **errp) -{ - ERRP_GUARD(); - return migration_incoming_enable_colo(errp); -} - static int loadvm_postcopy_handle_switchover_start(Error **errp) { SaveStateEntry *se; @@ -2513,7 +2500,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return ret; } } - break; + return 0; =20 case MIG_CMD_PING: tmp32 =3D qemu_get_be32(f); @@ -2524,7 +2511,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return -1; } migrate_send_rp_pong(mis, tmp32); - break; + return 0; =20 case MIG_CMD_PACKAGED: return loadvm_handle_cmd_packaged(mis, errp); @@ -2548,14 +2535,12 @@ static int loadvm_process_command(QEMUFile *f, Erro= r **errp) case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len, errp); =20 - case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis, errp); - case MIG_CMD_SWITCHOVER_START: return loadvm_postcopy_handle_switchover_start(errp); } =20 - return 0; + error_setg(errp, "MIG_CMD 0x%x deprecated (len 0x%x)", cmd, len); + return -EINVAL; } =20 /* diff --git a/migration/savevm.h b/migration/savevm.h index 2ba0881f3bd28dba10e52e16657a0b67b19bb00b..b3d1e8a13ca9a535a6990560ed2= d64739ebe730e 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -65,7 +65,6 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, c= onst char *name, uint16_t len, uint64_t *start_list, uint64_t *length_list); -void qemu_savevm_send_colo_enable(QEMUFile *f); int qemu_save_device_state(QEMUFile *f, Error **errp); int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); diff --git a/migration/trace-events b/migration/trace-events index 90629f828f80b51500776ae2171724369e194573..60e5087e38beccb98588fdffec7= deff9a7f92c88 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -37,7 +37,6 @@ savevm_send_ping(uint32_t val) "0x%x" savevm_send_postcopy_listen(void) "" savevm_send_postcopy_run(void) "" savevm_send_postcopy_resume(void) "" -savevm_send_colo_enable(void) "" savevm_send_recv_bitmap(char *name) "%s" savevm_send_switchover_start(void) "" savevm_state_setup(void) "" --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450265; cv=none; d=zohomail.com; s=zohoarc; b=DFa+keA57ZNmbKLVXUuJFr9EamUr3YJxPbX4+hVfNzrGuEjjd3NuKFQ+D4poa6EF9AfRBTsNTcg3nYG4S4nObwxhn0FBjTCY3MwugI4QvztVcuU98eC3z6IK8v6DlyFX9gNjWPz+B+1btMvD4Ly7LpgrT5mjy86bkHvbU5/PzCA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450265; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; b=AQf6nXZbP/sD2aJFtyLBhPZclRF55Hji8rXHGDMhF9h4vmK7BjVt3vkub3CS8yC9CFgHCHKV3MAdvIB/MCi5H+LpQ8HBQw1bWrkc823exTTv2VZOWW2kKsmJQc8zPFXKoqm7EnmjhgsbbLH8eDnd9HKtaTlanpJS4Wq14PEoBLA= 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 1771450265305803.0251480039785; Wed, 18 Feb 2026 13:31:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7J-00078T-1O; Wed, 18 Feb 2026 16:29:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7D-00076q-Hi for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:48 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7A-0007Eo-O5 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:46 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MODmf-1w8ZcQ0yxV-00Noyw; Wed, 18 Feb 2026 22:29:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450179; x=1772054979; i=lukasstraub2@web.de; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Yp4tOQ06WdUYZ8ff75X5uf0cYTNcJyp6jnitLrgnNCCPTudcuWPzFaNoMAdRkSjR DLIAZZx8homeNHUIDIMKQsTgG/4Lpax4I+aQwC2lEFXFHdSQHS8RSRTA0Dr7H0GUk g1nG7ytwsfL9MY+GtRf+vmVJtS/197lwzq5+fBbc6zKDDz6v9mraaWTerRxQRVva7 Jvi9nxxvWoCHqBSzDUfIRF+Hi24waOCcqQdvudBi0qY+OtNlF4JJej82mfj4+wovC QSkw5+wA3wLEussZ84a+hnnVGWc9GtPj2i8tpyQe+ZSEAzzWofvsE36RU33m3J8wB qW1rhIQL/S7qEPCsMg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:26 +0100 Subject: [PATCH v9 06/19] ram: Remove colo special-casing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-6-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=lukasstraub2@web.de; h=from:subject:message-id; bh=vR/wp6SYVr5uUbTS+XPqPG4RkOoroNdE8dtNpsOBphM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli880oGmJmd9EiGMFm3K3u0pREa+Oy4hBW6bm eFczgshoKSJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WK/UEACw/E81Xgb6dCDANntLFMDK6kAVDiCrNhFPPymAsmhp5u3sKHnsAWQ8CK8/qYBVMmSV9zX 6lQkzrsp91MzDPuFMWqJXI2URTlSWBqkMH9jPo51jkmU6QXOnThA2eqz0zFSQysJtIM28J3AChJ 2WqLL1EpzP61lMwgqpoJ0d2Ae1MxSIChpRuBIaMpMkCCyxt6TzJbAWqcJU08Mo/6E8ArvsarPAL q8WeaT40zveOBV7KHTQswMXuzdF+EQrLBl4H1q4Tj2kbgbsE418V13EOS5pye7TjvfZeOddzGgd Rt9/5qThJdcxLqt0Kck9hoJHUFlGXl8Uqbqnhx19b702ucgs0MzUAbX4fFKQx78gJQ1RwQ1U5Fw zWNK5Qec75m97KQCtwa0XCr2U4Oo0DD/KNV8Gw64m9FN1WgoEwFvlEfiv/AJVdlLFhA8cffa0+n H4qHd2HdRYXUCWjE2oBXCRgB5HV10yXWv90NAui0u06ep5zquTq6I1xXHUS8nVOISNt4TK1A13N bS1wuaun7yfpiIAW7osREzHT1ToG0TC8AZEyt9Ls51HQHV35vE8YeqLsWk4L4fH6GCVag6XROim XwGaKOGU0FWSzCwIxhzk6gh6wMqXFOIEr5KP5AJNbUQakcHq07WRQTDCM7Bd1zAShzenrUAWJ4l 26whjFtbjXfiTVw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:09ZDwWuWrhXjLkgeAQ+5Y1LVrtt5BPlmiOZPS5r+9SFZ4Mh8Xnf t6J1s8oQqU5Fk7MYxz6qCcnajvXHe4WkOEJLv+EoSuEM/csM2wThIXY8fwPVwbU5/sL/i1z wpEGvW5x+mLNAV4ELzNpYZ2HDOIzUW1RFLB+QgRGKt4XbTuQrCyCnGYYWHD30GwPkHOP1Y1 VBjrF+oteso07Ob60pFqQ== UI-OutboundReport: notjunk:1;M01:P0:6bPWy/yzLgI=;YNpUZzSAhRrfCXxu32RiBLRJZW1 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450266137158500 We only enter colo state after the precopy migration is finished so this if is always taken. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/ram.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index aebf77aa0b861e00516d6f1090aebefdd0d97e54..979751f61b30d6c4b878866b501= 1507e7c519176 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3116,12 +3116,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque= , Error **errp) RAMBlock *block; int ret, max_hg_page_size; =20 - /* migration has already setup the bitmap, reuse it. */ - if (!migration_in_colo_state()) { - if (ram_init_all(rsp, errp) !=3D 0) { - return -1; - } + assert(!migration_in_colo_state()); + + if (ram_init_all(rsp, errp) !=3D 0) { + return -1; } + (*rsp)->pss[RAM_CHANNEL_PRECOPY].pss_channel =3D f; =20 /* --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450322; cv=none; d=zohomail.com; s=zohoarc; b=Xy9dw/0s5M0UzFQfOF3ZxdJnxmFuS3GB6RJElONPIA0jk22aoUhydR7cJd3U93cahsy/EdgjDcrjpQ9rzI0VNoBsp9YLNomLO0Hs3Rz/odwq0ywiVCNZTIPwT7U7wOosKcVuOjNXkq6A8GljWUwoSkfplap5jAPTu9fmv6qeQJA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450322; 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=DLwhjguH8jE7j/8MDS/TqMwT4Co5tAQ3xHElQtj5Pv9RoTjHHTWn+s1RJgK/Q+7agC2TqfR58IZfIF75VWwCrA+YnsIi4HEuWVrCi11yDzZq9ow+deRxcpLMTq9dH554d5tI5uEFy5KRgsgJD81mmxNVExQngRgWBBjc/JMgD+8= 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 1771450322803345.25189313021895; Wed, 18 Feb 2026 13:32:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7f-0007Ho-MW; Wed, 18 Feb 2026 16:30: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 1vsp7X-0007FX-AG for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:30:08 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7V-0007Og-Ih for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:30:07 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MdwJO-1vI6ib2DME-00bo5t; Wed, 18 Feb 2026 22:29:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450179; x=1772054979; 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=FmAscWAVwgMeWu5+mawmLEDut+gIdc5JXKSC0TiU5yerTEuUdeRbgr1X4iuV2vBY cnerIn/hSrGECG6isaStjyUNT36rB0JvXGZ2S1cockzlpkIAQ4ZgUz8QGyko7dby0 grny4WmlKsOcFW7MXrhdOSvg2YMthrKCLrcU0TNvux5lm4c1KnL9W1/qC7MUVeCIX KNtxeC/vio8ght/qv4vDCFJUOkyLY+H5hZ84kSbaBYzjTidjPyrFFvMCdIL4b0gqN NS+CUjK1/yUkOUhFD6HbqiTj7fJLeO41/Bh2fla0KMmjBr+H8B11wQ7vh2i9eFv9z ijHPAkabyC3n8QfBrg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:27 +0100 Subject: [PATCH v9 07/19] multifd: Move ram state receive into multifd_ram_state_recv() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-7-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpli88QG4xH9qLhiJ6ka6pqtO4aEVCK+LL9xnoR 6mjCg+C+D2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WAjgD/0T/sWsyrlSA/rvyYESpiR0ZmiAd/WdFyfAPmZH7b9hSqe/bqC9m1FzRwbHZXRxho8ZsP/ 7FOq3Ms3hXjcxjt+Hcd32lsWblGg8Pocxz0KHgRQzXlhsB0c2O3p8noOXmlk3od1QWAWTNoqbNM xhhNUkuUPKgrgLZ36oeQ/vFqSitSIJhmDMi+7CMwj7ZoPZgZGYVdZ/0zXTjAiTjFcugICM63Yo2 jK9DLnYbo89JgisiazArpb8+M+H0iiAuC/kTSiV2TlpfKAAecHWc/1G3n5WfP+0b2N6O+QnwOa2 qbvyN+L2ODMcR8Uk7+NEKJfbyFqgfSJQeJzQz1bEC7MUPUVYWJU5c3XuHe+tsPtvp1Qt/6VOj1S 4BQ79J8BK4teFOft6H/kMiyfCIT72mZuHgscoXj0WBtsySZ5FdOqGekDFTQw7Sis1TRIL3immBU cjamh0QLW0YpjV+Qc05zlCtJq02983P84IgN4zGd4HtB+tEOZ8OgJVE0Mx4wMplXMs5FyIexXrd ajzj8FALoxhDQVzTCl6O1wAoAPsA/EeiTgGegXCQj/vN/WW0nogPEV/EiC+gP43B8EUuHH9H+rc ZFvwHokLqqkO9GojiQdrzXFpe6lmr81KFqDSJLKgLhZuv44tIyl1YcaqGeWSdxnUb1oCtTeVfPI 1JeDyOXXXnsDvOg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:sFWGcL5aXM1qIz4kGuuy0xWpIwgq3HfChS17c9Tcjw35im6o4K6 d4X7+6jAhBOGeuk9Zh9Ru/ByiTNuLrmFcs2sbURPoIkVf9wEtLLC5II/NyQyT7yOO66P7yb 8IBCqdZKah82wOhNrnlCi0hlYZvC70ASoUyGjBI20b9LwLF5bkZJ6e2au2t8ddXFQ2ijO85 JTgL5GCJS0MoCFFVTNLGg== UI-OutboundReport: notjunk:1;M01:P0:vsrO8XkCd2Y=;Bvp4x1GWlugR68wAya0vtyAgMjy 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 9ymnOwng= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450324612154100 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 Sun Apr 12 04:23:13 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=1771450385; cv=none; d=zohomail.com; s=zohoarc; b=doSJkJxUag5D5lK8950TP4gm6Z2d+h39uuW84/oapbtT1kx0QN8FeJ9FfhPUQ7WnibvtLcn1Olv/Fu7I3gxqMyHdKfCDGDkDM2w4jGPNRfKnOjJ1a9KrYoAnixJ5mOdsgHwnV1pK76pvt9oycYuoYTUsl9QaY9+UYPTdg29Mp6I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450385; 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=PIeh9HHb7yZFZn9UaUBgAwp0Tvj8RNmFgHfSkQif19o=; b=I6O8hHEoh0mXn0lffL/kAhStqITLLtdN6JouvEa8xLtL+UqjLO68ugr1hL1T/JSyLSY4lgr7mKzA6qFjbkkVF5pxWysekns/V1Qs8mRdbJjO0EcTresB2f4p4Xf/hqCGiRuIA9i9KVQfe5vFZmZRvLoBvAxl4Vjt1FEAoAEiWZU= 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 1771450385067162.67916096987506; Wed, 18 Feb 2026 13:33:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7T-0007B0-7d; Wed, 18 Feb 2026 16:30:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7F-00077g-Gl for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:50 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7D-0007Ls-91 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:49 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MI3t5-1vvp8G3buh-00FcZY; Wed, 18 Feb 2026 22:29:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450180; x=1772054980; i=lukasstraub2@web.de; bh=PIeh9HHb7yZFZn9UaUBgAwp0Tvj8RNmFgHfSkQif19o=; 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=t2+AF8UsLdYuI8Ka7163gBgzOAC/bGWr8sQetIbYU08EBg/eg0X23seS5XyI3mmC kuOY6+J8Ryvki5/AO1uMHF2Nxwcd2HYwhDDaDxuthrBJrqfp1Bni06ppSgTb183do T9J5HHttCWU2oqZ56aXhULGbZVcT6NNi/1zjau0QzLxjy7N6XiIncVqdohdilODLx VO2Fz3BnpTAgySNbz1T8PAFLPb0OVhZh0tOuF8xNyRE62WqiqjDC6dXybzIId0wYs 3mxD6mWbGRJv53tfpDm+LM7jgec9L8tLkkpiOJbWbiOODJKZsoqBR7URNEo4XAn45 HVrJZErIssgztp0j6g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:28 +0100 Subject: [PATCH v9 08/19] multifd: Add COLO support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-8-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub , Juan Quintela X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7788; i=lukasstraub2@web.de; h=from:subject:message-id; bh=8r37wRUpxfxlZdZosdNFVkALib5KksA9QEkP7ns3l1Y=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli88vD/bW38ySS8GzMWZrwBvQH7E3wjwncH63 HkRLvnicqGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPAAKCRA1qwsonF2y WI3TD/wIxWn8qvC9KCOOhuw6Fyhp+uRAlanVO+CaLE9V7qJe5qDCbxxhAzHW+RMwRGyfEDF48Lx mEX2nB7F//XA9IcFowMNaS6bdaabsjmFHb0EAJXSIynv6s98+H9wbKmU83/zmov2CdRJTLECMam jfNeQc1+ewh1+UQ7tFHRjCfKPjjdE/TZ9tB6PN7E5R/VyLQWdKjl9bYFIQUP3Sob3nN7RXiegnA OZOMECv53pHgze5E4qatIkVLYUDymyEFF7NOWkKgSe+Pv8OIvj63uzH867W8qXPL3hnlFXeMj4A TGmM+Zwi5T9Ao3OsyDlluDO1Rm2aq5kd3dK7pXnHZSRV1UCBw/+MXMVKcLWUrREh0eqcFKfIqbB YiRoWLswom7kjgB+vCfihS4/YPUW5RenZezb07/IoqV3sRN/wbfpvXLUxA/7cZ6OBTV2pWeNT6y QJfOEMpkJMiRPmClj+SFgU3E4ftg+4UkyNIYztJEMeUxbCoCE6qhfJFZpd79ag70POiAx2rH7YA EKJMWJ6yBKuIX0xJgOkpWNauX0ltuvwE0sFbykEFO0ufLX6eGFNK+lJ6wr3TdbZJStQOyo41m8i hwuLUMUXMAJFdl0wbYa6/m8HzjAsl7M6faMos7sKww77oa7WTdEhd7NcYmlqNW4fV6sgvIf7EDD YrvDlBWbCSuCD+A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:gKLk9GdrZSZf5pAD1stWvrf9pfPbYCOW7p6ad4QncuNmRaVeuVq meU6htVXdNCyNkOdEKf1BbC9OaGuDfXm+xQh+1LxdFwzhULnOlnofgpRUBAmPTLtbFRuU7V 9WIbdfErCWDbRKvPldR07BVa3lRnaxFo8y4dA7+vcLrx9VTkhpA1fAwTUdWSxA/9QhxE6gC 3kgD5RkRTpqGw3kUVYtqA== UI-OutboundReport: notjunk:1;M01:P0:mOhsrbh1GwE=;Efra+hxJMHXFjRpc9RnhlaIisic 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 NJ8cS+N4= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450386872158500 Like in the normal ram_load() path, put the received pages into the colo cache and mark the pages in the bitmap so that they will be flushed to the guest later. Multifd with COLO is useful to reduce the VM pause time during checkpointing for latency sensitive workloads. In such workloads the worst-case latency is especially important. Also, this is already worth it for the precopy phase as it helps with converging. Moreover, multifd migration is the preferred way to do migration nowadays and this allows to use multifd compression with COLO. Benchmark: Cluster nodes - Intel Xenon E5-2630 v3 - 48Gb RAM - 10G Ethernet Guest - Windows Server 2016 - 6Gb RAM - 4 cores Workload - Upload a file to the guest with SMB to simulate moderate memory dirtying - Measure the memory transfer time portion of each checkpoint - 600ms COLO checkpoint interval Results Plain idle mean: 4.50ms 99per: 10.33ms load mean: 24.30ms 99per: 78.05ms Multifd-4 idle mean: 6.48ms 99per: 10.41ms load mean: 14.12ms 99per: 31.27ms Evaluation While multifd has slightly higher latency when the guest idles, it is 10ms faster under load and more importantly it's worst case latency is less than 1/2 of plain under load as can be seen in the 99. Percentile. Signed-off-by: Juan Quintela Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + migration/meson.build | 2 +- migration/multifd-colo.c | 44 ++++++++++++++++++++++++++++++++++++++++++= ++ migration/multifd-colo.h | 26 ++++++++++++++++++++++++++ migration/multifd-nocomp.c | 10 +++++++++- migration/multifd.c | 8 ++++++++ migration/multifd.h | 5 ++++- 7 files changed, 93 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 3c4eb3bc744e23dc3d49d14b24a0d576d7bd60d6..5519ea4e163229a9bbc06318a0e= e06d88ba6a8a1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3868,6 +3868,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 Sun Apr 12 04:23:13 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=1771450279; cv=none; d=zohomail.com; s=zohoarc; b=IrcGpoweHybq1pKBr5yb/9/nVvkfEGqwOs7JWj/EK/jztjCThflST2DDAVnKdNYx5shsNqvnI4uGhWeXry+9G02B3rIKe22uw7Ud4/+QS0pzriMvdQTrBKDccsNjHvCXWQwQJ/Iip+qJjtYhyWqoMty7vzbei/cdfD9SYfIpEKs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450279; 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=8hHLJHabzCk4FfrjTAJvzzHBO1OUkODVuFNUMhqME4c=; b=RpxjgAEEk3uG8DhRQG/Q0uj/uJuAGRdSIMFn/FuIqYWjn7Mrd4twBfg12u5SMDQmUvUGkMXM8QS7qq71uJDbkw4ohd97AAKvpQuu0Lge6aVU+xRAoaZzo/aT0P6V+hGR5malQ8g8R15iQTMCLIyjOuZUopg1CfyAtRBpJ/ZWOu0= 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 1771450279363308.13534417572555; Wed, 18 Feb 2026 13:31:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7H-00078A-U7; Wed, 18 Feb 2026 16:29:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7C-00076c-54 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:46 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp78-00078a-Ql for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:45 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N8Elg-1vfoW40dDk-01882F; Wed, 18 Feb 2026 22:29:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450180; x=1772054980; i=lukasstraub2@web.de; bh=8hHLJHabzCk4FfrjTAJvzzHBO1OUkODVuFNUMhqME4c=; 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=eVHKzi5oVv00Qx1MiU9sOHUGk5KZs28Yk2h61oG9+osAkv2a9b+XOt26WIZLg+ES ZwFpP64oUs08XEF/qfXPEEcAvR9dm9Xw4gJ5CYX05y8RyjkXmVx5enCGeGZ2t4Q++ hpV8KuCzdRGfYD/Rmo7eSqSPGjP0uKxWtehasK2scbP1xgm6nkjfc+dVB2iKoZJM1 OFEtsD8Psjeldt2NJnzOcE8SSE1zP1RpxYsnVF/bTsumTNsOdVZYjRcEqwwpO3XsA CFnMRadGJJSx7NLoZssi5iqAAligAz/wDruOmp9pmipHxqjmwh240lIXkJ4T1V9T7 SJfQ6tXTAA5Nq9iiew== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:29 +0100 Subject: [PATCH v9 09/19] 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: <20260218-colo_unit_test_multifd-v9-9-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1345; i=lukasstraub2@web.de; h=from:subject:message-id; bh=742UeEMYZJ7tKnjG0Stx7vUAA1BGNxPixG9gIstyBU0=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli89dHfNaIWb7gy6ksI2hyhhm5cXWq4svDNO4 +V/SWFLtkKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WFblD/0ftCdLWFfgjPIQDWylJy1d9d/5e9dzA6iO490l4PMJVPe28MPPdUYkgBSeI8M9QyvVpAG dBUxXpIv9zP/OIXds7mlhx306fFfQWOd5QMxCoqtbe5GzQ0VJCgkEJcdulqlkslejh5fDK0noAr 2B1s/vPhEOGMQVaYl52xiggwCVzvo0i8jzhvlrZRTKmmmGp+ehjZRNvshaZbchajFgAU6CpYW21 7eoJ6hkfXI7VgT9LLo9MJ003LjxkUVLsGTfsTG5rK5jwGRLAJbN3p7emZc4BBZLd/NNJhkbdCw8 HrH1OIo0fm2RmRS/0hINE/MoDmE+iO5+lY2OXWdW0SEBjNI/ik5HTxDC8GSvoLcVO5YFKbEB6AZ 7QM61iDHX4lTFlGVoIJgxXBBLCEWxWFBfRVHj0tyTqSQLoVsEPo/CPUXVg11lMRbXkuHjLRGf6X vkoWbRvHTteqmYCi4pHf2kuPAP8sT0O0r9CrZCXqe11v0w9E3vq/udJOWWVM7EzP2PN3JLpLpMN /9zl90zEGOaxTbTzA/mmbpgZ7ywyBWUT98rqe4J15FztlNcrRjvEx6CIrbnvHXRKYnd4FAqTzxa oEJNTPV6r3oLsIAjSOsjWD3tstEH8eaFncXXMwKgcwAiylTKsy2Pp3XuE63VPwi7wPwYRtGUQTh CCsb93Bno83Zr/Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Yu1VI+s9IglV90Cr2q/p59KjHW6B7PfelaR7NYkfA5LcZvzsiV+ auaWJqIkP6s+my9JMQ5aRJVm2w0k9x3Z0u9MEG+0RFRARgKLbZTz+LEl9Pe6JHOoUsqHsq9 nBhmb4ghkqqxFJATPwg8fx6KYN2tSrtkSIrKrkIj/GQgCscq858iukIU5N3cYPC5slJMHu9 2dqeivl0fxu0rLsEAMVfA== UI-OutboundReport: notjunk:1;M01:P0:/KeNvotC5s4=;by3BzVHzPLoYOLaetX9K9CTyZf7 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 JC9pH/N0= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450282385158500 The multifd threads still may access the colo cache, so release it only after they terminate. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 3 --- migration/migration.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 97a224c39c49ff2269f375db47112458cab0b4cb..96102c9d0fb3b60e063c81ce07b= 730011bc4919f 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -949,7 +949,4 @@ void coroutine_fn colo_incoming_co(void) /* Wait checkpoint incoming thread exit before free resource */ qemu_thread_join(&th); bql_lock(); - - /* We hold the global BQL, so it is safe here */ - colo_release_ram_cache(); } diff --git a/migration/migration.c b/migration/migration.c index dba5d6ede579da42693d5270ede9660fb145238a..f36d42ef657bdf26d78ca642d77= a9b76e1c0c174 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) * BQL and retake unconditionally. */ assert(bql_locked()); + if (migrate_colo()) { + colo_release_ram_cache(); + } qemu_loadvm_state_cleanup(mis); =20 if (mis->to_src_file) { --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450286; cv=none; d=zohomail.com; s=zohoarc; b=RKUBb57OJjMD0zitAAKiLek2mMYN6x+EptUD12fqNabGuWBVPdagOA9WQoCn2BmUEPrqzfVw9yX8Z1xkvXkJfexNiHQFV84r+0BI4C4XC+umny50u/ya12BITyudc/28YS+id1BPt4xRdz8pF8XAhgr1aoQN2/3oOcdTyecyKvI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450286; 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=q/mNNwnaGGa47jBNu/l/VsNCmpfLA9HBEoNXzcytdkc=; b=Bi7881FH31CvkPA2nrrhs/ZtZOWy+T0g8L6IMaw0717tvKYmn02vakhbmNhSaVzByuKfq07fipcQTTToDVp6BXM6OE4RCeLskiWez9NBZwKyVsuiS53NDFkbZpaFQrv0gHJmmF5kJyeGDTgtTkFsUSfooSxtPpGr4CdUNL6PW68= 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 1771450286728859.5423074126727; Wed, 18 Feb 2026 13:31:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7H-00077n-4z; Wed, 18 Feb 2026 16:29:51 -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 1vsp7A-00076I-WA for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:45 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp78-000793-R1 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:44 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MALiZ-1w3VAV1scd-00A7qy; Wed, 18 Feb 2026 22:29:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450180; x=1772054980; i=lukasstraub2@web.de; bh=q/mNNwnaGGa47jBNu/l/VsNCmpfLA9HBEoNXzcytdkc=; 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=phlR9fGhL/MerUL2IsLPcyNOk5wDgBvegW3JRXNC7XSNE9Sp85WLcKaRu6GSElTX WPqarW7XTVYA33EebinoYT3tDBfuyaf/eWYXYZ79hxhHcigPpHWlhgJo1oFvUnW25 khNgU0gYiXUoaDfe9QYqNcLi+K/u/5Vk4wNfeyMLPWXVdLqyiM06dQUgeJn3GPr6v 8qx4xfxX+Wkwlv6Ysz4TQYe+VJxi/Y4C/G5cZGbDElLkW0KR92Sln5wvmyW6B2Mca MMM1OXNapCupi7SmSJ14fFD8Cut4l6XrliFyXJ43FoGWrvG3RPq8KcIyFLve8d7Sa hIpG8vi1wjl690vqEA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:30 +0100 Subject: [PATCH v9 10/19] 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: <20260218-colo_unit_test_multifd-v9-10-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=Jo9ygbD9kqkeUyQ0JD+anPkAvVD/vEUQ7S+iY6iqDJE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli89fUps5yKeIoBi9++7dECnUjkPqLuYkqjZB T6tyn1xdsCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WPRzD/0RNes+Msl5UW764o+eaSThQi8cKgFmA0tveS5rmsxIiVggv5/+LG1I0d4UWy79UYKxuQq 3de7kkY9oKOQU3DsbSqtd20U6EsVB7y0Nw+fgsS5jCHpLqO2Fd6cyUH5jFGPYFgC9shKXE+iuuK q9ZjFzsNbo8Si7q3N06rTpYzkkmtNgHKSZk3esYfqYZKt3p4jqODoaCRg9P8xTaaKXzPt39l8m0 421Mo4ELLYOJJ0etHlqGKSw/c7TErKCvPVD6okCL4Tf2jMBcrJG2JR2ZSurXIE3vE1coOn44Nyt Y+jsNYMF6rEHuIoG53RN9DkHhVzpSMLAgkwfXKeMy43zNwB9PFgIOEJ+cWpE/RN1+FGtUy8ruI+ Uku1qsfxmAjuKkM2tVRQ8eTE9LWuBCF9P3Wl+Gw/JUtayFWGe3uxBaCTL+//lAkYrKlJv3rEcgm M2EFMXZF06PkQK9fvcmTbRrjt3snyovGFh2EGIBEeq6W0dwxoKNHeKoaD/kKo2UoWq2AOp9wBZ6 yFrB+GXvNk/+WURm3vJV4j2KRSAezyrEAgvtx+iD2d+/rnTcYa4v3LfXa07yWJ+UnANK2eM24oC QPSziyFssR8jwlD4FFGQHz1rUhqrjbJ6AlfakQ4FZMEaUwI7cy0j8XvZOnxmXq7/Y/O6W/cYvn9 /SqoUwjmtztYU9g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Ksa9PoqaQX1gqnikDJga90Q+PaJt5gDdLHL7vLGHjaFuofyQyBj WPbPvSv8vWEHiFsYTJ8Mx3RlB/uC1uxAat5r5VTYTBNUuwo51lo2XTekiGusoAXv1jlkVn0 oC8oQ+GcY5MTH6vCvLZflZYEVp6ghUDajbpWDORnZkHLIq8Dcy7Mu2VfFQjxjaKkQUTmpJJ HLrZVGewZqAi8acs8hFgg== UI-OutboundReport: notjunk:1;M01:P0:3v5rHVZx9kU=;vVhxZpVof2pD7rAltMa7eoaBX/6 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450288199154100 With colo we load device vmstate during each checkpoint, on top of a vm that was already running. Some devices expect a reset before loading vmstate on such a previously running vm. This fixes a crash when using COLO with Q35 machine. The reset adds 10-20ms overhead to the checkpointing proces in my testing. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index 96102c9d0fb3b60e063c81ce07b730011bc4919f..dc7cfa81ef7db78e3ee372642de= 48567c5bc06eb 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -729,6 +729,12 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, =20 bql_lock(); vmstate_loading =3D true; + /* + * With colo we load device vmstate during each checkpoint, on top of + * a vm that was already running. Some devices expect a reset before + * loading vmstate on such a previously running vm. + */ + qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450311; cv=none; d=zohomail.com; s=zohoarc; b=kmMvY8z8pm7HgG+z5o4P/AH6JhMYmib5kHi4FIgUqQxwHeB7yJBmZ1tsXFQnOv5CJ4wDBvlZZcBUWBUVo1cm+f4DBrrtfvzwzGOCogoK2j/NEnIxLrYMUBCn9rFxoHjsJm5rvrE7LI5O5GP1G47dgybxGYJUZKNJ5nBUyGFoVX8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450311; 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=YSxykUnLHj+SuX5ceNRivJWw7C8CFbfonhplWMaurEo=; b=PaLz+qPbE7riu8vET0Lyx760AnP4iHyh9pCD3MN84WpxHPTz3q7C2ykeIm1zRAeNy7bHqQio6A+x4OGwl95qt/OuR71FW3goZ9wkMgmFx0G7M6UjgcQLmbvPTg6NVacosdfb5xRyI4UoDVdgANzdLA1wDoie24uY2aPUO7tsm8s= 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 1771450311851652.0321892993549; Wed, 18 Feb 2026 13:31:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7V-0007EZ-ST; Wed, 18 Feb 2026 16:30:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7L-000795-QJ for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:56 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7H-0007O0-FV for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:53 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MPrPT-1w5pWp36Q7-00PTwW; Wed, 18 Feb 2026 22:29:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450180; x=1772054980; i=lukasstraub2@web.de; bh=YSxykUnLHj+SuX5ceNRivJWw7C8CFbfonhplWMaurEo=; 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=UodtQ3TnNyz2NVX4wX7Sh1CdTFvAgEII6CWTOOYvWX5M+wbfRIXORYO2koi7UZWZ jpqlLkcknnLnVO92Yz5RdVkOwHm3rT3S7+ctXYR7A05AMGRDpxMNgD4XZxKbh7qee hkZzoAYqTbo2x0VUa052aQuAf2eVFeKyG4+y+qho+OoutwgGtKqqJTwbn9hML/31r lkqm8ckhXe5HChleP22tss1g2t50V1WWtP8VrXzeLbGc6l13vktfkzTkwPnkjwjxv wP/6OsJb4PpsWSxjARLNLXV9/YGkVWrFVjKnz+fkEiATKH5pLBWmUATBRvPMcxshO m2YJ71huTmWr57hR8g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:31 +0100 Subject: [PATCH v9 11/19] colo: Hold the BQL while sending ram state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-11-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=1103; i=lukasstraub2@web.de; h=from:subject:message-id; bh=RA7Q8b6eDwgtboLVRiR+7AHIKPUv7kjwK/dVBwC/CXE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli89kqSzfu0OlO62PvqrFfFPLP+ZUKq21CEhr PYT/OYs58mJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WNSXEAC2BdjOxcdmcWTFUa6oSZKREkZhXN/BfD91jG0a12fvQgp/lPp8NcDJBRzsg/UOsSX8aMB CG9IHxKhb9g25h9C70X2TrI+ExtHR9pPETHIZ9Csenhua/70iqMEgsLmabUOh0m/if97AAmaLmU lea5p9obYKRksJzuxWPx3CgLvzVNNKP1mvjULiB1pKWwMHjd5KaflKsF+Z97Rw4kMJtf2hPiHGa 1mBxAqz36+d1+RpIk4IeSiUW7J53zl8F0o1sxPPNdUfCJ9anybhcGvhxOOimNyMjT2DFVOrq1dm VjYQ8Ydqwk2x1h0ydzNUXZ21iPPn7st4Hu2ltnxDNaXZnQbnYQ5RBEvPpBuo08/M6VRV1kDvRKF CLJcj2D8AhfD2ispPIIEe/mW6SL1hPneXNyBYeQ4OCe+IS+cl9s31M4r2BWvwYwYfhhL6CYat+W /143BnEqUWHCkyBI0jiveJviZWFxOCrkezXzx+XFCPo6l9+4bEpLdWwUaJcPgmeDaR3TArM1hs3 +mF5A2zOUyVOLh5nbmjsQt/6MGNl6AjPNwGLIh2+PQT+38PPpk1NzyVtY3Enyd73jUInCv5NQKh fQnI6XcyUrStQX7Rbk4r95Cr3de9eAkdpDKlbhLTAVkkOIqnowUFJBYhiK+tf8pCO2FFZhZ8Exc s8kTPqMazCgnhtw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:4ZwjbLRLTdPERLUmL8Ef6iDNZD/zQPNmkMHl3ihS/hiQRmxZUxn UjsnCfVQmd2hM1OjSkdqhkQyrNns50ONHE4Z9ljtygJ3enCiOPAP/hXjSB0oDceXxKkvkWc JoGgywg3yCixcniz0g3ZBXRBQyxaI02eOqKctMA3gjtkb9BXj7vtM8jrzaRME/GZaojEtUE SuE1rlmECjR8Sfse95ung== UI-OutboundReport: notjunk:1;M01:P0:ITJVklMEiZU=;oBnn6ArMS4GwWz1mq1eI/zH1Ftq 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450312234158500 qemu_savevm_state_complete_precopy() requires that BQL is held. This fixes a crash when running with TCG accel. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index dc7cfa81ef7db78e3ee372642de48567c5bc06eb..3297aa593cd9f87bf1013598464= cc581a9d23531 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -455,9 +455,8 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, =20 /* Note: device state is saved into buffer */ ret =3D qemu_save_device_state(fb, &local_err); - - bql_unlock(); if (ret < 0) { + bql_unlock(); goto out; } =20 @@ -471,6 +470,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, */ qemu_savevm_state_complete_precopy_iterable(s->to_dst_file, false); qemu_savevm_state_end(s->to_dst_file); + bql_unlock(); =20 /* * We need the size of the VMstate data in Secondary side, --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450279; cv=none; d=zohomail.com; s=zohoarc; b=Z/oVr4i/JBGJNAQxUeSqp5BdrXcVg7UFeteMbVAHlF2HJ5S/k5QsEi7Y7yEJyLPLrsGPZiV4T447Uw0irXvBBCOsCpUq4xZtiVdRc6oNWGT275916S/zAT80BoQSj1R1R0+QVGb5kYKTUTWDdsZiY3hf50YdqNk340bcrGPRItA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450279; 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=QnjLUeKSVlL/TnFvcfaE/7Aufpnl6G2wkPqvyU4/A9A=; b=F9afl2opvSlwh03cBWDgz0UnIdpSUlkw4CY2Zo5THOXpW3tfsUmEqILfnjTFLuGKn14XfAzSc6IoFtuDIMQEDKCerP9nVe+5VmwAPMgceSQBbPIu3wUyQm+44uwMA26PejIdY0Fo7DF2vACcs6FI36ORmySxD7//wy+1En5BOBk= 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 1771450279857647.4223626927796; Wed, 18 Feb 2026 13:31:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7S-0007Aw-Ok; Wed, 18 Feb 2026 16:30:02 -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 1vsp7F-00077f-DS for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:50 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7D-0007MF-9G for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:48 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N7QUL-1vhAtc07en-014YCM; Wed, 18 Feb 2026 22:29:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450181; x=1772054981; i=lukasstraub2@web.de; bh=QnjLUeKSVlL/TnFvcfaE/7Aufpnl6G2wkPqvyU4/A9A=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=S/e4yvyYWdFshAuB5VDtkx8rfhMQ+ijUG4Mcvhf9p9wM1SiOvDTojPN+q0O8W6z9 mmdYi6AYU/zvV+NsL+Pa4MpQ9howB5oHek1ncZQ6q/IgpFNjUu950VsCS2gtNNVAl C9OviuuwrlJN5WhCHDIVuk3eKznanIfmvIoNTLkutSCxjwNA7VuTUQuoqQJov98xf lgN/bF3qSGgj2qcJxYdpEVsu7f48UEGZHkug83MV/10TWWHi/tCpoGoKFeeSob2dJ ZMBPLUUbAiyN6n5/QenKvzYp4kPYmdmdbKBvC7D+drEy2S7negHGJlHtYTzNttB6t YwynoU7VXAz2BgJcKQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:32 +0100 Subject: [PATCH v9 12/19] colo: Do not hold the BQL while receiving ram state. MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-12-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1457; i=lukasstraub2@web.de; h=from:subject:message-id; bh=5X2xJUQOZtX1vrH3iSE65Qld5dEQ8f6o9Mt01ciNeAY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli89FnnLieXx+JgU+6GFeOCc/ryEUJm9XHkFf 3KpPPktAseJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WPMkEACvKlBXzDu7onM/kz7bokZyK0+LsO6tEKHAEOUGxi1ju/ZauQsl6jXvx/6JYJ+Sf8pTr+l S67EGEk5f8gr60oJk/cqesU3cK6k1ohWBKOuou0u/5PUHFUGdp0ACU07VL2XZHZqZTWQCPkPH71 LznlrbVnQTo92sGvR72AqpLDkroVY+FLCwVcbibbx5QbXFUXdOs5Sgzul1u0r+LDEAM0jg/0jTL KH1by/Q1sE4Nj1IeuNmvZHUsxobIncsRGXi5Fm5+GcT2xQeslnH3nq/WzUjXt2A34HjkD6qWB1Q Ym3oPkPYpkSa1aRqcP8RfAoaQVuokCUZUAuQQK3AVozkhot59+KB8Gp8kyLMl206/5Wb8P+KysW ptrT8hQqG/WwNBmOw3G0EmBGgq03n9t4z9yZeRjccpQKUDUh6nx4IwNmElbsNDu1jyvz8y+1xF1 WIMqrjPdYA+arSqK/cbTiFg78YIqSc3TvAc7jrE3lDK//zfC3y8jw9STYn/30wQ+tubX/GRec4M ZlqhSryFG6QQPkaDdE9Ta7itQbi7Ns5Vv/VxhqReWX2jPNsTRCmXfpWz4340jifGYSGexhzj+EL uNFSN8awUXMkyC5K+Av+kyCFiIfSgbagjElH2xtB7K5wKac+exUvg+dnI11Er77Y42yd5n753Z3 Y1bOlnRfVUZb23Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:au+99EQonQLBKUDFTpS5UqG6yvruO2YFUoi967J+EZcbd9f46KP GT7d4HMm1ge16nj86ROrlL3SVnZANWCqDl8DuwyiX8zcPiibPMvsD7Z2qgOCHkpiohP4vkO SsZog0M4ahR5dO5G9puLeCYB+A0lCGoLhMiYd0rPY60gdERcfzA4FYt9BnH8ex8ZZQiDQzV O1TVA1nYCEOU8ztQBM6Wg== UI-OutboundReport: notjunk:1;M01:P0:mAYf2D9jfZc=;UQmDe3XcIQXTGIz6eMv8gIUeOq6 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450282051154100 We only receive ram into the colo cache here and don't touch anything else, so the BQL is not needed here. Move cpu_synchronize_all_states() downwards, before we apply the received checkpoint. It turns out that qemu_system_reset() already calls it for us. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 3297aa593cd9f87bf1013598464cc581a9d23531..ce02c71d8857d470be434bdf3a9= cacad3baab0d5 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -686,11 +686,7 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, return; } =20 - bql_lock(); - cpu_synchronize_all_states(); ret =3D qemu_loadvm_state_main(mis->from_src_file, mis, errp); - bql_unlock(); - if (ret < 0) { return; } @@ -733,6 +729,8 @@ static void colo_incoming_process_checkpoint(MigrationI= ncomingState *mis, * With colo we load device vmstate during each checkpoint, on top of * a vm that was already running. Some devices expect a reset before * loading vmstate on such a previously running vm. + * + * NOTE: qemu_system_reset() calls cpu_synchronize_all_states() for us */ qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450308; cv=none; d=zohomail.com; s=zohoarc; b=IYtzns0HXImfxTnO/pkkK+bs8b267lGh2S0tcrOEAeMPDCW19a5tkg31gC7gJDJdNWdjLJrekHclrwLgIEapiXUkP1ZFVAGqo4KBGpT3sHt03FwnomA91mQ9HY9u1k/7Sf+5VKSOHByKigrhBMpIiszjjIo7NJ9+9yxH2URgJh0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450308; 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=yDiaSK9OpxS8V2pxAHSs+oO9Yxg0bwU7fddiiz7QY1k=; b=Jt/EokDy6/qjjh5fzCiyBCco19dEC7zAe1z11RQ3KcxDjfdfnnbZS+arwDmUFC8xpufIVOSZAVr2IAf5mPoGzqh5Lx3tvvhulURFFwpIplsr5Rnu/09JxFYzJJqVJJGkSgZxqFNKNdeeHQDcoNEkxM7m2l3PdXBSpalVLfTtU8c= 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 1771450308428979.2508269446873; Wed, 18 Feb 2026 13:31:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7W-0007Eq-EX; Wed, 18 Feb 2026 16:30:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7L-000797-RB for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:56 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7H-0007Nw-7M for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:54 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MpTxo-1vPEXR1MA0-00nIIR; Wed, 18 Feb 2026 22:29:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450181; x=1772054981; i=lukasstraub2@web.de; bh=yDiaSK9OpxS8V2pxAHSs+oO9Yxg0bwU7fddiiz7QY1k=; 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=Gfo5EhGZVAILfzQOd0zwJ3ZaqBMcT49j9+/glmOU4tP9kaczyn+Ankwb4jMMwx4m gwGzglt6Yh7F7hYiCdHlsiUM/thChQNR89LbpmhFUJQc9eiWdYTonlbOMmrZl7PDv XYmfKNbxSkT6N/Y2stxd1DzpZ/O1h5ACnkgF9c5Qn3oOL92/EBwJsZL2ZNX9/aNyG butvIYNnp5kfFw6jU5zstOBnb6IG6vTi6kd7YI9yVFSW5CEuwUXYZaXNOi9wkWD3R 08tAbwPLdbiFFt05BIhh9H+6z4esHa11OinqbMwuAE/HUNfZSSAepL6/YeJ7kYKOt w8RpIJT7blcg+cmScA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:33 +0100 Subject: [PATCH v9 13/19] 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: <20260218-colo_unit_test_multifd-v9-13-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10668; i=lukasstraub2@web.de; h=from:subject:message-id; bh=825HURWaTdxx68arWBum9/F1NbVpsOOl8RFvbUAzHSM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli893tf0jIN1S6F0L+fZz+duMCdcItYCam4f6 HAXDRzjizOJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WDI/D/0YVWuN8VMS+bZscTgjPRv7oc70GwdfyJ6axmvzLQOAaB59GlbNGEIvyGNwCewQHSJpHK1 c3Jmd60WxFEOMZo+k44wgY9Cb/X7vTrZkwJnIdPn0p2bpu/dErVi4vyxNttWPXQpPsLTNDLTpjn xrgzzd7ZYKvii4pAJLNVuaM42PXUgDPn/vZblvZatLwH2PdwyNuAdwksmOlMMvHOfrly2OQa7XY o8w5qjpoAAibWQmiwgaca3FC4ydBRRqnlldLjg5qlzWFA6ZGAkw86WoF60LcZ+oGRQV1awm7YHM PGsG66KPWEmcJ/M/FO0/F0tkICcZDFaD7s1ZSU1O3RMwWJw3ARC8V8cnefj78Wn4ireyB28YvOe dsZE/st4e4d5Zpkksn8QVH+699lEujxBHi48ZYPZ0zq4CSjD8fVVjyCVpXCHqbCGd4LEDQydVUM FUxIs5Bn/mflkk+x3qcPz2S45He1zrcJGEWSiOmuqz/Oc9ayzZp134K4pjdaV5X9Ft39zJjVPn+ FhuxkNFBVqPUEXS1CGJDfGui/ZH0EN8Vl/fDrXz24DhGPKOfPP1QLjBXjeZjSn3MSBwpEIxkah5 +wWJZuXv0sP2VChhKufANvFXF88UKpbHvIIy7tF4UgKNO+ixavPXeWIA1CXJ7yLpd+Pux6DHbTK Bjdx+jEjueRWM1w== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:D2PWOogeSI/G41xhbpI8zc5OZ/sYJH6yFmzD/rLj2lPD95/TlKK jsDMOhZg0mDNBB7g+wTQR9y73+xbHu33PBwUxD54PA4mjUhUVky/vgJWcgsPOnlwL5wHrFF AjExoZYon6d4JnMaM7pP8U9Rml4TJC/7jFPQCjegMnwntZFCFDAFLnPhKOOZ5gqy3h+xmRa 7lAJaW25lwWuTKh4uvUIg== UI-OutboundReport: notjunk:1;M01:P0:Qku4Qpve0JI=;q47It8I5hlvyOIW5dQmEqYUHnHG 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450310537154100 Add a COLO migration test for COLO migration and failover. Reviewed-by: Fabiano Rosas Tested-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + tests/qtest/meson.build | 7 +- tests/qtest/migration-test.c | 1 + tests/qtest/migration/colo-tests.c | 198 +++++++++++++++++++++++++++++++++= ++++ tests/qtest/migration/framework.h | 5 + 5 files changed, 211 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 5519ea4e163229a9bbc06318a0ee06d88ba6a8a1..a587a9233ac556a420f8784c4e3= 217e5c5b99f34 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3871,6 +3871,7 @@ F: migration/colo* F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h +F: tests/qtest/migration/colo-tests.c F: docs/COLO-FT.txt =20 COLO Proxy diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 25fdbc798010b19e8ec9b6ab55e02d3fb5741398..6a46e2a767de12d978d910ddb6d= e175bce9810b8 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -374,6 +374,11 @@ if gnutls.found() endif endif =20 +migration_colo_files =3D [] +if get_option('replication').allowed() + migration_colo_files =3D [files('migration/colo-tests.c')] +endif + qtests =3D { 'aspeed_hace-test': files('aspeed-hace-utils.c', 'aspeed_hace-test.c'), 'aspeed_smc-test': files('aspeed-smc-utils.c', 'aspeed_smc-test.c'), @@ -385,7 +390,7 @@ qtests =3D { 'migration/migration-util.c') + dbus_vmstate1, 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], - 'migration-test': test_migration_files + migration_tls_files, + 'migration-test': test_migration_files + migration_tls_files + migration= _colo_files, 'pxe-test': files('boot-sector.c'), 'pnv-xive2-test': files('pnv-xive2-common.c', 'pnv-xive2-flush-sync.c', 'pnv-xive2-nvpg_bar.c'), diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 08936871741535c926eeac40a7d7c3f461c72fd0..e582f05c7dc2673dbd05a936df8= feb6c964b5bbc 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) migration_test_add_precopy(env); migration_test_add_cpr(env); migration_test_add_misc(env); + migration_test_add_colo(env); =20 ret =3D g_test_run(); =20 diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c new file mode 100644 index 0000000000000000000000000000000000000000..598a1d3821ed0a9031873270202= 7cebad47352fd --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * QTest testcases for COLO migration + * + * Copyright (c) 2025 Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "libqtest.h" +#include "migration/framework.h" +#include "migration/migration-qmp.h" +#include "migration/migration-util.h" +#include "qemu/module.h" + +static int test_colo_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + QTestState *from, *to; + void *data_hook =3D NULL; + + /* + * For the COLO test, both VMs will run in parallel. Thus both VMs wan= t to + * open the image read/write at the same time. Using read-only=3Don is= not + * possible here, because ide-hd does not support read-only backing im= age. + * + * So use -snapshot, where each qemu instance creates its own writable + * snapshot internally while leaving the real image read-only. + */ + args->start.opts_source =3D "-snapshot"; + args->start.opts_target =3D "-snapshot"; + + /* + * COLO migration code logs many errors when the migration socket + * is shut down, these are expected so we hide them here. + */ + args->start.hide_stderr =3D true; + + /* + * Test with yank with out of band capability since that is how it is + * used in production. + */ + args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; + + if (migrate_start(&from, &to, args->listen_uri, &args->start)) { + return -1; + } + + migrate_set_parameter_int(from, "x-checkpoint-delay", 300); + + if (args->start_hook) { + data_hook =3D args->start_hook(from, to); + } + + migrate_ensure_converge(from); + wait_for_serial("src_serial"); + + migrate_qmp(from, to, args->connect_uri, NULL, "{}"); + + wait_for_migration_status(from, "colo", NULL); + wait_for_resume(to, get_dst()); + + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + + /* wait for 3 checkpoints */ + for (int i =3D 0; i < 3; i++) { + qtest_qmp_eventwait(to, "RESUME"); + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + } + + if (failover_during_checkpoint) { + qtest_qmp_eventwait(to, "STOP"); + } + if (primary_failover) { + qtest_qmp_assert_success(from, "{'exec-oob': 'yank', 'id': 'yank-c= md', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}= "); + qtest_qmp_assert_success(from, "{'execute': 'x-colo-lost-heartbeat= '}"); + wait_for_serial("src_serial"); + } else { + qtest_qmp_assert_success(to, "{'exec-oob': 'yank', 'id': 'yank-cmd= ', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}"); + qtest_qmp_assert_success(to, "{'execute': 'x-colo-lost-heartbeat'}= "); + wait_for_serial("dest_serial"); + } + + if (args->end_hook) { + args->end_hook(from, to, data_hook); + } + + migrate_end(from, to, !primary_failover); + + return 0; +} + +static void test_colo_plain_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "tcp:127.0.0.1:0"; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void *hook_start_multifd(QTestState *from, QTestState *to) +{ + return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none"); +} + +static void test_colo_multifd_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "defer"; + args->start_hook =3D hook_start_multifd; + args->start.caps[MIGRATION_CAPABILITY_MULTIFD] =3D true; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void test_colo_plain_primary_failover(char *name, MigrateCommon *ar= gs) +{ + test_colo_plain_common(args, false, true); +} + +static void test_colo_plain_secondary_failover(char *name, MigrateCommon *= args) +{ + test_colo_plain_common(args, false, false); +} + +static void test_colo_multifd_primary_failover(char *name, MigrateCommon *= args) +{ + test_colo_multifd_common(args, false, true); +} + +static void test_colo_multifd_secondary_failover(char *name, + MigrateCommon *args) +{ + test_colo_multifd_common(args, false, false); +} + +static void test_colo_plain_primary_failover_checkpoint(char *name, + MigrateCommon *arg= s) +{ + test_colo_plain_common(args, true, true); +} + +static void test_colo_plain_secondary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_plain_common(args, true, false); +} + +static void test_colo_multifd_primary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_multifd_common(args, true, true); +} + +static void test_colo_multifd_secondary_failover_checkpoint(char *name, + MigrateCommon = *args) +{ + test_colo_multifd_common(args, true, false); +} + +void migration_test_add_colo(MigrationTestEnv *env) +{ + if (!env->full_set) { + return; + } + + migration_test_add("/migration/colo/plain/primary_failover", + test_colo_plain_primary_failover); + migration_test_add("/migration/colo/plain/secondary_failover", + test_colo_plain_secondary_failover); + + migration_test_add("/migration/colo/multifd/primary_failover", + test_colo_multifd_primary_failover); + migration_test_add("/migration/colo/multifd/secondary_failover", + test_colo_multifd_secondary_failover); + + migration_test_add("/migration/colo/plain/primary_failover_checkpoint", + test_colo_plain_primary_failover_checkpoint); + migration_test_add("/migration/colo/plain/secondary_failover_checkpoin= t", + test_colo_plain_secondary_failover_checkpoint); + + migration_test_add("/migration/colo/multifd/primary_failover_checkpoin= t", + test_colo_multifd_primary_failover_checkpoint); + migration_test_add("/migration/colo/multifd/secondary_failover_checkpo= int", + test_colo_multifd_secondary_failover_checkpoint); +} diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index 40984d04930da2d181326d9f6a742bde49018103..80eef758932ce9c301ed6c0f638= 3d18756144870 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -264,5 +264,10 @@ void migration_test_add_file(MigrationTestEnv *env); void migration_test_add_precopy(MigrationTestEnv *env); void migration_test_add_cpr(MigrationTestEnv *env); void migration_test_add_misc(MigrationTestEnv *env); +#ifdef CONFIG_REPLICATION +void migration_test_add_colo(MigrationTestEnv *env); +#else +static inline void migration_test_add_colo(MigrationTestEnv *env) {}; +#endif =20 #endif /* TEST_FRAMEWORK_H */ --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450302; cv=none; d=zohomail.com; s=zohoarc; b=GSDpxgL557UBOjj1oMPuGisBMHJHQFKyc+92zrBuKqAm9bVBCTb/fDmUATKw7Z8ouVKRICZn7upxQit23exuJI0Z/av54XK7HNzGpsS4qRhenDbiWpssGHxSA5ODI8pERrb1D6RKq8YFV+l4HaNIK/sdr9AHr3ttlex9prXH6Zo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450302; 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=tm2GuqhPzDQglqiU9unalx2iQFmY16oh1Y5nzSaxNkU=; b=mOBSlwcsvcm9VpjnvBl4nBBPjl9EaTMzfCKBj/RZ6r820kVC5hE8pzuP9vgWr/+4CHQE3BSDdwRHpanTrdAlhLxU3Tu1OLq79zNd3X+ba7BPf6GsIV4iwe/uuj72Ce1Pqiwe/CJhAPRCr3kWaWYV3brL+bKFJG0r7RZixgBAAOA= 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 1771450302651493.61354882324497; Wed, 18 Feb 2026 13:31:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7U-0007EA-7K; Wed, 18 Feb 2026 16:30:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7F-00077h-Tj for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:50 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7A-0007F9-Nm for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:49 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MpTxo-1vPEXR2iwG-00nIIR; Wed, 18 Feb 2026 22:29:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450181; x=1772054981; i=lukasstraub2@web.de; bh=tm2GuqhPzDQglqiU9unalx2iQFmY16oh1Y5nzSaxNkU=; 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=C5GgVPYIrwS/cMM5VCJgKWjpGKbFafNdbEyWe15lvauLKY6y4pfp56dcNcC2V5UH uSd1y/2P29rPxSxu6x0KOY3zPK/P6fIQ+qYOo7SI0CL87EzP9is1hMVvdFw9Nx37v wZ5uDDWmn8pCVOsVK9hx4lofMpHW3EtFiKx7H/fCkXOxIDarwnjv9TRjBnQYCAV9/ XFG1CPIKUgk1Mk9IZTEVGCz2M8B96nYv0I47xgx4WCwxI3SIZHPdyXnyB04xIKhqb KD83eH6jCxg6cYIBcpkWlNFKFPfKcNSzvyzngfFsZORu6Ln7l5Q+ajUziB0cGkGeu BFwIh1zAJaokIMJrnw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:34 +0100 Subject: [PATCH v9 14/19] Convert colo main documentation to restructuredText MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-14-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=41531; i=lukasstraub2@web.de; h=from:subject:message-id; bh=iT0yKWdgPjIrLAMyRRhfEz9UKNNM/A4TaDEqfoojmL4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli89s3Op1koMrrWHxVi1Q31ZJXR/TCEx53Jg5 A3Q5jj0uNeJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WD+wEACT64dLdSh1KWxmITaySKUuXwEK/uCAvjW2rOwKOENKAOYBvlnuQlT5P+4CqHM69UZGxOX 8QZrWG9RkixmK1khZzByXEVWW2RWFPHaDQ+etcKBuLsgYyCSQUmbJgvBk3g4h2hf2mpOM3U9gao YP2JZg6oP8d65Hzq/toJRzjOLR42QxmS2MRGSzNmXljhsp38rbeq4p28AIxPLjcJVqrwNizSYo7 ZHYv+uRBoZVE13jEpaxT1TmCL23RU7u8M3t8EK8xTeq/+djZXpgqX5mxJzXJO3PdPB0a1K9TaGR Xht3L2lD7XSlQIrAgwj0q6ocFKYqUnmRSERWcjaTuZHQdcb9R+FU2TzFJ4LbN68xtsJyCurX8QJ PZ6L8DYyWYcw9vgPwTFCwDCAXHdpWnEwIHA/HnqP7ruMnHQswSwAd4EBsIlVLfwPT58qVlXVNHA lSsQLJf6/svatqasajLcF7ZVZRbecrsKo78dyuh1ca4bYTZI7fdcWYpWGekfjwlD+md9idH+MjA rcyz18IIBG5N7Fiz7A1aZtgYaUL8r+1TTIk0Ydb71fJqTRy8wjKFkLk7XgavVSUh1DHzLdE5DHh qsKZuJDBnJpFCqGz9X8isgciJeDC6YWXhbflq4vtWnM8o49oGXYcork9fjxCPRZSenKgyp6jKhy X5KuxDqSiLHN34g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:TnuxOyF1tXDehiE9FeIYz516BukuaaKW7aS8BxEhmgvxzKRwq8m CwLYwt+GIO+z9oWln41svvCN8GH4ZzAxSHf1L5m6XKkjL3NfZ3jpUuHvs3zJ/lG+gCFeMZi t/bjgOPkrRavPH4KY+H0xRcYN8lFzEORegHrl6GA7ggylY9avKmbv7ziNjalNZEY629FTJl fj807Oo7iA3sr/vZrAbAw== UI-OutboundReport: notjunk:1;M01:P0:ZaXaJoNGaHc=;ldPhBbBH5F1zb59yGbLhsZNfe38 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450304724158500 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 2 +- docs/COLO-FT.txt | 334 ------------------------------------------ docs/system/index.rst | 1 + docs/system/qemu-colo.rst | 360 ++++++++++++++++++++++++++++++++++++++++++= ++++ 4 files changed, 362 insertions(+), 335 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index a587a9233ac556a420f8784c4e3217e5c5b99f34..486c361ceac893175a8cb4f9ae2= e8ac8202137ea 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3872,7 +3872,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 Sun Apr 12 04:23:13 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=1771450288; cv=none; d=zohomail.com; s=zohoarc; b=PFW4jGjUlDYinQpx5wRqFly2IPJnx+WejNOYqGbXprUefyfs93CUbaomiM6vm7VQzhs4AfSwQJN0ONiZbHnpRkyFxggjEc5WpOODw4hs+j/HJa/H0YDWKiB7dIxLoZglSVxqqCjQZIbiwycfF63II9UqQlQkvUO1k7nnnCtAKZs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450288; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; b=SvHRTdgs4wZdD8ViFT+Z3ZfCAZTkxpaO6aYyZu/zhB6XlzIHI+qTFnYZmzLdRBZWIw6tPqiPeSOYpXp/4KxxJWBUJhmLfkNQF49sFm1xpdmXfq8NuDyJ/YUPQtZjrvNQBS2cKtc9MzCqt0hRI9Q5DxzAnNXVG2UpMG0pID45pIo= 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 1771450288068504.34930599646816; Wed, 18 Feb 2026 13:31:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7b-0007GC-Ua; Wed, 18 Feb 2026 16:30:11 -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 1vsp7D-00076p-Hb for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:48 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7A-0007Fj-Nu for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:46 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M2gkl-1vtdGM41Xj-000GU0; Wed, 18 Feb 2026 22:29:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450182; x=1772054982; i=lukasstraub2@web.de; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Dt0vV1jcXxcB8oWkpqEmkJgTkx3XpGXbqYXGr8l8R3OpVdxqkftE+F+yvlnh4sWl fZ8n59GgJ8FzfOqTSyBaRgeb3G1FgfsY9MwzgjkPbsyP1/4Di+G73PR5zkHR889nN 2/B5Kwel+vNai+/P1UtMubQB7MCeqdu4I98efSCoa7TJ4wzOk6weLNuE+S6Z6McLO okGxK/dq6XhQtGCp2fqAbQfJOX1XDAGPYkAMdn4JJVsCeMDuVcRqysJctd4EAwnxW +4hI46PRHqmNC7SnZBkHQj/E5rvRomeXjAvX2cWQGubt/hD90tnpUPnpH4/u2jIu7 8rh8OXCIR+aAv6OlKA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:35 +0100 Subject: [PATCH v9 15/19] qemu-colo.rst: Miscellaneous changes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-15-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3240; i=lukasstraub2@web.de; h=from:subject:message-id; bh=xf4Mr+LNhtrRhluncnlq21hBJuEc0CRkqsQ5PC6uWik=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli89yNUFxnW+hOn/1oA1JstAiPWDeJby+kMUP hmz1UjmiDKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WJwaD/4h95wEC+PbY6bfZtbpM5CGwYp6L51R3Dwey1cvy3YsB0EtPEGu+NyDrcaHgEUnz69fMEe JyCHGd/jdV+6BsyXrEHtP3WoD3OwRPLBfuMGhZvAxszSy51IPWzBxJwfVV/p2ZTFMegSocryQC4 9nURkQv6Gzds759uM923AQIG2Zgu8j1Qdy/p+n27A5nRp9coYvVi80SVJNLnkZHHmqIGWVy0caK fbnnwq6oukD/H3QcNwcespCeoABala9zsoc53QC29PvaJJBajTzfcqWSSuFbgl0qJLWLJNmPOtp XSJQvtIIOdFP3ornjkRo7kMBWr9T+VHro//w5AUkUBmNjXTc+ZdzQ1oxtRZcAIBfZVpYpKEsROF tRInz7yi2+Vs4QBJIEeYiQnwhLPC8nwKtzYuA6zdG+xVaXBAQ0DoI/EyPuDMHft6R6hUpgEuZKu b6uf9F8pU9kEmJTzCsI+tseuQAoA/oIzyyjCTlxlV0mJdeOxh+jQE2BKXA7sh90dxUXhPDSeY5a sAG0EVERBKG4KNnYgq6LeiaW5hpM2gnmuDjYAfu80IvESMISA2nUSckihVyQON/7JxXsMtV3axi JH76lGVotJoeXDcbHKRY6ubeQTntHl6bVdAySItTUWLfnEPaETzohxv/ltfvui+sSfrWi45a7Du oR2/CG3uvAtm52A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:4IcSdf7akiaY5qm99ouoS5JTH5fNGOOxIa6qcGmi4XpVkp+UBhA 3yyKVe3sWvBHIrJIV2fcYQo10pqwOmEhLzZqt+18tOX7ieP+fm+VhFmgbC7kB+Gr1dSnlG3 8cDHgOsPcpWryEhUEK2v69TxorfJrKmLJPyfsx8C8KYOG+dEUIykZmnQ4H52yImsdhHBKVS nOVCSHDKcFm/GhHMXVLBA== UI-OutboundReport: notjunk:1;M01:P0:sf9zR16kmAM=;NLmFkwQ0o7bmoWHczd16PDNTNir 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 wXNV0U/+frels0k28P/GDsBcdyqla Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450290181158500 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 4b5fbbf398f8a5c4ea6baad615bde94b2b4678d2..a70e61aa09391cda933031535fa= 982d27cf6654b 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -1,13 +1,6 @@ Qemu COLO Fault Tolerance =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =20 -| Copyright (c) 2016 Intel Corporation -| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -| Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - This document gives an overview of COLO's design and how to use it. =20 Background @@ -82,8 +75,8 @@ Overview:: | Storage | |External Network| | External Network | |= Storage | +---------------+ +----------------+ +------------------+ += --------------+ =20 -Components introduction -^^^^^^^^^^^^^^^^^^^^^^^ +Components +^^^^^^^^^^ You can see there are several components in COLO's diagram of architecture. Their functions are described below. =20 @@ -157,14 +150,21 @@ in test procedure. =20 Test procedure -------------- -Note: Here we are running both instances on the same host for testing, + +Setup +^^^^^ + +Here we are running both instances on the same host for testing, change the IP Addresses if you want to run it on two hosts. Initially ``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. =20 +COLO uses double the guest ram size on the secondary side. The Qemu version +should be the same on both hosts. + Startup qemu ^^^^^^^^^^^^ **1. Primary**: -Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all hosts. You don't need to change any IP's here, because ``0.0.0.0`` listens on any interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu instance:: @@ -192,7 +192,7 @@ instance:: =20 =20 **2. Secondary**: -Note: Active and hidden images need to be created only once and the +Active and hidden images need to be created only once and the size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge any IP's here, except for the ``$primary_ip`` variable:: =20 @@ -353,8 +353,9 @@ Wait until disk is synced, then:: {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } =20 -TODO ----- -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450343; cv=none; d=zohomail.com; s=zohoarc; b=L2hC7ASdwFR8yAUPaucmxenePGSnP8t6w/vXJ1xLW7zpzM1dYk+uSGGw4JKvUlZJSZJpwKNbqleWWeFLhe8O2C0Xk1fNzvzQiJhuHcspYNB6Po7t9xJHAUsGkQFdOK5Yh57NQkrkMzX+CccQ+z+f1ot9t9ZcmnhiNC0rKdBN0NQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450343; 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=ePiT2B9BwZTTr+vkjKUv/oe0P/V3jeP1Jzqao0QU6cZJfoIr7fhr5AXsl9bRuYzweqjgGAptO/Yam9HpFSvYgrS6ijTVM/3UCKpDbrCEq3x//gyWrLqae5pkuE749Q1CVTQ0RPr3dEE1s9GvZa6O5UJMuoPRQr/RJr14qwiqaug= 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 1771450343607649.2169745732822; Wed, 18 Feb 2026 13:32:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7l-0007JM-Bq; Wed, 18 Feb 2026 16:30: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 1vsp7L-000798-R6 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:56 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7H-0007O4-UT for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:53 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MsaWF-1vdLOn12S3-00rwzw; Wed, 18 Feb 2026 22:29:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450182; x=1772054982; 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=E7+ar3ohhw8bQVBCNVRsCJv3K4PUwc7t4UYn+SjaCjfR0c+Q8f9wWsIBu8XLWbGz /5dJeZBdJBHIfW7NPdJMmsWaIvIxx36tY8sxpm3zWUY1cXt2cNpiOf1jYg8laPCLt 7WKnZk4oiINXu38m72NnHkU6rYRitSV42X/XPg6lla+J1PjcLKM5NujUnENLm3CJ3 DQq5g74ebmCWOj0Y6oCxHBhbUDYe7AuPREX3OU+Lrh779P1us4tmsTZdZlRPPCb8S XCld9kqtCireZgqwZf5IJRKIhN0E6QykSCvVdei10y/NKTTHRcxF+FAry1cAeS5qC hu9MVwOwv7ZQZ2ohtQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:36 +0100 Subject: [PATCH v9 16/19] qemu-colo.rst: Add my copyright MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-16-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpli89zHDdN11Qw6qwuppDDo9HdeDO9bgfvD7X8 ZnihDZndOWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WPBFD/9lgZE7HfWXAFz3JOb4ZLhle7xt4ucACEDhxcRigOiNDA6OCcgrY2Xv/jEUveF6hfUXnXN Rw7iz+Mv/sCY86HUWzK8JgyLM2HK+VZeKYIsxvs3cYYFtWSStrhljZpm0lwtjvYZdbAzW7f2zC9 J30KQpmSrTz+BNmENDOWPcUzg1w14GemXE4ifSFuy0m/J9e9HrFN0kY85fI80alTiJ5dhmxQv83 4KK81I2AytB6SKJZIzEnW/wRkABhddTbJEkPmFnYnvmcuDXIpb02varkL1F564ZWOXWqtDRFxrb +oSkbxF5xeT0ulGhPHXcVZiCDTakRiGG3nPAs2Edb3Z6g3IRwkUDTEDCn9wGNAjT71t0ijNQJ1x dIBZT83+Ky1q7np81/3A7rv6SiTs8LX9s++IN+RIXgZohA+2TNZ5yH8jSpETaGOqCL1t6ufYqjq FEJ3wqULn4jitEnwyxdQd/XXbYG2JaRDXz1h9F3DLO13MoapjD2ppwT5rVShU3Aom3xcVN1ZFBT ZfntFPnV3E/hOJvedAiKc5z+CUZZQn9vBrxQvf72HufPjFKwcPcS+gzkLXv7P5keNGQoQeAY5pc D/5I1DT5gWT+5xOtx4RzZFNzOMlBEySj7skjv/lDI/CRbrvJYUmXdYBgIjWuhP67AMrL3C11wqO mPVJ7EPW3OEcCXA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:OToPzgOad+5DGlcOqArpteg/3BuXjsNoRPTKNv1G3iSezH2vEra OEtxEeKN0mE76Wz0lGSK6UMN7u0vxGfj73B4JJe8iqmL3c/Dq0Npuf656nUm4EmpdKxy4KR +zDBWztbj/Hv4fKweCqKqiX+tva4TiBBd4f/33wy8kTw2dMYnT+ehLKmBZe+6CCyhIhQEbS GY9q78tqtJEGONvyOQ6oA== UI-OutboundReport: notjunk:1;M01:P0:v2uhjcqRmHI=;/mNoc2OQu66spM0OeeFhVMF2Q7C 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 c5jXzHp1okmOx7/lxpwsSjPhIu0LXa0BkZYMv6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450344906154100 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 Sun Apr 12 04:23:13 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=1771450242; cv=none; d=zohomail.com; s=zohoarc; b=j0mcccHYnjpAm08FFfTX4KJ3jKh+CjuT+yJkoidkBp61XNEsm2pJaAKSEWkWz0ylyLFEsnTcYMOSQSwrPXGnXxb54WZ4SeaTq9ZqAxFQH77Fr+HRiG6pYjVZWkmn4KqNjF0UQtliSIXBdO7byQo1PDXsiCEokRjmxgv3rY2ubi4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450242; 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=OkU8tqzx23XhQVbXVfvOMWhIj2MiwKizIrAUiFepUbxZv570NHtxOkQOi9m0O43fzfaKSwNmY95VENdZ/88xZak/ceo4M1PA0f2Z+DNk0gqkmzn66wXC0nIRfq+rT1xTBYFTjQ5ErBIz3AC6vvzXlEk40kYpzj3g40JcUAqGOvE= 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 1771450242029231.86463511706484; Wed, 18 Feb 2026 13:30:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7T-0007Bn-Hw; Wed, 18 Feb 2026 16:30:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7L-000796-QN for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:56 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7G-0007NM-Gn for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:53 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MlsON-1vSFbZ2L9n-00lOTw; Wed, 18 Feb 2026 22:29:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450182; x=1772054982; 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=Hup+Gy0r+3rMZs/Ej195CeCNITMWSdi/v32LOS4JOQexetYkw1DkuvJgNMx/ydHX sveV++aNvqjKUFxe4149k4gCktaHCXPBEZjb8+RihiPkwewZFx+2yMi587uXJHDl5 zKlpbSYHjvVYP/uZiq6pBGhWnpOz/65spTdLYZLAtq0fpKOEF5neJcjmHYwOOpVzj 8EIESNH62f2AmRKX4a4p9/7mTLvZNijkutbjWY2dswD2dyn4VJImilVg3CRbkePsR yQCD4YWC34wT7eKsDPPZVnVrQ9ST9/eKiWREudjM8mRqE7Wq74c5EYVMNCLtyAJFO pIxKPi7VSQiYhVicYQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:37 +0100 Subject: [PATCH v9 17/19] 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: <20260218-colo_unit_test_multifd-v9-17-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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/ZANAwAKATWrCyicXbJYAcsmYgBpli89ZFJ7XgtlfxuDJPjT2KcsIX/auvHyhPsM7 KrNXbg+9lCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WD6iD/9PaKhloaEc62rifLMdr2w0j6S1B6tbXdr95/LsvCdxZjbBFg5WJJjbEX2lcyv81JtSOHJ joCfVNK+cngFHvrNPFltwOBtL+ZTU8N35cXoK1ZoQdp+cYALOOIo9r9LBBzEoqrvzVybNHwhhJC 1RIir1ur6GYrbANPM+iHyABW4jUC7zTX3SBkn2sZu2DM4KrD8H2+KprhVgy0cMtRJi8jc1n7P29 rKUtBWEHu5gXlEDMFN/dn5ZY+bkScrWPRo/ZUOrvKiuO4A+O0KNUHszv6nJBeqlHw+CZqLjZbuS D1S1rSrhn2rb+U30RBZNCiBqZLLAagWYHqpWAwVVPExy1LxWiplsUlCRBqwKwinBoceHm6lSHbC YOr7ICzWcI4vMX4FvuH5JGhrKSH0Kml9lqanlmnB1I4P70SUVLum1iwlWFuiEjOkamNmxhuq0+8 LDDW+EmwktICOaPuvP2zCvXqei+y+/lRtpsNVRGnO2WrF/hz/gvixDTIiGqICP9+QPKoBq1yYbq 7uTsqSygrrxIm9f2bk8RSY9qHRMoRYpose7vLTdUzwoSPiuU3hYI+tf+s5YtfMWgEiMlvx6kGVQ qC3SuUtiQV8Jusc72jUYVD0xg/tmeidCCrNf8NGc8PCPsMMg/a0JMNLrNlyN12WaUEZQrCvAb5c wSXiEiipR98rj2A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:0xNRNpF5gZOb+eKXv0oyOZcm6tqrMa7T773HNdJmGQL2rY0Vm/a q3C6sugqaQ+EInJH40zgMGK3kVFUcQsokXKHaG274iD0BtsX+by8d1hpW2rKnZmL/N1hwkh vwzEIVTt24l0a9y7HX7f03ooqnXw7yZNCvdts0AzYAOalFIIUy4bOXQKyb64Asl147OYETI 6CGMbCS7JfvkmP87G8ZRw== UI-OutboundReport: notjunk:1;M01:P0:+YJc7BaInmg=;P8yH+R94lvmOlcrpCPUkcG1nq+g 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 iqUmb/a0= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450245619154100 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 From nobody Sun Apr 12 04:23:13 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=1771450331; cv=none; d=zohomail.com; s=zohoarc; b=H/SWTUJQaTbTkuQ5hE62ifnIiv1EXt1pkeF/EElPkn9kM4yRbddFuFGuklKaBqazmBKd3IeVJ3DIV4xgXy1ing0nLuh4PLpaEeFQwX+QZdk4+a45zyLWtry6TemwbzYqmpjPQUkwKVLSmsWOzS9DvLhy6wFcLtBxvfBrtjV7Rfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450331; 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=Nc4MoQ5UkwuBg7fNoiu5u0pRXBu41aadsmkuWZWusLA=; b=l105QPvWxGLOz2uKOvKUpHQFL2ClLH78ef1EpooYKRsCd/kgV37505QAQBlE8uuvmgr8MycNFvc6GxpHGJElWFKA0ZudsWFLRaxZ5YLaq1O1bSPHYfpwo2ehyeyvSoZKPssM4xHhHNFE1saP8Q8Gmsywii/Rl8wjHMksqX6aKfQ= 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 1771450330960518.9894853700399; Wed, 18 Feb 2026 13:32:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7d-0007Gb-1g; Wed, 18 Feb 2026 16:30: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 1vsp7M-00079Y-VS for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:59 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7K-0007OV-UX for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:56 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mm9VU-1vSWr03YPY-00mDQh; Wed, 18 Feb 2026 22:29:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450183; x=1772054983; i=lukasstraub2@web.de; bh=Nc4MoQ5UkwuBg7fNoiu5u0pRXBu41aadsmkuWZWusLA=; 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=aHRs/uIZzunXkvzrtGZVc8ZJCtQzPGSxVSwyjoEAeNLJsJO07LJYBfQPOMMPLN7J D2WBMRhOwgdWeoMJR+UEZOHtF4+mn1ADOvceiVj6/hDJxC3wD5UbGzB3noj97R/Ir dqvi3it7aspW9GEd7nTLtdGgsQdzr7qpIfMapm0sCeIT/YvNhud3j7lyE3VMwjgA+ fG84AcC4h6kjVNUUgdkO8OKatwY5gu6OwjUsI+WUfaIExCrTuxXlxZVrdlbQxt5re PqOuCpLlT9H6zff5aDyFe8Mypr95zd9+xKga1KOs14sNci2/woYuksAC3I6Ubq5Sy O5ek8PTdnWwd0llRrQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:38 +0100 Subject: [PATCH v9 18/19] multifd: Fix hang if send thread errors during sync MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-18-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=1081; i=lukasstraub2@web.de; h=from:subject:message-id; bh=IdmQMOTONed9jm8GP2TtOdP0FdN8xT93mBHs8Lu2bWM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli892WFthe59sWNeZ64fy1MBXuxF1HnSROy6Q Iffgjiti8yJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPQAKCRA1qwsonF2y WOOXEACUJ8t2dJE2wRIlismGOzmc03YAWnlpjFMKTc2NZNX4l5nuGnMcPaaHkEt5Kwa2UfegTN9 LtCN3DUD3jnjRrNtDL8UpTqfXt5ELANq7OyeSkpXO88OTw++wrzz+9pq7nX+1tVYiFSuAQbivda ty3rvnIrnIhbxkwgOvcTBuYOHM6IMe81MpRn7TCNU9XGI7zq8BcFCuFPQyWtZ0If82Xz6EC468d Xj6gSaFogcgBizsBr/vmC6qCyZub/Pnnntn1NqgXnHgoPmwHdCgER6ehOYRtu9Fcu9/K6mTa2oi tohnsswJf1W+eYb/27YuL2TZm5vixEJEYNC7R9bHQjWnD0Iq7u6oVYa2m/STUM1SjgdxRy/pq6s 2BLe4E0wZwjXRzjOOKUOzNMOtG2rqmDe4GXT+0WC3naJZkgVSU7vQjns/Cl7mlBpNzTga8KqH8Y 6udqSAAzF+HAtOio6IXkVV/BfGnzV0eBNtYT5fO6I6n0Qwpfo7UvPqX5pO0wm2lN9wHMihObwCy yRpLgR1XdnPNS6sETmJYfVUnceaXskDHSxkWVy9knO8Y/lg+osHQet+p01+VnieT3xewzd1I54T KmCaSCO9BrIXXrSJzxmdAbnS1i9ZgErqK4iJX7mJbM4Cwy1vf4ltPCLiqiZpZA+JBInFjvZItFE WrgOk1o9LZCAWBg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:ZPoGPHE5o/w8Hptnn8YCvWObRyHX08sd9tp6r74H6LIlxFhi+Z1 VYhka9wcXLsRJBLyIN5EeFGtYaDQik3xccwqgKjZJ8VFpG2R8QmA5KqoXsxFOExpqCLi5oS 2AB6C459G5SuR3t9BSTOivgtn2l8HCFN8SP9fUXH8ySjrWVavxlrKUye9P74uRRQgKOicMM l7g5p3Y9GG8Z55Tc4RITQ== UI-OutboundReport: notjunk:1;M01:P0:JaDs8Q5T4Ls=;1zT8S8KL4WpFSNpXEWD5XCkB578 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 xGvHYgt8= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450332938154100 When a send thread encounters an error (as is the case with yank), it sets multifd_send_state->exiting and the other threads exit too. This races with multifd_send_sync_main() which now hangs at qemu_sem_wait(&p->sem_sync) in multifd_send_sync_main() line 647 as it waits for threads that have exited. Fix this by kicking the semaphores when exiting the send threads. I encountered this hang when stress testing the colo unit test, though I was unable to write a migration test to reliably hit this. Signed-off-by: Lukas Straub --- migration/multifd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/migration/multifd.c b/migration/multifd.c index 220ed8564960fdabc58e4baa069dd252c8ad293c..e8c85cb6c48deaee2c9bda7b821= a976166d78c9c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -677,6 +677,7 @@ static void *multifd_send_thread(void *opaque) qemu_sem_wait(&p->sem); =20 if (multifd_send_should_exit()) { + multifd_send_kick_main(p); break; } =20 --=20 2.39.5 From nobody Sun Apr 12 04:23:13 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=1771450370; cv=none; d=zohomail.com; s=zohoarc; b=Arpqz0iGC3vAnT8sLIVFpL1UR/QXyilIvkriY6D1wa2S52NXqQNHPYKQoA9580KnIociS23IxGXVVWtIjXAChTpaah2Yu+lgvX9WEVgTYszGwyJ0V9lUBxbYgkhsqHAOBht5ruNusjjwm/AswFOGbVcZOxaa/7ltXK+QltawjVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450370; 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=feJXsSvyoUdD50huC4V3ZMVTPpDBRHkISZPRsoSX/jU=; b=YCV5OGezfgL2RwlsClYiNKIwKJEc65RmZVNVCexUsZMygp6ST7fdabKE/CVB/lJRCzhYX/J/V43xgPSWvODKCV9PW1XRmFxHcNWagNe/ywHB4XfEC9pSSCbZMC/QhA6Me2UD8LxdHgkacejwLdEfZsHBL+lEYOFnd7QwnGYoW5U= 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 1771450370817748.8694126647175; Wed, 18 Feb 2026 13:32:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsp7L-00078w-KQ; Wed, 18 Feb 2026 16:29:55 -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 1vsp7D-00076s-Le for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:48 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsp7B-0007Ix-J8 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:29:47 -0500 Received: from [127.0.1.1] ([84.133.37.84]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N0Zns-1vVwbz0XcS-00yGfH; Wed, 18 Feb 2026 22:29:43 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1771450183; x=1772054983; i=lukasstraub2@web.de; bh=feJXsSvyoUdD50huC4V3ZMVTPpDBRHkISZPRsoSX/jU=; 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=oH56S5cEmUd5+e9q/AU+IVgJffErwQgmWJFjc7rlMujgwrl4RinN4xFLmFHCqQYU bKS8jhhF8LbZ8hylCGSqtL1wZ8Cy4offtNBlsn7RO2I5dg+nl7oEUYpmIDr67i8I+ 0FAAfDn+Jw5iFZAOzdOoWph0chre2UsIms9TM3oug42WQ5SQtv2NnRbhqfLmhMxP8 mC94xJ/6Eec/gnMU1oxsgTJAmg/kofha2s5Rrkt8Om1pEa+dRlUnXVHcIw/4sPDAD 7hvFdTneuEvU1xgjwJdgJcO0Ssdr9q2AkG23Q0Xra5OpixZJRz6Ji0bz4oeyO0N6P Gq4/37BZqz48i5g6FQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Wed, 18 Feb 2026 22:29:39 +0100 Subject: [PATCH v9 19/19] colo: Fix a rare crash during shutdown MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260218-colo_unit_test_multifd-v9-19-d8dbdb0ca6f6@web.de> References: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@web.de> In-Reply-To: <20260218-colo_unit_test_multifd-v9-0-d8dbdb0ca6f6@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=2571; i=lukasstraub2@web.de; h=from:subject:message-id; bh=t3eYA8ZfazPubqKxMFFkqU6p4E35SXfiyBm0itioh7s=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpli8+osIyjDVqL7f8EZUmSrtytacWtNtxsVrMS d+uf5JQj0GJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaZYvPgAKCRA1qwsonF2y WKo6EACM8BmBb0F6MipBaGn5TUBVKDG5DowCv7Edj2FcI+LZ4r8GXgdxEzY79mALGmWXulxSHqn MOdh1YhGMBJIN7rgAdIIzb96+Ba6UApTac3SuDpC/4Igvg6NF7y3UhS4m5sXUDaXV8BmIM7jaVc Wb1i1qFBnEYFilxArt/htba6iKa9huaNKyZrEX+KglmRRJ3rEo4hoAp9zrtj45iBwwuZQwKwkMB CU927Qw4qhsvVH1zotBm+tNgTkcU6USFJwVbh8j90mt3coifhySVy529kIObmQakMNgtBpS+nH4 Obm26bG+4D+VnhWbp4FnqE/HlYYZQwXv9ROaAx2rQclyi2tV1EaW/6nvrwxM7SgY5wkvoybIDiH PJLd+2LTCX0u27ZEcP6Zmet/8oM1xbX/lOtYT8IwnFO11zdx+iwdMKVcgpO3bktMNUpyYru2yYM B9YwU4dQgB81I9lAJTkeTXnvu6zzzZ2l7j+XzXQg1whEK34FM9MXlNqqbMISNlgsDXAwfy6WL27 LRdgYppcmHKAbDi/3WBbq7GlKhUIzfs8YTSOYI2M9tGKgAokdUGilhg6IzyKaEJdPCKXtsnZjUo jSZlWCph8eVLuYyR7VchZLVGj9d8C1WoLInv34fzwqcQcmBO3zRYcmes5LwJJfkLDGdEFAkXshA 0Q6pZS80LveQ1Bw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:o4nS8b2rxN3Kp/sd8ZLPD1wu0d7/TfmrhyzuphZfKNRfN51mVUn 3XKo7eF/XxgIY/JiF+QwNIAgF27RCZuRrnjytZbgtj0N8B1dhdt8vGpjMwOk/Qi695tZ84P hWTAsjd9zjUG3OsX6E+0K2cmJe2hDXnM8d0I0a33fsFRcPaTFhzOqhPTwJT+agpdQrRNoQd 6g0pvltfESlnhipiG6C4w== UI-OutboundReport: notjunk:1;M01:P0:7e62uTO+Ybk=;q8ywrD5B26zlc0RVUA1Dscgvnhs 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 +k1RdnYU= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1771450372539158500 In the colo migration unit test, we shutdown all sockets with yank and then stop qemu with SIGTERM. During shutdown migration_shutdown() calls migration_cancel(). Now the colo thread frees s->rp_state.from_dst_file which races with migration_cancel() checking for NULL and potentially calli= ng qemu_file_shutdown() on it. Fix this by taking the s->qemu_file_lock. Signed-off-by: Lukas Straub --- migration/colo.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index ce02c71d8857d470be434bdf3a9cacad3baab0d5..180793fe3f25140fa10887acc3d= 87515ebf43ac9 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -173,11 +173,13 @@ static void primary_vm_do_failover(void) * The s->rp_state.from_dst_file and s->to_dst_file may use the * same fd, but we still shutdown the fd for twice, it is harmless. */ - if (s->to_dst_file) { - qemu_file_shutdown(s->to_dst_file); - } - if (s->rp_state.from_dst_file) { - qemu_file_shutdown(s->rp_state.from_dst_file); + WITH_QEMU_LOCK_GUARD(&s->qemu_file_lock) { + if (s->to_dst_file) { + qemu_file_shutdown(s->to_dst_file); + } + if (s->rp_state.from_dst_file) { + qemu_file_shutdown(s->rp_state.from_dst_file); + } } =20 old_state =3D failover_set_state(FAILOVER_STATUS_ACTIVE, @@ -544,11 +546,14 @@ static void colo_process_checkpoint(MigrationState *s) =20 failover_init_state(); =20 + qemu_mutex_lock(&s->qemu_file_lock); s->rp_state.from_dst_file =3D qemu_file_get_return_path(s->to_dst_file= ); if (!s->rp_state.from_dst_file) { + qemu_mutex_unlock(&s->qemu_file_lock); error_report("Open QEMUFile from_dst_file failed"); goto out; } + qemu_mutex_unlock(&s->qemu_file_lock); =20 packets_compare_notifier.notify =3D colo_compare_notify_checkpoint; colo_compare_register_notifier(&packets_compare_notifier); @@ -640,9 +645,11 @@ out: * Or the failover BH may shutdown the wrong fd that * re-used by other threads after we release here. */ - if (s->rp_state.from_dst_file) { - qemu_fclose(s->rp_state.from_dst_file); - s->rp_state.from_dst_file =3D NULL; + WITH_QEMU_LOCK_GUARD(&s->qemu_file_lock) { + if (s->rp_state.from_dst_file) { + qemu_fclose(s->rp_state.from_dst_file); + s->rp_state.from_dst_file =3D NULL; + } } } =20 --=20 2.39.5