From nobody Sat Feb 7 04:55:12 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=1770408351; cv=none; d=zohomail.com; s=zohoarc; b=mVCgUiavD8SbWGGDcXCQqIouVxdV2n5nZxQBHOdn2gbPrZSoW1+EmIU4by0e2emUoFfNnVGyJjUS+zRts9f5fYADNjzXXVYVt8Bfx9KW7SuRi/9H1Rvv/0vSPldjiceQqcD22epDAT4m1q7hADTkXXaOmxs3LBgp0E0Utc/iTpY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408351; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2fLOiQss7mpS/YnSLXytum1S8EPo3MszBelWBV6HFKs=; b=JO0V9VpgjZTZyWJaFvXkGHqpNE/WwvoIOF5nIoY/RP6Hf7C5nAYtuIcVbbRJ7zdqjD/D1y5xorSiFTY8SZ9fLNPN6DOVEQXjkIn0tBFkZvUkVgDxP8QjCkwHk52QIemzN5pXxOx8ojpd9kdp8L5PA13mjj3VkWDmtK5spj+fudI= 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 1770408351746125.18446945797564; Fri, 6 Feb 2026 12:05:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3b-0004NH-8K; Fri, 06 Feb 2026 15:03:59 -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 1voS3I-0004FP-O7 for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:45 -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 1voS3E-0008OY-LH for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:40 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mav6t-1vHJDd0oeJ-00bJ73; Fri, 06 Feb 2026 21:03:22 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408202; x=1771013002; i=lukasstraub2@web.de; bh=2fLOiQss7mpS/YnSLXytum1S8EPo3MszBelWBV6HFKs=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=CHp2tKC9nszsokZO5mMuhFHAt3eApYU6LbmWWKbypWjjyDPm2JOW3su8wxzhMtHy Q+8hDEZsqmoRGrRcTNGYNx7/yMJBTO/Fks3LyvEQ5HPDe7Ix+NJ8tOKT1CcpSycAy 01+d5IgbkQj96yMzGTiNJxDl9pmx+sN9ooknl8EiWypTii3nVpPgFsnybFW0a8Tsq 2UgPWmeQRJgSG16Pd/9h6z2Ty/Dbx2y5csit8KAZ1h3QlnJ3IhNTwWlAhyR+u5nrX aaZtxtQfNeqK7gr6LuEXU5qtDDFnCQX7RBqMzGQ7b53mHdaFFuC4U26qnVtyPGiSO l3W92J82tI9JfIX42w== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:02:59 +0100 Subject: [PATCH v6 01/18] MAINTAINERS: Add myself as maintainer for COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-1-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=637; i=lukasstraub2@web.de; h=from:subject:message-id; bh=FH2/0egZipw9UBAskN0KxY1g2vT4HwhIXXub1fgoQvs=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFAdXWhZQN6ngXg5JL7mHg0QeSNfwq9nzRX xl6iWjFq7uJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WPaOD/440vDov7sxTub2GvNpzekob7MiaaT/WyikVIGRjmqQR1NAQrF8391WHMeXlpD3SEKLfCB AbbPjBttmXi7uqrM+cHzF8HZT8ZmjPFkdHTMYc2Mu/MPAzEo5jAFziFWnTzTHwPvde2z3HN/Dhl +txQMCiyTJmCrHUXA2SpAgJRIZws05+IohW+X5JgNvG5I3MLojN/7RC7vOseQSSOdWvtgGnqGki tAIPCEAIdrMDYkpE26BxupeN39iCLTRuE0Do7ZI64dOuGbZmYKTQJQwfOh9RhoLQ3D3Hkjq12Kq UEW0hOQU8XvGZYm3oLFDzAiRJr8wcOESIqG1WCtk/2H5rrXoKT+KX4XX923j4iMhpPMsHiKwXvV Yhy5PGYJElI/HrvAxYE6PUTkVc6aypABpWKAHnnFITPCGBbnymKDWcHY5qTKc6PNXMDnMP4OXC5 4ejQwnKemXvoFcXkjBap+tveQ0UDsPdFEV7bdGpvSd06/BIF1W9A6fRIauhsfmZUZQ1CS2OlSNX hId2hKIinlMVC//dllG/P8jds1bbFnAuQEIINkLCaIeKywUmQG0NzAeuyWjEooCHBRt1Ebgcdq1 cLr7qyRDu2c4PK81tKaOANabP+RjK22dPvJ1zXflTvxaQ/lAGGWEY5YHYYp/0Q85bbavF0l0hlR hvhNwA2EAu3c4YA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:dm8AP0b8IXrPMUkPaJrsCT8kjQwNdBCWlaQSyOMvNb3+W4EqUxi zHN1nAPPebvurCK8MkeqhCOsHQJR3h72S/vmM4QglLw43ThjIyqprnB/6ZEnoPXL+adugFn Mkv6KJgJGqfOIlLYZuRJ2NyQLFHpeff8TnJ6wk9pWLr+Tz+Jj0aH4D5IkrjZqtzki+8ElvR 3YIeyocrqVjWK96cc0iYQ== UI-OutboundReport: notjunk:1;M01:P0:GtgoDNEB874=;QTAmhy85PAC7ArhytPSOwCG9hct 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 an8AWWvI= 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: 1770408352904154100 I am ready to maintain it. Reviewed-by: Peter Xu Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 9b7ed4fccb1dd0572abbb52ecdc9f0b217fea13a..a9b29cbd528633b25adb6ed7ab2= 162a2d11b179f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3849,6 +3849,7 @@ F: qapi/yank.json =20 COLO Framework M: Hailiang Zhang +M: Lukas Straub S: Maintained F: migration/colo* F: include/migration/colo.h --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408374; cv=none; d=zohomail.com; s=zohoarc; b=WHbZLR+Y5rbdsx2YhfF3V0nvPDjcSe+qsqrYxCkguxdeI2Qzyf6xw8p1hsECD3A6eydcXE9T8VsRXgDUFiVaygBAR4BX8M3pNIQ9wZy1EJ4wfn3sQsKuMPyuQyACMLcznt8c0r8Oq66kF5wpJZnNUfp/pnD9A85ElJ+hjFnfOIw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408374; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SIsYoIOUBzpJ4PEyh0nc52NL9mD2skAsvSA7Ee6VW9o=; b=OmC89gY6oJ+iQobPQOnRgQfClXvDdaKiLu8WR2YqEekLeV0ibYsfp1b1c7SAxyZn+fhVx2HJvKN+fY+gZv7essRQ7t1z4ZKG9UBvaKF9oriEdxITJa3WrRVZ9JGLMdciijTyqM3zbvInCtWbHyIwtHdVaEuvG2xTMEWbKLWaTYA= 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 177040837414693.87379842332496; Fri, 6 Feb 2026 12:06:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3a-0004Mg-94; Fri, 06 Feb 2026 15:03:58 -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 1voS3I-0004FQ-N2 for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03: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 1voS3B-0008OB-1p for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:37 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M59iy-1vnM7S3YVI-002EkA; Fri, 06 Feb 2026 21:03:22 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408203; x=1771013003; i=lukasstraub2@web.de; bh=SIsYoIOUBzpJ4PEyh0nc52NL9mD2skAsvSA7Ee6VW9o=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=HZj4NOIIRieqokKFOGLhMIQiby9la5c1VgA6Qnw76jS1JZASjUzLG0cHfkNh1k5P h9LR6WhqLL6iUUNwn7OqK2DWNxAehs2zzztp/W5RRcj2aXsfF6wU9AFKqQMl+WacU +VS/uVQbCLs3EQpRcm+2TeERK4oxu22yJfXlhZXlb3jaINhH7NzYepmNtueO2NTMj nWGke/lpzpuTDWqyLTbpOt3C+1rHriv9Ot6aDBBLn52K9fKj41nh5xQN/cj4GkeKi Vlkld5pvOqOYTQbne6Wg8wR19Jm5LkPwfagwOTJyw+2a5hqOQ6eYzCPbx2UnbnElH BmD7Q0dNx7iUe1iJyg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:00 +0100 Subject: [PATCH v6 02/18] MAINTAINERS: Remove Hailiang Zhang from COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-2-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=747; i=lukasstraub2@web.de; h=from:subject:message-id; bh=akLtAizr0Rulj9FVksSEosvDq4TvXIp7Un4kokIcchA=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkF9gZOgz1M3at1A0+XyQVKwsk+Z5hiX8bW3 48oKUb9vwSJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WGT8D/9o1nl6UW6Qa44jYUqXWFKSv0V7vedgG49J2utVxW/pFLyMFYO4Iq3vQPsGkmie2C0nnQ/ 5ZZiwF7g0+bZ5VA8/GG6qNG/hMWhF9cZT2kFGCwbp6V6/l5OnMomqhLzqc0DA4TFZmRia+uO+fm uAcTfi52w478NZEhJq6dm9a8LEe3S6Y58r6UtUpQEw9jbcBFKCWV0hfuvR6MYs5h+IsY6zC1yO5 VPtG0ApN4LnWnBcsphK4IH4KJdpUVfXvzas0Rw4ruBvpzHBv5LbpTt+b3DzLUGo5a3OWdYc3OuA 25ESrJNrF7PRmNrMoQHozfK/JnRjrI2nwLV9RxYMIu8Mig1h2ZbJGVpZU7LelCqyaSFXrAf70Dq 4Dd9QfbWB5dGBVTCII9Gfo/4umnvw6xAsiNNCGfvsaolW1pTBk0OkkonF6oXMHT1EmMEX3M8UZ9 nimPgf6Dszv5E9jYeT77fTZNX8N2wkdoLrHExZDDL/Z5lE03BqJMjwqd/Mglw5vcHyObRmS6GbH DM1VbvmdRJpjQyO415LCpPygomf7OXAtNwj+9vR0oiguyjOLvVQLfyJyX9lvoEcfajCfmyym74L hclYpVDVCMj82IqKWFxO3yYJld+mY54yGclLZUjRksZIlxKVETEBTUIf1JRoukUr4lta4FqwhYy n2q/OH0X83mh6VQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:XuvNxD2pY4W6TNsdk590efCqtLFTG0BijqVSkbHT7+5aHlYPgde kIEsnImPFpFEbcZwHP+jM/A1/p8t4oKoRSGY3O9DTTEaPjwgf7Oce3VT9fhK1rqeSkhTlLy K2760bLUtjDgE2bMl1J7KQzeCV/JRCvM1mJPJi85osqY4WDtxYOMox4keOZMRvdcNB116i+ yATT3nFDEciFO0WWQpwDA== UI-OutboundReport: notjunk:1;M01:P0:3dS9WMdb3nc=;rEcnHbXFIIv4NLPUhpsc+kfN7fQ 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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: 1770408375302154100 His last email to the mailing list is from December 2021: https://lore.kernel.org/qemu-devel/20211214075424.6920-1-zhanghailiang@xfus= ion.com/ Reviewed-by: Peter Xu Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index a9b29cbd528633b25adb6ed7ab2162a2d11b179f..ea170280580af6e3ebc586c3cb9= bf6e144b30c11 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3848,7 +3848,6 @@ F: include/qemu/yank.h F: qapi/yank.json =20 COLO Framework -M: Hailiang Zhang M: Lukas Straub S: Maintained F: migration/colo* --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408307; cv=none; d=zohomail.com; s=zohoarc; b=WW5tV+ERWgJMvtKubswFBxrPzeSGS4P/r8YPayULkcuNLY3f3sS+OcoGcy60gCNBio/I8MIo4O2pQVk7bfzY00MgI+nhUxbTwJuVjr4ODCl8KFUHKwW7nfrEFQAKGJnFYSzTXuy0m8IDCCakCwf0FZ01NClgp/UfEpjha4yocY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408307; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=g0D4GD0whMF9S+29OO1evM+fgXXSpdPHCqCK+yS42Eg=; b=AlcuD8oQCthXK3LX27DSFxZhnCr3/mzkYfkkPYvG9YPqNuSVjLOTWmEbWz4yg5J9+ZM+9vd+66eoCSTaRU/HDBSz+R0AiSW2t+AEtFL5pbps2Wsg87nJ7SajrmiFxJoH8vNmmG75acaO9Sce/lmK60/8yJkTo1VHbnXi7rV2Wyw= 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 17704083070151020.7542779291795; Fri, 6 Feb 2026 12:05:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3b-0004ND-2m; Fri, 06 Feb 2026 15:03:59 -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 1voS3O-0004H7-4f for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:49 -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 1voS3E-0008Og-LT for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:45 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mc1ZT-1vGDI41vFH-00aCeT; Fri, 06 Feb 2026 21:03:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408204; x=1771013004; i=lukasstraub2@web.de; bh=g0D4GD0whMF9S+29OO1evM+fgXXSpdPHCqCK+yS42Eg=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Re5dQ8JihhnOoGMY6YjCWEgJlSwWR6cW3+H2NR94PR/eTgUrscTZtwecd6+L36ST RWxGjyR1U3o5BHb8b+sNoyvhRVNIQu6mAtqNkdIDJCPd992DmZgFiDAzyERAG8BVl 8C+HRjq4SPeBRq6/1xVp4jg6S/E8e0OTHLAPnIAMaLpPcsWnEIxdfsp+ft0gtEub1 KJRq5v6xgoRstEU42mD8kSYeMZRfzC7S3KWYWFUSeN8SU5iEo0eSG0HBiZCI2dZMK WniYylUTnsYQSVHBEXEymqvYKYt+Ll1vkbaSzWExEt3uXeBk4FtvDHsodpLCa4B48 U5LB68rPBGpVaUH3eQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:01 +0100 Subject: [PATCH v6 03/18] colo: Setup ram cache in normal migration path MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-3-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2711; i=lukasstraub2@web.de; h=from:subject:message-id; bh=1mMhTslV7cg6iKWHsOFtaZSmCzWFWpfBUGInMbVbPoU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFp/X9e5Izv5rudSlKljfpH7Vl112iblnzW 8mwMHAAtkiJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WEz1D/9vy4ArN7Pw+gWv7+15avPP2gfb8QDJ7ey/RBRiXo71OGINlpjs6dPFX6tXz3mOWAvphBd pm16//Df5RKh6+m65+o+5/qHiZTvVnRWDlQ5tyDp/726JpsZ/ssg9STN8sa5cVm2hnRfFqj+8PQ JApoWEul2pUkaAH2qto2538DydSAyBJgipxeX2VboYP+K74yaMshsx+lVHzgoi90Q3OJ2u+DOGL 2UT39GQS/wWj6OAtslsfRdjQN5+THa7BFwww1mgTo8SkNOsnRl4TrI+4V2QfKhZz82OTkp1gV2k E6fRc6nYJiJvePy2SzMakgfe8xxFu7gYK5NMfUDsZO+b1gQFSqA7U0TyGztEuX7NBJNyJYA0dVu HZP2KMN6vFqp/6E5rJMFqt8WwVj8iJde/YuV6EUF54bAR1M+YERf7CQAA4Rd1NqVnb+573WnvJL IOLS5VcAU6THothS4/nY5pBaUThfEHIkaK36WOFpCJUwdrFOMjWdKqBayQI6VP0yMwOZyRPcCuM Zp/QRQ4gAjazE12Fun3ThD0RoVHierRfttr6jXkYUlHg1b7ZaabdfSNBvoJmKPdwzihVjJWlNKu MzBshhnuS6/35vJmYTTcLO8mNO/AU86Mn0P1dSqb0KfqWjxOKoXA0lpMBQalJIm375XDrDUW0/6 NYA5UdTbzhBSAbA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:jDmw6TIbWrezAN9DhH216X2lGK6Qe9VsovURSoj06nGqPYmPuGk VLrHHBYo/+tmCidno/B6hMmCrXLSWqaANOjgjStt++tFLwc9ArocurbKs9BPcvGi0imz1f4 +X6nvxVymv5DbPVwrz6CeHaP/KufYHrFK5sURcYAvjd15eu9Bj8c2SDem8LRiKST5hVy+tW 8weGICdmXhGzujH5MJ8fQ== UI-OutboundReport: notjunk:1;M01:P0:I92XF7PN/LM=;e7alJZU9V1veBH5HPEmGFKzmsu8 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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: 1770408309512158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Use migrate_colo() to initialize the ram cache in the normal migration path. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/migration.c | 18 ++++++++++++++---- migration/savevm.c | 14 +------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index b103a82fc0b83009d01d238ff16c0a542d83509f..a73d842ad8b060dc84273ade36e= f7dc8b87421f3 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -630,10 +630,6 @@ int migration_incoming_enable_colo(Error **errp) return -EINVAL; } =20 - if (ram_block_discard_disable(true)) { - error_setg(errp, "COLO: cannot disable RAM discard"); - return -EBUSY; - } migration_colo_enabled =3D true; return 0; } @@ -770,6 +766,20 @@ process_incoming_migration_co(void *opaque) =20 assert(mis->from_src_file); =20 + if (migrate_colo()) { + if (ram_block_discard_disable(true)) { + error_setg(&local_err, "COLO: cannot disable RAM discard"); + goto fail; + } + + ret =3D colo_init_ram_cache(&local_err); + if (ret) { + error_prepend(&local_err, "failed to init colo RAM cache: %d: = ", + ret); + goto fail; + } + } + mis->largest_page_size =3D qemu_ram_pagesize_largest(); postcopy_state_set(POSTCOPY_INCOMING_NONE); migrate_set_state(&mis->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 3dc812a7bbb4e8f5321114c9919d4619798fed5e..0353ac2d0de819b6547a1f771e6= a4c3b8fb1e4ef 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2407,19 +2407,7 @@ static int loadvm_process_enable_colo(MigrationIncom= ingState *mis, Error **errp) { ERRP_GUARD(); - int ret; - - ret =3D migration_incoming_enable_colo(errp); - if (ret < 0) { - return ret; - } - - ret =3D colo_init_ram_cache(errp); - if (ret) { - error_prepend(errp, "failed to init colo RAM cache: %d: ", ret); - migration_incoming_disable_colo(); - } - return ret; + return migration_incoming_enable_colo(errp); } =20 static int loadvm_postcopy_handle_switchover_start(Error **errp) --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408289; cv=none; d=zohomail.com; s=zohoarc; b=JPiDr03DBdMlT/q1o7PsByeYLAU+KEEC5qesI4XNdFQPJo2notEqMIt3bS9DnPZh2vF+mOkZR7ZLo55kcx4c3Ot1JBwc239mZ0M5wbh9MP18oNsvaErroOxEhrJy0VrS7bnugTWfSUvwqlK4GvlKNmoejQjejmfP+3V2bCBK17k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408289; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=acIbGuWiYVbHQzrhTfvGmU5crz8RI/HnOnsie89+6bU=; b=S36t0aN1Qf8L5G9sBBL7O+xlhRvjziBaIRDF/flG2kj4LMkCfGeuAmR+icoVm2t4Kj2x2wUPpwGn5haQwDK2G/zJi1gtAuwZf1dlgb21mxJOQAlXhHlXJl1dH30Eslr22kZ67AIJSYchxgkQHnRgqWnMPxZIODZDkKuqYSMMO/E= 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 1770408289294975.4310575923433; Fri, 6 Feb 2026 12:04:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3V-0004I3-J2; Fri, 06 Feb 2026 15:03: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 1voS3E-0004F4-Tf for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:39 -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 1voS37-0008Nn-7o for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:33 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MbkSI-1vFwJ81yNK-00ZvfY; Fri, 06 Feb 2026 21:03:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408204; x=1771013004; i=lukasstraub2@web.de; bh=acIbGuWiYVbHQzrhTfvGmU5crz8RI/HnOnsie89+6bU=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=CDRwYoLPOs8iI9snbf9XRCJaws4u/VrzXSMduiOJG4p9iiKyLPgLkIqXCWHqnZy2 Y3ar+xWRdtWh0jrPJqGOo2BBfnGWPoU7MqPvQTiYoZAU+uLJiB0ESFEa8wzK7/ncO lm5JqDkdJtkkr+O5Z/E2QCSrA1kP1tIOeRH70b0BW0hOkOfvWKL5SVvGXlmWSyk1l R+32Cs3J+WMtzzgWR627n+nssg+G+oXqFkHeJSxpIRUFVK6XAlvMOem7y71oO6dK4 8IdvpzOMRuwOt47E5q+KwoCiCpWZ+Y11Oh7P9kJLTviGSt/I7A+EkDtgdHqJhlgju pfJ6gQhPm5icc74qRA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:02 +0100 Subject: [PATCH v6 04/18] colo: Replace migration_incoming_colo_enabled() with migrate_colo() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-4-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3490; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Xy8q5Le+j2M5D8fLVu4VkyakFnaluhNaPAzEkXoWOs4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFkWnVfD13rCkFdPfETMlwmTYO+tMVY3NU3 RmYgOVVRm6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WPcXD/4988xxbBkg7MUn3K8kaBm0vDR6OGN586/xa7O6S4sNwdYQiht/nCXKejsv/Tz64O0AdWZ ghEyO9L9asvS/ycTmEw05xICasZ9Iu6bVrmUFZI1DLtqFjzTQm1gzdcw6eU+Cyzu91mOVUo3Ds9 oh7PCzhJRDUYb16ZcaoQTX5KK/SXeOzkpc4PYiekwCRP6WC76fV3a+zqSHDHtOB3w5D8vQruPRp Nps5otKJP2ToiXYgUGD66z0kY6jzqYA5FVPTOf45/F3vwAI4pCN1WFZZB3dUq0vUjq/wxNdH7WW fz36AlxdHdwo3ZTZwQrLWWAGrchLFCNM/9ATJtTlTOP2sdfm1aMLwQyN9V91Hp1pg5RnfdANcFo 0alrTdh0R3KBOTmBo7gIrIkkLvlpNi357lwbjE9mmkft4p+NcjGNPjzJarGXdlVrYYNGEK2jxVx NF6G82K7kRWiXMxv0flq2FPFPJEYXlC0SzcFybXaCiCVUkWDy3EOHHff0ZVi91XsoAzWn9CI/Kv JYPRKuqI88qflqz3+p93wGlh1Hfu3Zkv+Zrf9dRXFfA8CaX+Fa2V9g+RYZOhJ80UWd4Wihk84hK z1OytnlHlwBgnt81VbbXDs4xJqcZvtCkZEnBWT7v+7HSP+fyoLjcRSQ7sw32eHkk8X5PDXNeh2R ji671RL5WEZS1gA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:js2DdbFDkU7pfAt1zKgisCVPm6sm5PxU+e+YV626jVoXHoGKBnq oiKnl63zC+LG8L24N0R6kGwKfs/kCkw6VEaC/iT7JeVzovUcMy1cHy8S6oEfo/HIE1URpO8 D8KceYFQ4A/tTz70Olv8MR/67koUjQUEJPGnP9NYbkN2SMd9fPFOWAGfimSRCYyHL+mTlvK /tWQVc8LcUn8ByYRbBDuQ== UI-OutboundReport: notjunk:1;M01:P0:j25ZD2U0yy8=;PW9uJN0RVFD5WqHEdLLUBOWSlvz 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 Y8paBEJg= 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: 1770408292049154100 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- include/migration/colo.h | 1 - migration/colo.c | 2 +- migration/migration.c | 9 ++------- migration/ram.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index d4fe422e4d335d3bef4f860f56400fcd73287a0e..2496a968cc1ce709f706c0efe57= e4f765f163d3c 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -27,7 +27,6 @@ bool migration_in_colo_state(void); /* loadvm */ int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); -bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/colo.c b/migration/colo.c index db783f6fa77500386d923dd97e522883027e71d8..8dfd39b035c48590fcebeb20459= f01fb37fb67d1 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -933,7 +933,7 @@ void coroutine_fn colo_incoming_co(void) QemuThread th; =20 assert(bql_locked()); - assert(migration_incoming_colo_enabled()); + assert(migrate_colo()); =20 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO, colo_process_incoming_thread, diff --git a/migration/migration.c b/migration/migration.c index a73d842ad8b060dc84273ade36ef7dc8b87421f3..bc8ce64ff5000b0eb634a20b22e= 5f3e3289b9707 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, } =20 static bool migration_colo_enabled; -bool migration_incoming_colo_enabled(void) -{ - return migration_colo_enabled; -} - void migration_incoming_disable_colo(void) { ram_block_discard_disable(false); @@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque) } else { runstate_set(RUN_STATE_PAUSED); } - } else if (migration_incoming_colo_enabled()) { + } else if (migrate_colo()) { migration_incoming_disable_colo(); vm_start(); } else { @@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque) goto fail; } =20 - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { /* yield until COLO exit */ colo_incoming_co(); } diff --git a/migration/ram.c b/migration/ram.c index fc7ece2c1a10f34aa5a91f58cbe42ea418d7c078..aebf77aa0b861e00516d6f1090a= ebefdd0d97e54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f) * speed of the migration, but it obviously reduce the downtim= e of * back-up all SVM'S memory in COLO preparing stage. */ - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { if (migration_incoming_in_colo_state()) { /* In COLO stage, put all pages into cache temporarily= */ host =3D colo_cache_from_block_offset(block, addr, tru= e); --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408294; cv=none; d=zohomail.com; s=zohoarc; b=UJl5fUnkgnjEkeyxZfhYuTMfhlsoWNOZ2EEB1g+7dJgGrx0iGrZAJPKGzc5Z5XJPFuggQsgDhzntawNOYxjmG+wMchcfzCPWYHVg2CjJ47/L0OzmFuXdqsCwhcLE92BqbAGrNtFS6VZjyec5vCHibzPti5mdt5JKcASC0ZzA148= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408294; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CnwVz8XWBmqHpe67zT//2crJ7bk/SW6My44mPIi5+mw=; b=gpFpoeeJBx+aqY5GxWwclEZ8v5KzsNvMN9rTBOBglGQLH00EdLmVBz5+91R4u/u4dFAlBSPULgg4tiU8bGYwyKkdxBnSKLDlYzgHJDJOC+SloXYMxjHWDFNds2D+la8rVo1tmkFRnvPosnBfA62lgGnjpq7qqWTvhYr61REIj4I= 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 1770408294525897.3211939440206; Fri, 6 Feb 2026 12:04:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3Y-0004LJ-7N; Fri, 06 Feb 2026 15:03: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 1voS3I-0004FR-NI for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03: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 1voS3E-0008OG-Lm for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:39 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Ma0PY-1wI8Yi3J12-00X5PC; Fri, 06 Feb 2026 21:03:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408204; x=1771013004; i=lukasstraub2@web.de; bh=CnwVz8XWBmqHpe67zT//2crJ7bk/SW6My44mPIi5+mw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=EfP+bzg5MGnxJiIAP9XCIdg+mLmXzBR7EjtKdPYksS9UxZUhJB2zg32lbyS2oZHJ GRSLp4sXurEOCReLZ8M719yFqRQljANlwskk85DksAr1XMtPfrCLIW1CLq3bNP+dm bvRBgRiIsuYzAoZFYEkc4Jrb20QetSGbf1yPDnmbX/J7IND5nB9A2MVox/3V4gu96 IkG3ii/5Dq6b6W+oR+HW5Rlk1YvKn6x1nXnyQpxoI88/2yL2LP2XEwKyakpWfrkIW TW6piWWuKJ6crR8roo+uKJ/488NFFBqtdXiN6R0SLHjwVoE2AgDmwiA19kUIjLtwR S8BOqURXYjC08//ibQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:03 +0100 Subject: [PATCH v6 05/18] colo: Remove ENABLE_COLO loadvm command functions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-5-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3390; i=lukasstraub2@web.de; h=from:subject:message-id; bh=SGXPHYdQMG52/VIHBHNTHrlp7HQYjrDtfkgWimh5FOg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFlsBSmyK79MY3XD9eDASQgxzl5fZBy1a4i s6NXma1voSJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WF6jD/wIwgLiUglv0R9o/mx6HBzkW822NGIKEWKmF1Ed+LNYMdzG5akRFhRZbrZ5Iu9dIds2dr9 t3OwpKhu5HDZ+s4Yb5tpTXNMxwd42WJIEITHrtvRc+XG0TWQN6+GtxAvW6F2X50mhhzYG4VOvrN y+9BU0k9aaIBiQLVHGFY/8duZm4vwTWaPit44/kVkvhB6eAPdc43uOg7QecgRGI/63SRVPLpCCj Kq4thztxmZ7Xh6fyw4Ki3KmbsCgnK5H0SH0gvS3DkbJNrqOVPXiHnLwo/q+2Cot9YoL+X2uzmpf wg03yi/n13iTSTSkYx2wWnDWE4ZmdHGRflFJHbs3MZbVZWfc5hfKacycP5W4T+CQAV622oVtlLV laUU6zbFEDxGV2mcZuTZKiF62uWIkQicRRMeqNDOOwLAB3zZmCIjhTko7zJKCNoi54LIRPy/+3n LYOeBrOzh+DLsU6lEq4OmtIJfO3YX2POP0avtVKq8Sd24cnffn4QWm3f4r+13bStYZFX33cJEDe Yax6OPr2IpArP7Cd5mxU7jJk68nOpA+7NA0rF3tUhT4IfZ09rJr3T6Ks496UX5NuIm74gBFHcxR 38Kd9Gvy9Nm32blF0uWGVEz1YgBjLoHrFSRbS6e4Z4Tk2RI5M2vSl2BWNys/nRJDRfNGK9VQXzZ chXleCb2ck5tdGA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:wXdRUNlEKpfnHOkDQ76dMv+ZJiW7FsjSDcKJVkRMmCG5BbAbg8P Vd3+AqMYQ+Hg4gt8V7Y1kyYZI3f7BRnpxBlH+AuCzh4DoqnwGo0E9GME2+r09mgLLN3lQ79 ZYUQrVk4bg9k3rKcyDTMe+AEdxByCQVnOGfCkoTpAOtiIKUyk7e/4Rh/ND2UaZVJFMyr+PH ToMo+hZ+sdYzkdTw+MyeA== UI-OutboundReport: notjunk:1;M01:P0:MBflqHW7uYo=;200T32OSy5Z2K3F7hGyOSowscMr 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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: 1770408295374158500 No need for it anymore now that x-colo capability is required on incoming side. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- include/migration/colo.h | 2 -- migration/migration.c | 26 -------------------------- migration/savevm.c | 10 ---------- 3 files changed, 38 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 2496a968cc1ce709f706c0efe57e4f765f163d3c..8f94054a10760d0f2598f080643= f45f9944cf051 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,8 +25,6 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(Error **errp); -void migration_incoming_disable_colo(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/migration.c b/migration/migration.c index bc8ce64ff5000b0eb634a20b22e5f3e3289b9707..3f3fc5276bb067ae1960e4b675b= 33208ad641b23 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -604,31 +604,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, return migrate_send_rp_message_req_pages(mis, rb, start); } =20 -static bool migration_colo_enabled; -void migration_incoming_disable_colo(void) -{ - ram_block_discard_disable(false); - migration_colo_enabled =3D false; -} - -int migration_incoming_enable_colo(Error **errp) -{ -#ifndef CONFIG_REPLICATION - error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " - "replication module is not built in"); - return -ENOTSUP; -#endif - - if (!migrate_colo()) { - error_setg(errp, "ENABLE_COLO command come in migration stream" - ", but x-colo capability is not set"); - return -EINVAL; - } - - migration_colo_enabled =3D true; - return 0; -} - void migrate_add_address(SocketAddress *address) { MigrationIncomingState *mis =3D migration_incoming_get_current(); @@ -735,7 +710,6 @@ static void process_incoming_migration_bh(void *opaque) runstate_set(RUN_STATE_PAUSED); } } else if (migrate_colo()) { - migration_incoming_disable_colo(); vm_start(); } else { runstate_set(global_state_get_runstate()); diff --git a/migration/savevm.c b/migration/savevm.c index 0353ac2d0de819b6547a1f771e6a4c3b8fb1e4ef..413688b75f4bee6cb10878eb518= 86cf6ba14872d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2403,13 +2403,6 @@ static int loadvm_handle_recv_bitmap(MigrationIncomi= ngState *mis, return 0; } =20 -static int loadvm_process_enable_colo(MigrationIncomingState *mis, - Error **errp) -{ - ERRP_GUARD(); - return migration_incoming_enable_colo(errp); -} - static int loadvm_postcopy_handle_switchover_start(Error **errp) { SaveStateEntry *se; @@ -2528,9 +2521,6 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len, errp); =20 - case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis, errp); - case MIG_CMD_SWITCHOVER_START: return loadvm_postcopy_handle_switchover_start(errp); } --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408308; cv=none; d=zohomail.com; s=zohoarc; b=IDUvFGlangl8xrrswkR8WmjH/xwKZXNlzYy4HKpWlZXHpOTk37VSqZ4evKijvJ3F18rgG9j/enMVk+H2dbGNvXEJyk+SDditGk4BljqE6mH8a14eH1/FcNfXrc5cng7UjiU+s6fhhFy9BtihCSQBANinUKbLpVGwES68L75N1aE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408308; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VrcI6PxuZ1L8eXHQm6VvRgueKLdx7DyhK8LwdtUh5f8=; b=RqS8dxeabWMCjK4fKonz4qFw9CCka7TZO9Fufe8YXjBc1Gnag2a0BFzIvxiWB+N8JbtF3QYv1RhKUjOav4j/4QObVHnv0FmKBqraG1aB0vgs40Gug0g8vT5OSF11K7IogxfmAoirXuFMA9hh4QBUUUH/MHFQOb+RUOywjVuWyT4= 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 1770408308843955.3152888892848; Fri, 6 Feb 2026 12:05:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3Z-0004M8-Km; Fri, 06 Feb 2026 15:03:57 -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 1voS3I-0004FN-Lz for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03: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 1voS3E-0008OM-72 for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:37 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M6pUQ-1vtPrX0KaM-0050hA; Fri, 06 Feb 2026 21:03:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408205; x=1771013005; i=lukasstraub2@web.de; bh=VrcI6PxuZ1L8eXHQm6VvRgueKLdx7DyhK8LwdtUh5f8=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=tRjjrul/jPqMkAFmvmVa917tbu7AxII1d0++2c5KE4JFBNw+Pabvez71ooEJrNfs N9oi/JikweHzYCAw5XUxuXffjZLLDktK4fj0oiz0Ol5NGe/hxpYvjGbDB/Dn5hIe1 np57XUbwKMrMkMBN0y71OESR4G3kR911f0x2aSmzqia9mM5gJ2e9Xex7GCRM9lopR a0i0JV2Onp9J5AhJs0/2TKsjX70Qy9pxMhO5OyLBpy35DY33CV8X1Fp6Mu4Q/4Idn 5f3plo7wbYM8qkrcLPaRQrDz+VPW5XMvcYdZhKzj7lrm3RPusaryP0du3Xwxd8Pax gtFKxlxTpO1Gv8fh/g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:04 +0100 Subject: [PATCH v6 06/18] colo: Don't send ENABLE_COLO command MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-6-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3335; i=lukasstraub2@web.de; h=from:subject:message-id; bh=nZTC8zs4apfQA4GAvORqUb4bbhPSlbWQnSJto/VqfvQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFAEJVKHgyp4IbjBlSKasUqhI6EoAlBGHuO d6yTpolpe6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WH3rD/98xYjQZP89QHLl27pHLLAipUHhN9PjpuMamLQFaU/So6xmBq8pKl2MTZLZX8ZzAcKOU9N eHG3MQpOs9+ZgLfslqu3VUFHNMlmZj/ClFhG8Zd8laXFLn38vbO0PuRA99lGMVavPV2mWzzh2Dp l1Bw649MNjpv2ImEwFtvp9Oa5zzuBiTWO/dXkKvFsatvlKR2PdnJKqmFDm6Lcqm+Ga9qbLh8wHX 8Zj1cC3T6w8CbQg7x1FXRY7Aw9s1ku2EPphpa/r1ywg1t0x9xdx42cN6a6rSFp7zD7SAVce5DsX JiloEIx9p0Ttxf9ItPOwHi7tex7lLk+aALxNqihJKfEk/x0eNOuWNDbtDsNxxSMRVbKSYf8YMfW TR0OtOMcxXZiaOQQaWySf2+/6K/6eS9ZQf0x6oAD7UT5Wu8sUWmBAMMA97I/vg4SRh7/dbwpP+R eygLu0PCJsuVBVQ9rYmiSvPoBp8n5MgGCqe/o7ZhppczGkG7SpFYUOaHvYtMXME1epca9pyoKyE ixqYWZv7ncXxwnbBvnk5Rg5Fy5C4AmEBDTfMfs8LvcUC83pDOQxl4X/BJ/1yywslnnlLUHu3YCS k6ewglbmZjGhRoP/Li3KW5AlNbj1mMR+oSK9icpJpFLlePytuWB87PNHMMLXwO6yaSNXsvacg6k r4XNxr2JRIz6fOw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:79V5jId5uJpE4TTvgzEUWYoNmI1kQC1KtqcaMkWIyrR3Hu/JRFU c+ygyNIqgBUK172mdRiQgnOmH6Iv5i0PMGJTt35SHd/EReJoEXyt2wjoE/KWezm2P/8o5it NhNdeeJrnO1EApoj8Rzlw6SkLjFddPhtjJE3q/1pQG0LdaNbv8qGD8Vqs0vfUu5HroqHkNQ 3FHJCu+9jwflPvrwCiUaQ== UI-OutboundReport: notjunk:1;M01:P0:DvBlSfMHSCg=;LMO2Vqe51J4nr/TJtxjbu5pjD2w f5+OFDuqNB2QNDQfHsa+RA57osiVIIxJxdqTzN/ZvadT+/dR/ixHkG1NnMx2Sfio7V780a2hX qDfNHXXwOJrJF/oZ513nBdnYogklzY1d/4nk+PStjLQbth3zVsYj+dleYqwLNkAZSB0uCrKfk TgA8PQOdXTiHs4fohIKPOy/QTwxOaBTJAmEDxao2Fkq2qGjqtgoVTlNf0eo2BDPcutFicUr42 WGjotnUkMNFdQjLhIDgwV/+oZz7EHHS6GJKodGXdiFkwHWloPyM8AWdXV1kgQYlWfmCSYK+gZ JsEP6bkzYrdCzqyK/8f860y3Hym41vbYjj4chKbSFWPwXi+KLFJYt69Ylyv9OZeeoqOu9LPBU HC8MAKKAHsoftOXJl3CE6jtZ1DUT9FGPVRPLDU0M5aaz9jpv0FK0gi5Vo8KJW67gT9kwsVJxV qUxAaLacwiEi9ODK8o8VPKlwmA4KMMtUTn49+O3ixl8zh1mO2gw7RA5QcysVq0xIk2FpPRw5q 0wnORh8IJpt6sNqQ5dtC14RC4kZYlNR6EDf3fRjCZe8jG2/xTYXywxilX6Vw6Uqy49znWsltj 8lwPt8FChi6cghs6sWnWXtcSjevvbYkAiIc+o5mW810TdZw9/LxgWtG0K4jcIK/U/M0AB9VwO n20anQpoUd4cMvUHzYvHsJ38rbUVm/zIqH/+fWjBj+u2IGa/+75B6lkzlWlkT4TO0k0SGiORi sOe/+2Ph8kXAcNI7LFuvmBS2p69DK4aJS2qpI3LWdwiI33O2IybMDnMCoByWb1atqvL5l7CCl ORcwgniJ2CQtbx0Q1lW0d+hSurazynP6ISTKfiIKtnYnhFurtNol42NF205N09UYFvu/C31cg ADWIlDjL7MPpohi/NzUweW0lxEqDpKa5FHKH3x+xncXHC1iajz9qIYALZnkoCYG3GIVnbW+pS TPqsPZgISTJwJE04jNFplb1u2igCZk5AUwT8NjKbLTcoadLUXN14RslmfYAHApGizj18AFgkL bVWtqCVlPcm7G4oea7eSsOhJNJRZOV8f8gTb/muRwzLc97APCxd2XTf21PmVIqwsdwE7CxB5f +otqoP4YJBLePmcBFvAB0I3WDwjoBcg7oblvSfxm7prSMwRe6MUznY8cZlL3m4JSF5MTM7fNQ ZNwOGa38v9ToJlc22ROyF9U2JJOoajBym7yhSQnS1cqqDsoKaReGLJNMBKkKp2PXxRhZSone4 rXs9N8FjddSGV3hjIZq3IZ02c9KkAs5kShmVcZxIkNev5wFWWzNqBPO4UkaEUo/WjxmST6p+W zhZinSXi/ZcyGJz11dRqB37upQDyXrugTHvs/mW9NtCi9vQ3k1l3uKxy8xfHMpxdYemJ1d204 chk0cn7aMvhsZCU3rCui4SICtMFmYOGWH0qx40u/+76avHyDZwaODuXc842BKCokHboAWKz6N APO8rcTvzCM2PjtjT6QiImkf5wREgeahAIc3EZCTwb5hL+V8aH186R9p/Br2RCKfNUs1l2o82 Ws57fgZoEATB5rwGyQRX4jl+43M+Hni5NTVz8/oiwg8UCf0USexDjyhSemHg1PcBl0EnWcQ9x BI28ICiBapPMHtQpkfU1ufi+7OT9Pg7gHo2tNCRnRC+7G/QQQuBslQfMu+Q2BJO8cc0M+Zul9 fni84ZmkfLhujJae3rAhvBkz0Mu83K0GGQiXwDXrQYOw18b5oGKhvt2Z0raAcctR3+YA8eTDL /vl67Jl5cx6YjGHKHDGZQHq4kYdTys9NzNjyxYmRgtnHIg+KVEAPwxEgi7kXuMoX7e38q8fBM +pCtiyIbiKC/Kpk9twMmo1e2jXe8KyRMvROL+fCYNDSzcxC+1SmDbFSEKqRdejKkziyFzK4si QOkbpKz9dxD8dpw/o37kS6i7+P4w0nLq/vSHeNlKD8wKa5HhuU7hgNMoAPAOMTBqgnQ/Canpd 2p4Ksw4yKq/7Qb0FNyul4HRdyQcnM2/cQE261v8RBpZlulQp8k8uFlFzEPqeZdu0DjL+/wQ8t Sad+9cCoBL8Zbms5EQV5nnRJRdcX7XqwTQsq9TLB2g+VCKLTXI+cmlBgpkj8f67dB/JA9C/NB NyYbhlyK6DpI1HuvaM4pVPAaR7W0u5w4cWEykN3gaWkEs7IXsteEdbx+VWsYLDgaH7vg14OuG Z8EJEvd9oXuU0gZwxXa7ofIr7d7BMkz75fEbdsTix/AODwVXiNprnV1cXpGfnTIMkOycEuiDr afFmxI2k4O/tq58aFGEYLD8i35Ojpd4II19EKz8ixbz+sefNOVePvcT68PCcl0hVU3LZHIZGT thwqxQF4stYAT7ElHOM6Hf7P+3YMJ1FSlewnrDwiGDSA2GbcDRehQt6GDHrROLP9wAUWuzfpN q4QZi7avSl8cHWl7Brn46cboi7XQ+hwxjtIr6/9zbjFATFWGfmV2HJgABMLuNisrWd8yV9tf1 ul+tFXRBXGusmbdkxCUZq35GL+/dkzMcseL+cGdHJM8tJPRr3O8hY1znVITjCto32xnO9uU5q hs0jA8xY5+d6VrnRFr1XOdKlfxJvrvhcgUDJ5W0szmpu43AG6Le/1jqA8WD7FqQrXcglQgBFK 66zCF6iNHbHQb6RMxQc8VjKsXSEGkBTN3AVOSk5jopqFB4Z0+swaeDK5py/TQSttifnYGCK6L SLOfsKoiZtLtA+U0bQRYg3wqUtjIAtVarbnmz5exvS0pfi/ZkkCflhO9p39rzBseO0qTmTnYK 98qMP8ldQcWVoLPVGrIs12uEw+ohNlhzywxGWbgreo/2agvDlgowssWo1h0iB7WhmwPHdYLnX SosWqjC3orw1olfIeulFYrxDGkG8nM37ZQHDa6m2el+H2ATvLnglMAw9l/LKYiiF9fyKOtT1I NOMM5ioQ2MRIXP+aRGcJ3piD0Xa6OEZ/evk+7P722dAbcsn5rJHWLkPQHcIqhqqkQ2423ZJp7 riZiNrPvhjQT6iuQSLdXViFrd/GHkJnpz1+cNrr6VXaTtZXsGgwFcdVg+pvssFqxk0hFWmt4p PAYDn0l+pipfEnlIIUR25YiaMkbMiSV9BqDsTocWfUA7CF36MCOqdzKMO2dDeRJLvtX87rBo3 LztP2/N/M7sKsm1TNHZa08QemrhrA8bwtx+OAkyeBHN1k2/TK8oLdxj9wfBna8ApaeskM2ujb FN22z2vOVAXQbu0apIvZS2nK0L7D6WzoyUcFjzBaT1Ee+sr2Yl630OBVdOpUkVe62uc3bP53w cRVsu0eQsxd3Ahe/1kUsQea9VWxA9D0N3lXSUaTFhubkbYLiPRm9qBGaA0qkMyTo0pb6oYphB JqJwYTYano9My1eQLXuU+qdBkkRJMPpKMkoC8LA7XnRtLWX9wpn/5kd/5yR+LxDggtQEzrqJB ZeZCC5T8IMSoel4LnzBrC4/WHs44x190bjt3qoEz1sHWiuHC1ivSU/a7s12Wow6/CwLbp3FJ1 h/P+0yvGIFvgEj5vHd7Xy44vFuSgOp4egC883qngjrZA0YqxIjHqSpVQEasFRoKSfAnBQtKTR 4jTe3g7wyEa/ZoQp2HMwWds3MtpgRAt2JQXB7OOD06jlI4RFuQzcI1ugdYOOkmSr4y5Y4q/pb i/4VCGnB+RhQbg6rIZnVh85TnnhQYU0G849JL3t9qan6hvO/FtWKD0LYBxoskvtW//rWxIg/f DzLjexDK0UlbZe4WJW1tK9IlscXa6Q8ATqy8mzbXQR3IzjqMVP0NP9/Xz6K5YWmoKh6yKfjYp 5lhQo/2LP/LgobfuJHF5zosYfqyst5dXT3nrvaPBpHS7fciAyyGI3Z8lHMsbXnxxCyQNl43g+ EdxVQmFiwV5WETerMQ51Umvfmg6uJ9ctdFfubnEWMPLJIT18gMdDwQ0N2mq8pDznEbU6T2w0c 3NJKJcSKMAU6oTQz1ARkCGP7GuPWemOPpEUH985F6ToXpMr0VhihWGC3tXynEFcTMQ6TIU/Ef fNmxvJz9TMeD9491ScgcKXYoqIwU8wZ4gKB6jot5+OicaUfJqDY0pfxs+zmyECyzmEWfeVPYj 6sZqcolVUOUldjoaGN4WEdPIdHKtN5E9pHUJDOsvOYOO3SXU65hxtqwpZ36MrVk1M5rmCpfyA ja51yle5JyPwP9ElsuQOpb5PFa3xe5uSUWM/PLwU0CybWSDKquCzGbKY3m41F7l5gfnnoGr5b yri5+RphzuFCME/AwS9V/icmfR8hdDHyj6gEXRnKAJITxvdhyodT+uObmc9ZqeB6hCX1YfgEG tBVq769uEpDrUvJp1OSjjvYCrO4hBF+Q6Nj5QlKqSzvhbE+vh4nhE2LJt0YFzPt9ba0ROyjjQ TWeq+IxppbPX3vZa5argFEIlCz7nClMEr3BtuXWIGv6PYNK/ro3xZbdMIP7CfoDAXlh7MG3Ip zxuu60SJq+8ooM3Z8ao2G02nANF5RorCyyo0y2suk5qjyGnzHHOQfqrPX/VzPxMAGBHaP7Z6M quOoPAANd4oILKwOCZ/NLXrk1PrMqA7+trQBQAS8NSQ4tUO/DPnWIMNpgFxxJGf3R1Na7JTMI zW+k8T7jzQAbOavf/LDYpJBat/0B4gjBtW+2Y1u1ypGMIEHQSPkUa4w3jY/QX5fSwz5XdUojV LvXLTjiKH0XN72m1S+0i89Ai8Ho94jcr5nRjIvANd+E6kiv9MhAhcpYq2IGd1gsXsWrYWOBh8 KEjEnq/9LhTTcIqPHzrd+55qEl7jehmIOvPE6g33In/b/GB7H7Xjx20lIael4O3tjGIHakaiv 5R/RsiK3uj6XIjyfFeOlSh2rX2x6pNxbjDLwEcOdPddv+yD9HlNMEwhb69pno9Gd7dYotxDNJ cR3Jz4n6OzACOeyA66dMmkuXJEcqOGGqhsUPrDqbhscbaJLXvJhBUYlK4L38dEwYN7Gb7bfcu BgeQJC/aKlqf7VAw6R5jWCO3D/pPQ4q1sg0PwH0du58tBpMk1Cr50fgw7jpj3+Jfz2f/eY3PP fbAxLrdbn0mSZ6CHtulKT/VAHJOqNtQwkYxlmcyHpp5/3QdLsaGy00QXs2ZGXGew4ok3IuSEg i4XYbv5RPSiVc/tWMjVovaNcDVYUAdQ/zWiy20B2Zj+4gIYYp/dz0InB5yINieuIuJ70yIhcC zandPbESem0cAPvt1+E14oXx+uNsoIvBUYQSa9wvuM/UFXV8uiNBBZmGzAmg== 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: 1770408309563158500 We only support COLO with the same version on both sides so this is not needed anymore. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/migration.c | 5 ----- migration/savevm.c | 8 +------- migration/savevm.h | 1 - migration/trace-events | 1 - 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 3f3fc5276bb067ae1960e4b675b33208ad641b23..5515be1bf305b40ba0b590136df= 18a53451872c5 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3496,11 +3496,6 @@ static void *migration_thread(void *opaque) qemu_savevm_send_postcopy_advise(s->to_dst_file); } =20 - if (migrate_colo()) { - /* Notify migration destination that we enable COLO */ - qemu_savevm_send_colo_enable(s->to_dst_file); - } - if (migrate_auto_converge()) { /* Start RAMBlock dirty bitmap sync timer */ cpu_throttle_dirty_sync_timer(true); diff --git a/migration/savevm.c b/migration/savevm.c index 413688b75f4bee6cb10878eb51886cf6ba14872d..a3af09616a7bd22194ffba3cfb7= cc4cf15fc88e0 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -90,7 +90,7 @@ enum qemu_vm_cmd { were previously sent during precopy but are dirty. */ MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream= */ - MIG_CMD_ENABLE_COLO, /* Enable COLO */ + MIG_CMD_UNUSED_0, /* Unused since 11.0 */ MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */ MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */ MIG_CMD_SWITCHOVER_START, /* Switchover start notification */ @@ -1092,12 +1092,6 @@ static void qemu_savevm_command_send(QEMUFile *f, qemu_fflush(f); } =20 -void qemu_savevm_send_colo_enable(QEMUFile *f) -{ - trace_savevm_send_colo_enable(); - qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL); -} - void qemu_savevm_send_ping(QEMUFile *f, uint32_t value) { uint32_t buf; diff --git a/migration/savevm.h b/migration/savevm.h index 125a2507b7279412bcb0745b95a774874c31c54f..0a1e5bfd1ca125565a4c90c6f31= b2f8c94404117 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -62,7 +62,6 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, c= onst char *name, uint16_t len, uint64_t *start_list, uint64_t *length_list); -void qemu_savevm_send_colo_enable(QEMUFile *f); void qemu_savevm_live_state(QEMUFile *f); int qemu_save_device_state(QEMUFile *f); =20 diff --git a/migration/trace-events b/migration/trace-events index 91d7506634c9f110e8f0b5f9183728058fe6542a..cfd4d58a0f82ec299ca9e8a9260= dd3c3a210cece 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -37,7 +37,6 @@ savevm_send_ping(uint32_t val) "0x%x" savevm_send_postcopy_listen(void) "" savevm_send_postcopy_run(void) "" savevm_send_postcopy_resume(void) "" -savevm_send_colo_enable(void) "" savevm_send_recv_bitmap(char *name) "%s" savevm_send_switchover_start(void) "" savevm_state_setup(void) "" --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408406; cv=none; d=zohomail.com; s=zohoarc; b=NMCXngQoCz9R/aJ3ND3bGZqWfRTzCJ2PcAaaI4+I0a+xdXHIDKaygCl3B0V5GzwHH/fGRvPdoS/DVrIiodWUa8U5HGIJTm02b3u21h2/tnGrL++6MJLS9flU5ddM6r+M0t2K/y5CnZD4tsdaN5Ntgi9SB+SN/PqHOtaNnFtKDMc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408406; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uuMv53cnY/NF58kfbB7HunUnASLW39jEamv0bqglux4=; b=K6vvDchd27tZtNlFUB2oPTvRA/WFwMZp5Ofep6JWwyD69bCoOmwlGz4/6xuLYBK2nF7MEmY7GOxTOmio20M0yCgVKtlOFTXONc90nIb9FTnq+otJo0qhpBgA4krLHIeS2sUPhhaYIlykB8OPMceP9dy/f7YSohgY7TqmFcMC7mQ= 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 1770408406705419.7017723058227; Fri, 6 Feb 2026 12:06:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3W-0004Jw-Ut; Fri, 06 Feb 2026 15:03:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1voS3K-0004FV-EF for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03: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 1voS3E-0008Ow-Lr for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:40 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MnX5F-1vNP6O1XTZ-00kbzD; Fri, 06 Feb 2026 21:03:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408205; x=1771013005; i=lukasstraub2@web.de; bh=uuMv53cnY/NF58kfbB7HunUnASLW39jEamv0bqglux4=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=cqKs80QSPK34VgxPC51yf/G9iMX1CQDApvSgZcse4B8fwGsIrwHTlJwymw7AHP2K yeILq6/XFqyRUtIyJQ4GIAqeOwkSLiX7ozfTio0O9PSvMqqK78/aURnEpm2erH7Q1 YiNIT0owj+As9VAGRm3rkN2EtfV3C1swO3iBZZFe+hbj0g5DmaDYjwXxCl9baJKP/ tQgwX+t3wLJG5lk3jceuoJTBf+7tU2COw2p0qLtwqY8doJNJgFRjng7U1uvXtMPKB NPsEuq1enLLiV1j2yfw0DsRL0EQ3jUPBERqYACj3swxH5Ihscxc9Gkt9jKDe2ffv+ /JsvE2Vhe5LUnL2hQA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:05 +0100 Subject: [PATCH v6 07/18] ram: Remove colo special-casing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-7-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1014; i=lukasstraub2@web.de; h=from:subject:message-id; bh=NdyvakndV3dkeHSFzAflHfbOGlcPwAgindSd07Zzuv4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFOeiDDzbHn+wW6YwQk4IeUqxo87sPcDMsn cr8vQV2oJ2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WFWyEACLtymIFw4gl9iWJ/zy7K6Wr9Pk79RtmHPtdFAHkjqQFHzC5vf8b/Ff1mb4xNgJzX0+zpC BCB7FOnHHyB5vtnhdjsHcdHFhNvrKiJ5kFSqZCJfDf7O6Sql4iFQ8tpAc0pAfPEL91CltjWht1J 5yKIyCSt9FM2SQoEKUirdOkLQm/CqUPlh3UD0WGXDM6Cay4XZVQOh3V0oHsdmS0yknDG1fKiuap u1QS1/r/hyZYNBVNulGX7ycHUw45e3LK15qptpyQyEylBMtzcnkZ0TUn+P9nnJCvAeCVeX7CytA GxiRxs+FvB13DHRg5E0tV7oEXokDdcGCcKRyy/3U5nZxQOliysTmQiEHGglvsNnnqO2DwAXoFwR Wth6XutwyFyIydxs+DDqtBS6hIZiudCFmnvV2Ai7IWtZmaKKd72xLpXn5YykqmAPbjiD9Q6VwF/ rSEadHYL1h4BQVAMBl1eB1oXmeRaLgdWOODHAXRqi/DpOP8Ayn0NgM65EYhAZTnh09GY8JTQVoM IUwy958wGL3WcxnMHNXEKfwyxjAcq0NQfKTrEZukzAK3j5olC5JHahJCQ1aYHQUZTl9jpDTFbID TL/wRX4ZDbNYDKL9h9qNUCAcJn3VIkDV0HmoGM/Ane9ONw4SpkyiXVh5ylcq9HI8tpz5twl3Jc9 Ray9YW67YZSWI7g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Fdz/bxgGuS9IHcvhDIuOuF9PRvU74h4xY+tJUj+lsfqPq4pXRK5 cEQJNVlet90oOQ+nKn0kNs889XnowF2Z28IciObszf8esc1x0S0H6xm0TJ48h+ktaGXVZ++ babzzvIXFyBXnbhFiXIx+TbIqTj6Zrcr0TKRPGVy96+F1Z8oFoJq+XQa99a+VY8/V0GfDi3 01EduET7oJLzZ4pCd4ZFQ== UI-OutboundReport: notjunk:1;M01:P0:i0jboTed7R8=;Ih2lC06n9auDclGtd4I69ihqu01 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 qdaew5CL4MWQZO7GU= 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: 1770408407800158501 We only enter colo state after the precopy migration is finished so this if is always taken. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/ram.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index aebf77aa0b861e00516d6f1090aebefdd0d97e54..979751f61b30d6c4b878866b501= 1507e7c519176 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3116,12 +3116,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque= , Error **errp) RAMBlock *block; int ret, max_hg_page_size; =20 - /* migration has already setup the bitmap, reuse it. */ - if (!migration_in_colo_state()) { - if (ram_init_all(rsp, errp) !=3D 0) { - return -1; - } + assert(!migration_in_colo_state()); + + if (ram_init_all(rsp, errp) !=3D 0) { + return -1; } + (*rsp)->pss[RAM_CHANNEL_PRECOPY].pss_channel =3D f; =20 /* --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408406; cv=none; d=zohomail.com; s=zohoarc; b=dBO6nKhoY2NvG4/t0uNQtUZ9dCUhBnhhZ6Rxz2DgWagqL5ONRV5gmp17irqj9G9Ld2vCMjdowVDEgvpiqP2cxIGyupGkyWlXCyika9eyhM1UZ9n/af3bd8XbndEZ1QYiYIzHBfHmZ3BU4ic0PLkm5plH/lQzHP3spCguOqUKLzs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408406; 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=aC6RPASo9EmD7/YkxIydxMnQRFIlpHS3HcTcIUOe54tVwjf1JJsBmQQR+2FIDebHQgPq56V/f8xHjQVLuwrFzy1sJWuVZhaNBc2M+oh/+ZppyzwZkU2jogt65sSV9z8SjRQRLZ3OYo/7/RYgzmX9fMi1TETVMdbkanyq3wIZGow= 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 1770408406070176.37812315533017; Fri, 6 Feb 2026 12:06:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3W-0004Je-Bp; Fri, 06 Feb 2026 15:03:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1voS3E-0004F6-Ua for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:39 -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 1voS37-0008Nr-8E for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:34 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MVaYi-1wDiht2qqC-00SfYs; Fri, 06 Feb 2026 21:03:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408205; x=1771013005; 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=WmQdhjaHdVnOEMXw1sZPy3ZeIoXiZb+MGL3aews7eovoIHEDTa38YGdVH7Ci26Bs Oxp4Ts0JMgFvPgcbw3mbmpvhJjzOkN/1ZvG3cn6dOqZa7UwyA6adCCJLYRnCsb7Ql 5b+8f7f+q/15aKdmq2gmOQ215VOzEfkF7nw0B/GfJPX54cLytxci6rnkRmxfQoIBX Q+ZfYBiweO2UhyC5AEc+dbWX7JzG76PjBjznSe+H6X0NxYh0vdVPlGDORBXNVX6bE 7p1/iaAvafhajWScs+6CQQTHqe38XJUv215/MfuNi5f0Oe2a7ZPK/gfCc//5vq9MS UCFEWTM50Y4OVCng/Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:06 +0100 Subject: [PATCH v6 08/18] 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: <20260206-colo_unit_test_multifd-v6-8-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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/ZANAwAKATWrCyicXbJYAcsmYgBphkkFelqOB6rX4EoicFFwYMzixMIHMJjxEbnoo YrrwZbiMbOJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WEYMD/4pIEHu4BmnJlwyQaNtpEGbxXcIRcHv2QlIzsGteODdUuA8ROZKO1gExYL8rVjGv/eGTvy 0va1Lp0WNbMeHgE8E8g3JOTs9iRa2NIjwfhad2ts9/veXfgZUS/ck4OwuZFqJwIBKu03uAR7U3i +zeKShpB31vqdimNU+SqvESalGIkq9mt5qmeCaIA2XphWSek6W9I4BKVjEBI7DtFtxkoDr7AayJ 7eyaSB1/Apg0G8QS6c1DlDq/XBtX6xTfarqCl/7nW6R13wGyV2+a6Zg5BhUSbsa+nBK1IP1WwPI yRlM6cCkOZpG+GnC36QnZhLQTOxZFdQRzeGZhtdnYEBFuW1T2YxovwTpVda59xb/HB3ID+lhYrr mqRsgWO5PdJZCBmnWY1Ti1pShFMNd24uhwv3nIPHb4bc+U5JdgvQWPm+FwXxQMw+gDlxTK6Q2CK CnjNeaRMyBxVUBe1yg+JaP/IbpsZIZZDO0YYMoLcZ1SDOyQcvK1XmVheCaUw/fS3vwAKznRB/Zq 7H1Q6GbMQ+w2RqZtLhPGHBL0lZ5I07+UHlSQd63LidTYyZmdZRdHKWiljKjq3haxWkdrNonvDAN HiFdIl5W85NeycLYxK/82Y2FyALEZyfB/3wto8+xLT34BkjzGwQ5IjE/HmCrpTMvA2bhTfLnoBU E32peF3Bgte9l+g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Wul0GjzBlD4n5CEM1aTTxHp1T0PJRW2jzpjB5EQDNk8ZCvlkBAr U5zMg+fqmj7qoZ6q1VMLXu3JYJZ8XFbVgd+yX+kTqKX5+97DY5Br/jPEITCgapJWvSzHBjF BYjwMV0OHEoMTS4K59ub3/Z0t0C7i8ol2MLR40jipq7U3ukFA1OHqCyiqNjHTHogzkY0LGV EO4eBG0ynCf7uu9Yfl/XQ== UI-OutboundReport: notjunk:1;M01:P0:ua5xjWnwJBw=;pkrAXSkzwxaN6gVhWvlrbN4KtCT oh4rmr9cH2AMKYkTFJsLn2BTZ/aQtbXviip1p6FVJkWEzE4Ra+O4KokBcLaZCSfTWk0thU35s N4eO73c06EHnEjKP5of+2r+C+rsMPlRNDMQrxWHfFO8j3wbxZDSFiAwYIzLBjSfomc+5shP+P MSAGLtlRy6F8ldLP1NQRK2nDJhtvMmsjhSMax4PySK0tF7ibTgFEjcGT4zAKCaJHkTVmKqgtp WpvUPEjvLvIK+Sp4hIiZdKyQZQAvct76ymEcxSl+Lv4HjZlizyVwcaTZkL4qdQegsajD+rjGE 9ZlQPSGCDI+YQyyxbowwECUqIZkva8zrjNZi5ZhcTz8Ewl15xatU3BWOFfHCvs4Iu5ZUqd/Sb hxdfd2My4J/iL9SE7toEeZ8PCf82si6iF+53g2f6VsuBiUwJDaBUkrJtFw3SO65YGsCBIsHQI dTiTXP2PdW2G4mnnaSNDzDm8vi60IZpk7L+DUT2My7C8YzinRGCT3LX7W2o9O/LtSAKTQxAhR RP8HoyApqJsTGzjPzjKu+0fG3LKRBIxc/omZYnXkXFxU4dxt0EO3VX7g0ityVmjE3rMR4jt2c PhKp6GWx3iwbQabyhGZT8OmOY+zI6we/SNEh6rCcwRax+oCGSMttXvyBfH6cCkvhtMqc6r30l 5XXZ90kCRpfqqmTvBkKLqXyEuP9FJ0bBmmZ7JSJvl26pwzyLHoRMtL3kbvPX0ugzANdY4Fw9I P0DZVX1snuC8/912qHTcq8p//J5zAV6d2QIGG90FLuLWLJiuRLYsxPMf7khlW1B9g0m9Ake++ yX20UYuJ8OOKpAF8lfC7ptulir7bIHK+8Izn5j5KFBOnyQ44nXw6ksiMq7Rq4AlFvUuX7Q1Q0 VNZ5KhZhEYRPqOivSfVPmutHzr0y4vK1/B2FU6gOhDGdhWbD/Vl1mJMn2PwZwv7qY0x8DAx5Y 2kOYWDTWoeH31Nyo8rL8M/9+KvobicO32MQJcQ6AFpz//lCH7f0F9PbSa5Q+45sB+5Vq9Le74 T6dCpEgyV/JRGLdL6IW1ZdRNeIxEXaf5BJPJIzt22qOuHYoVy5txlXfQy0bbHy40OuPgFuvvg aK6m0C+Uh8XgBzI+Lq36FbM8znnohvzAfl9m//9M9RUQ25F1TpUaZldKIoBC9MF2SK8bdSoKb 0RlxCxtKGKVIQZbGsW5W5BAiy1Aj7O2IqzVn00+NqR2d/HG0oKqrl9I6QUAP1D93WYRjxNcQE tUxdJnvx7VwXwWLUGpJn60Ep6wma2tCUm8BbsTjBnrXGD82seUhhYt27vqxOaZwUu4aPJNzaM 3WEuoB9nII23Uaw2Xlz4x5zjDE/zUan9EuWcLQA2nyswIk+GkRdkur8V2iR5xpQAowY2EfIpX 2C0fQ76DZoVctMlabkrHkHwb1vZJEHLPOHeTma12MuDF/HnCedqcYJIVRkBffogBzrdmV2ZV0 U04aWja/bbF6bihVOSzPReZgdMof4OlpKHkrie3wf/8BAw0OrKzcopoo96sdJF0uRLOl9rviM 21isJ10hSI3GZ8x7/u6DiqKcVW5v3F+xvefGS8s/Zwo5nK3uJsBQQ0F4SmvexgnpkA4wwLHvg 1nJTAUFatAMFxWBjQBQWGvxyMIhjpoVE2QgY8E+dAm+70nOGI7dn4JUCmjFm/fdvK+oDW76Ig fJ9NU5+1yGos9QKodFXoVXvhgY8CFcaCmUE/VDP+IDypZV75WfZRPiQckfkeDTSE/opnD9akG YBlHAck9jRMx23QCCg48VkFni7K4Im6KJWLCPRBUXELoVZYjCgX3n03bvXmEBsYYBgJRwA1+L Wi/z1rkvyA9n+m7/BxJvRO4JRMIn4zdDdyMqGgjg+V5OdTdfQYNUZQxmEEXxmpi/Tmay7QsbM G7DJDYLVVlHIUsEObhG4xZn4tXjda8i9Hq2E7NoMqdnmQa+h5QczTSMCnorgwGaJBTDYMTdHb TCxsiWKIa1gRgjLmgAOKXwl16hmPkXghIdm/PM9BewfdbklVyNTc7XOwGvqmcDebxkTYlGfPr CjPGqU08Tl+O29LZ6rqaQsBCjaCKlnEDYWQgrCE0oTAXnsAEZjp7zdEwcDjuTNnbwZnrWMdHp 8viLMgD481gxphKxAVvPS30YNRYbYEPo2WfAupiz6w6tVYvcB94/vae4qNsFIbfFVLbYwgwZN L2wuo6VsJQxcu16FRzeQv7OuBNxB0sl1U+qDzC3kw2Dz/qH9rEXtDvzccninYyoTbkG/p7XYk UME1he0bneWiRlv4c46yctophicaH25gnijudfyL5DcvdI4Y3EpkAtoveyFHnfVRuMjyjdj/y ZtrqoplSNBYxDHGXB+q+ScFf3+0HTzgM6EfPFQ0uoQMHGn1tNATUuPVTR6B6l/xtPwPhujYz2 7fhYrryt7TFlIA87QsS32s8D3D7EiJxUvGwn1L9LySsqnE58Qf5nsn83h/DUZ7m7cupPC9bGa bpJmmWFAKJoNVO6QZtaeYJjfkKZ/tGu9mIlMYNmOnNwkxaZWvqgTAq4pALHFgoZD6RD+xZRxH Fni8aK4GW9w3ZzauFblQOd3Yq7VvzZKZkhm19YWhcVfq8KhkMG5IPIVzK9Cc+rBXoasG/fJUO 84cbI0j4qbp93svqddG4QFqGzhAKWI/8/0GtOA4HxH4X3rrd4V11UhiDLsMqpQ5rubB+WeRho TDuQTnHd3AUu9l/9hJ4QdNGECeqNWrFS9+SyaZyQvLBvYCAJyJw4XBxnx0XxxmtkCpMplHiHE q1QF8FzdVW3XHUe9082Hky01g4Bq/QKTg1UuYfnei7lkJtQ7rGyK0V9pe/7oThHhuSw9PvQBE QzpGMRjpVP2Ovf4wxRAzHgVKP7LYe3SYWG1nOIT0bbjD21MVO34Bn57eEoGhq6NlW9Kd60xBk a7TOUO8m6u2qGPGSTaLE5gmbp8CSraU1IPC0cFuBnWuY18Kmipg6atjIl4TU+1zeODkoevd8J eCziRM1NjRxYYz3T7vv5CoOVYPt32MKole5xeboiqGlA6ZyXjdI+DkwyxLbT57eOLLaxsnXV+ kQfkThrp0AbmJLSKSjmt/s7xh7Jg/9h83nCzceQpz4ew3ZNRBCJlbFgViiooZobBThtEZQgEw BMaf5GSUtpRbmFq6jsaP8vSUu08A6Mv1D0vsTKIx+75bdTKhQusNJhKD4ALAUi9gYFGrpw3qC 2ulwDJse5yQBH3yJNWPTWON9glN7TU41pvY1PftP1j46NsZA9CFgbSY9YLEw4sl+a/oaTn3M6 cH/DhiuAuZyKW+zW7GmmgSQTw2myRnDf8c+vNstjVsOBhhKZphk8hqfSBCwB8Pp13kT9sXo7R ofYRnZ7R7Wn4d73CS4G7XtGv4d2yH/58kw+hfJGWRWqWTjjtcEDenLZ0tXD68hNV4OaiDc1/j PoGeU9ycNX4E/MhG+e41HB2AkGHkMcAgJBoZYPD/eMYlbgsSYHXrHoqQZn64nR4Sv8wns/a8k qkvt+vp+oGkmSedxzUkDd6C3s+6s/qmC+R7fvJ3usjzbILtf9Ylh6sLIoJfSgkn9pFocwpR5o HssfcqHkPRLWLplcJ+fZeHO/TBCsnwrpJGvy4U2H3yLiYzn+rfCKhm7AGC/72pSiySiSR9jaZ trlYOwgOiGuozL2vx5EQup5G6WFnpY9bUMoP+K3xrLR632PPn/wU4dXDjNsfblQlr3v7+0P5M zVnlM6KytYHYQ+IfZAyOjKaEIfhwleTbn2cKIVlk/rTYGfeUs8cWDXD9GT/mA1E12Q9zSy93J UjNiuS6YX7NEGP+8XZ0c5Bk9cqU6K4VxFVLpV2o1C5SoSH5OSX/XWp0k92F8n+TSfBW6mYf/u bv1sBukXZJ0NJj7+7lOgaouoMMZqDWnWrZeWLv/zFDQ9uH7rhjEJa010k1gRQrHgpPr808eoN Sc2fdxs+5IECtU5iMuos/qFhRCPWE2cakxGgbXkCIaxh6R0cOhcK7UtdI1zkwF3d37QDGV+QK u4mV7WhAB6ixihmkWs6wym3PBjPaRwf/RDpD2AV+54xFCIOinRx3pLbtPuJV7GripIWkyD2gq YinTRLGG8p1HYfEFkTaIbn/0fsfBXjeisaJjtdzv4dnJjdry5Ii+5c3cP6KLRoy735+CyfZ7U N0OCKMq3XdX8/zwSr/UYEtuaf27s8UaZrXrYUy5oT2oDIVzQ2MQIvxORTKs6C2b77BTbFmnGp 5Fd21nLaEzgoIv8hxGjo6W86VEFNxhuYaMa4WPz0dMeSVt3bzs4pHaumiXhC8eDmyQg7sob4/ A6q9oy2F7YqWtR/Jv+HKx4b1p9VxzH1LDj++qa1ZXxSGOh+QCrb3rGETrX4nmrcHLvfG2j0wV wwHk6IhtR3WtEsDteUFWRvJlNy+f0jtXe0y8z86gVIoRV8oUA8HeOaqSoDejBx9opNDN3fEft JUuJmRt9lJvv7qR4ykXsg4K/A0VNJb0pL5j+WZHfDdcuGY+NtEPiyONUFh52pVuMM9/7Uw3UO 1FlhProEX8NZ66CBE9Vwc1nb2ZL4qd8k2NISun3+HH1CRJElO/t6gxmutvSnHWWBjmymSpTd5 VAWrH5ah7XTYdWzu/aNVBvXoXOiV1l45Tvjsj/3oN5huXvoHVBZdTm1TFw7OtgG54Ucspy7xX MOsYZS9pV0fj7Cq7dDjQDDTjEj4FqhQ4To8NmTVqAX4wyacSgqS456vbmTo30HW9dcgKcw7op wugi8ieSWQsHekkjm8soe0N7PbH8pey6j2pJU8hFnlAWkFrHicIYH5/IQd0PaX+Jg9yd/vbWf eKX2HEahgxVGyj6KTP2VDc+iNFkvMDNEc0aK36MaxPrktk2BO4Wvdum3QtRMCtk6WJdHqi/je O4LafIL9oxfo52HoD+GtY0EcCz8HupOe7eK5+iufRKVIsiUHfNweDaQPeD6hwKci4RCGLVLIr +fGehw6/MTL7Vl5IVe4k2cCazJUITQwtKbXWvUkqyRR2t5YZcfNxNdmfXFnJFzL4Fj4lwAnTD Iw2hO1kcGFlGJvug/8+wPUDVoR5eBvl67MCSRtz89ACV4CGHsT1pnXPGhZuEb0VZnspmsfFi2 ZF3f0y7t6qSbsJGuBo30hrij/TeDCW/RCfs1NDJCQ7Ktqj7WV6V5KuiJQ5xgCrKaHolSKk3UQ 8CSd8VvE7TX6Px0PGrA+VuCh7YvkpSEw/UqNQJEB94FWI2Ss3+8oDPMYu3+w== 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: 1770408407797158500 This is in preparation for the next patch. Reviewed-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/multifd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/migration/multifd.c b/migration/multifd.c index ad6261688fdf98a5c7f4ee9fb80ba2901201a33e..332e6fc58053462419f3171f6c3= 20ac37648ef7b 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -1253,6 +1253,15 @@ static int multifd_device_state_recv(MultiFDRecvPara= ms *p, Error **errp) return ret; } =20 +static int multifd_ram_state_recv(MultiFDRecvParams *p, Error **errp) +{ + int ret; + + ret =3D multifd_recv_state->ops->recv(p, errp); + + return ret; +} + static void *multifd_recv_thread(void *opaque) { MigrationState *s =3D migrate_get_current(); @@ -1387,7 +1396,7 @@ static void *multifd_recv_thread(void *opaque) assert(use_packets); ret =3D multifd_device_state_recv(p, &local_err); } else { - ret =3D multifd_recv_state->ops->recv(p, &local_err); + ret =3D multifd_ram_state_recv(p, &local_err); } if (ret !=3D 0) { break; --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408381; cv=none; d=zohomail.com; s=zohoarc; b=OIo2teGxn2VO0SGS7iDa8xkfGq0gN97Exz70hxLdyFcwk+pygWM+kynjqFSZYsf07O30cP9Q+pE01KbZ7GbK1gguK0wJtVodr6ME0yimcrV011DxXsahvEEaqJcKBZOd98x+XlTBlk+edoab/x/Qfv/uRLl0FQzMJt2R4ToONvU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408381; 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=yWcG4ZKd7VFXYNv5ZZflkHaYCa852WOsGqGzjhpz0Z4=; b=gx8aQYix8CVxxRSUU9zzqYKwouJUDg66Oh9Y/6lIsQnaLqZA1SAKA5b6o7aJm8fLGGo7luM8zxIlbLOozLG/E433X4PZYFqWJaBPOs1RSif3mALn6oht435EGE/rbDss8Y5mMoJUJmd0NfPlhJkcmxSp4DcMJSPt6qtj0NfrTmo= 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 1770408381977303.4822259034204; Fri, 6 Feb 2026 12:06:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3Z-0004ME-Oi; Fri, 06 Feb 2026 15:03:57 -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 1voS3K-0004FU-Dj for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03: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 1voS3E-0008P0-Pg for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:41 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MMY1D-1w4c1K49DT-00Kj49; Fri, 06 Feb 2026 21:03:26 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408206; x=1771013006; i=lukasstraub2@web.de; bh=yWcG4ZKd7VFXYNv5ZZflkHaYCa852WOsGqGzjhpz0Z4=; 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=C2MmetjoNFNpI+0agd1YZ7OjxNIl0DwARI7Eu6EfgHPx6oriHoGEzOnuTzQeO7HS S32HDUEiLBPIkvKVWrjT6YY46xATecxpWwzP9/YOEcZb/eK887mdoM00RXMiwzn0W Xmlc5NiqMmHrNnRtsc5t1907SDgVW7HYk3DFgoe+NzRgOJX0SLMWS+S737kEX0i8o Vd7JC54Oa/ydVH1SA3VRH3ugMYCBCqfesPV2pha8K2tmLM9FsciIFlYhn6vEN0lGm IgK1vADAwSUgndTnWcAhtvuZkr3BOwe0IlAm1Fw0LyfJcrDfV0IB40+qwZTznG5/G AHrs8JdwXzRVrwQ+Gw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:07 +0100 Subject: [PATCH v6 09/18] multifd: Add COLO support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-9-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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=7745; i=lukasstraub2@web.de; h=from:subject:message-id; bh=2VG97uKxGhUSXRihk8MX99JK6n5WIo8H21nmUx0kshw=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkFFp/UKC4H5eGqtaTg0sbaHmrtGGtiqFsGm p6R1rTgtGKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBQAKCRA1qwsonF2y WCtED/4gGJbi8Mvn88pPX1OnxsI4Rt24jTTvq5z7fD8gB+IkNW3rTVC4vwUih0Gyfa3ffkqb3+7 BwSL7dwFau3SaP5Ap3wcEce26f3hwoHD4SohkmmPJAVcC/ZBkyvJUHPA3gZZQGYESyqMYUZXbkX TFLs1lNoZo7P/ABPpWl3hmCIPM5b1p2SgrMFIxfiySH4v7/aJJbTlybN4Nwdd0CdxgaM9DYjgG7 AD8GJVs9mEDXrObewSZwN6ZaxirZhwuCmuOahbFimiYyXCH3H8dELiymhojhuMAIkfoLBmQnkUE Fzd13oNe++Iov2djDQJjVw/BBpOHbqjpdY8k04zBO64kE8vCNVgZDIGm6a/ibGm2/JRdbvnB+tf WIHp0UDIO7NfpFb5958Zq9TlcIw/EgMbOXHGmoN9sX3rIis/ljwu2uJXgJ+LW7lajdIRY/+NC2u 4MlsvofBhlv6x8ox1+qOubEgHFucOmyVRWEcTxzWQ8xmvSG3eN6Bb6G/zul6o0EFUIzIz0f+KN8 Ho3hA3//Tl5cFH5dfuQN0VzkTEl2lBMBC4viNV9ydqkC7ChFz8xcvszZoe+E77R8cpRtM5WKWQ7 K4BDfO3HB0sK3lkDCwLBP8uOzr8j/Hhfnfky5R6s142Kmk6LecFwZw/UsUWqjHfv0/Kz5QnHuSw PywRJ6YWyj7lVkg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:6j5cqORuIPIlUmz0ZzPtMOjCrHZ0RW1xZUBt6WY5H1b3Y2ltZfn SH4sVBmF0vfvSIhCEqAwmorjL2s/xM11lppyvzM6nohd2jT7rOoUUVBowh6AUidiNjSMBaG /m5DCwoMXXEpP+KErFFmmUD/Ga23VdYwbb6tM6XIvCMKVd8MgWho8X63U5ufSrR76fQI3eL He+aM5yMZyVS7aJwBXnig== UI-OutboundReport: notjunk:1;M01:P0:wnvboGv40Do=;gox9pdyhR+PAaDKz3dSgQLulrz6 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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: 1770408383962158500 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 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 ea170280580af6e3ebc586c3cb9bf6e144b30c11..70e8b9cae59a1768ad9966d1291= bd358a0712573 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3851,6 +3851,7 @@ COLO Framework M: Lukas Straub S: Maintained F: migration/colo* +F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: docs/COLO-FT.txt diff --git a/migration/meson.build b/migration/meson.build index c7f39bdb55239ecb0e775c77b90a1aa9e6a4a9ce..c9f0f5f9f2137536497e53e960c= e70654ad1b394 100644 --- a/migration/meson.build +++ b/migration/meson.build @@ -39,7 +39,7 @@ system_ss.add(files( ), gnutls, zlib) =20 if get_option('replication').allowed() - system_ss.add(files('colo-failover.c', 'colo.c')) + system_ss.add(files('colo-failover.c', 'colo.c', 'multifd-colo.c')) else system_ss.add(files('colo-stubs.c')) endif diff --git a/migration/multifd-colo.c b/migration/multifd-colo.c new file mode 100644 index 0000000000000000000000000000000000000000..f160c6543414d3e157a444d613c= 96df4c5f0e602 --- /dev/null +++ b/migration/multifd-colo.c @@ -0,0 +1,44 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo implementation + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "multifd.h" +#include "multifd-colo.h" +#include "migration/colo.h" +#include "system/ramblock.h" + +void multifd_colo_prepare_recv(MultiFDRecvParams *p) +{ + /* + * While we're still in precopy state (not yet in colo state), we copy + * received pages to both guest and cache. No need to set dirty bits, + * since guest and cache memory are in sync. + */ + if (migration_incoming_in_colo_state()) { + colo_record_bitmap(p->block, p->normal, p->normal_num); + colo_record_bitmap(p->block, p->zero, p->zero_num); + } +} + +void multifd_colo_process_recv(MultiFDRecvParams *p) +{ + if (!migration_incoming_in_colo_state()) { + for (int i =3D 0; i < p->normal_num; i++) { + void *guest =3D p->block->host + p->normal[i]; + void *cache =3D p->host + p->normal[i]; + memcpy(guest, cache, multifd_ram_page_size()); + } + for (int i =3D 0; i < p->zero_num; i++) { + void *guest =3D p->block->host + p->zero[i]; + memset(guest, 0, multifd_ram_page_size()); + } + } +} diff --git a/migration/multifd-colo.h b/migration/multifd-colo.h new file mode 100644 index 0000000000000000000000000000000000000000..82eaf3f48c47de2f090f9de52f9= d57a337d4754a --- /dev/null +++ b/migration/multifd-colo.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo header + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef QEMU_MIGRATION_MULTIFD_COLO_H +#define QEMU_MIGRATION_MULTIFD_COLO_H + +#ifdef CONFIG_REPLICATION + +void multifd_colo_prepare_recv(MultiFDRecvParams *p); +void multifd_colo_process_recv(MultiFDRecvParams *p); + +#else + +static inline void multifd_colo_prepare_recv(MultiFDRecvParams *p) {} +static inline void multifd_colo_process_recv(MultiFDRecvParams *p) {} + +#endif +#endif diff --git a/migration/multifd-nocomp.c b/migration/multifd-nocomp.c index 9be79b3b8e00371ebff9e112766c225bec260bf7..9f7a792fa761b3bc30b971b35f4= 64103a61787f0 100644 --- a/migration/multifd-nocomp.c +++ b/migration/multifd-nocomp.c @@ -16,6 +16,7 @@ #include "file.h" #include "migration-stats.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "migration.h" #include "qapi/error.h" @@ -269,7 +270,6 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Err= or **errp) return -1; } =20 - p->host =3D p->block->host; for (i =3D 0; i < p->normal_num; i++) { uint64_t offset =3D be64_to_cpu(packet->offset[i]); =20 @@ -294,6 +294,14 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Er= ror **errp) p->zero[i] =3D offset; } =20 + if (migrate_colo()) { + multifd_colo_prepare_recv(p); + assert(p->block->colo_cache); + p->host =3D p->block->colo_cache; + } else { + p->host =3D p->block->host; + } + return 0; } =20 diff --git a/migration/multifd.c b/migration/multifd.c index 332e6fc58053462419f3171f6c320ac37648ef7b..220ed8564960fdabc58e4baa069= dd252c8ad293c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -29,6 +29,7 @@ #include "qemu-file.h" #include "trace.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "qemu/yank.h" #include "io/channel-file.h" @@ -1258,6 +1259,13 @@ static int multifd_ram_state_recv(MultiFDRecvParams = *p, Error **errp) int ret; =20 ret =3D multifd_recv_state->ops->recv(p, errp); + if (ret !=3D 0) { + return ret; + } + + if (migrate_colo()) { + multifd_colo_process_recv(p); + } =20 return ret; } diff --git a/migration/multifd.h b/migration/multifd.h index 89a395aef2b09a6762c45b5361e0ab63256feff6..fbc35702b062fdc3213ce92baed= 35994f5967c2b 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -279,7 +279,10 @@ typedef struct { uint64_t packets_recved; /* ramblock */ RAMBlock *block; - /* ramblock host address */ + /* + * Normally, it points to ramblock's host address. When COLO + * is enabled, it points to the mirror cache for the ramblock. + */ uint8_t *host; /* buffers to recv */ struct iovec *iov; --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408405; cv=none; d=zohomail.com; s=zohoarc; b=EwDON9zmjBRBZAs33jyDaKWXV28/ddZGq5E2J65ckibgvJp1+Ta2Vcu0qV3rDwm+lS4/OSnT4SjW6kyCZAFaJ8tdT3wLQ7qlofW+/iiryhF+qpgga9GaDKMrPpoSp0Z5+qQ2PFY9v/nih5lW9PzfSrSXPK8uqLMfJJr1Re9xkK8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408405; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bHKDgq6h+b/M7EhW61MaX0Cm/kdRU0pIx1l0id9k6Us=; b=b+HN7Nx7C3Adk/WBTywbLFKzBDVlGoXcBmRHWReKKJsMwaSM8B07e9tCQCrwnrNT66t0hGM91dAVcPpgJBb3uQWVUZJW5ViwD7NjRijJ2iNwGutIkbC87Y+mqpeP0WoPNl5A+y2h50+jtqELoWMljcoOXU1XUMNCh7DX4v6kLM4= 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 1770408405888432.4742606674622; Fri, 6 Feb 2026 12:06:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3W-0004Jd-Cn; Fri, 06 Feb 2026 15:03:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1voS3E-0004F5-Tp for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:39 -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 1voS37-0008Np-7z for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:34 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MlsON-1vNx4H1Btj-00mGPZ; Fri, 06 Feb 2026 21:03:26 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408206; x=1771013006; i=lukasstraub2@web.de; bh=bHKDgq6h+b/M7EhW61MaX0Cm/kdRU0pIx1l0id9k6Us=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=uYX5eK6aTEeEy1QpJmVEcZjuoB7SN6OBZgGSrw7psX36+Zlz7Rdb+sJCBrB0+3xt CqNGO7DfeDCg2ZFTy1pm5qgSDpr1UaShOOtgwNMLB6Xao9RwFCUsDX1MaHcQMk1JU N1T7QWdMQbFF79O1e37RvC/o1X5m3wjbCaewtyTthHOkFy224wYj224X1PvTcm4uX ea1aEb96sdCxifmyMp7vXITJO8L7XQ5AuRZjADteeIPagQhRFdTxc2yByNDkM7zLs w3TKBPmR5sCx+fnNwRjYgg/Ia6ypHYqqiYian/XKg8OyTjBrsmn5JRhtwmRiVrdCi CC+9Fsqd+nCPxZWGXw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:08 +0100 Subject: [PATCH v6 10/18] Call colo_release_ram_cache() after multifd threads terminate MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-10-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1302; i=lukasstraub2@web.de; h=from:subject:message-id; bh=F9IEy+4YXw0ic4hdA5SnWxv36ftHLR6BjkCOtPAGjYo=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkGHCJpXigfFlMzqjt8R9y3eSRf0Bgr7pt5e v96etJmhceJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WAnID/9Y88OoKx+ytp2dzI4pKEXk/Gh5h+tNnb7p+OhrcW20gvrJ2Fb+PAk4MFHkzK+vQTqXEjv 7+52AJg/aG7+C11QOdmmmyN5fsDRXUAA75QERR36aq3q2VhrGya9kDSVD26SJ/5p3crXfl//Jam FX2m5zjiXgDTVIjG+s7nKTgZMk3vWCd1BcQTVoCNfbfpVlmGwFvsp0IO1f2+xPgVPszCQ9YAIeM z8veTqHaNdBHRomvOHc/UPfypepRInpZ4BkZUJFNRxYkW8f7SGxlg1gnVlKx1urYlBD2E5tPPKl B/u7leKu0FZfTEC7EpKIdjG/Nb805TWmLqYOuXl+nZJvztKJks/zVeo9nZJ6CC104mIerZYrsv1 NYkiHXK8gQNVOw5Gwh2qfAo00Q0lms8/7nltUL/Fe3NkeY7ULHjlsHx3NzuDwSmrjK6FIRRHSDL Wr4KVObm47mIZ80xi131EGzGxRJMxP/08QsWCNWgBx6J8d10hhfzkXBRgI7UHjasT9T6xJTv0Kd a1cBrAiHWiCMp+e9PrMGmYkFo51zHTqFTgqdLRnLnCS9geLw0ab/eu057dVpX///MujTkNtLnVf 2Z/93rQSBFKlIMF2gRh0ON6ec0NKALWaHiaf7Yyyw8/owOKR2Z7zGTLTFa9OA/hcb3giYON8NGn HfFlSKIIuH48J7w== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:9niXr7qC3fP6UygiLq95+ZsMeqaHQElbMC3KTQNzioWnB1bs03c fjx4OEFLf+RdHkacycbT9HW1z5v5lokfE1INNNxFQh7x0dazkqVI58hJDixXRP4+AR5TiSD vVpTlAIe2uQLLbQJcvKPmNxg39aVH7zpIFd5ZojN6yHfU4Oc/p4QWl7VzWsGRZ5tj9UFpwx HeW+1FyqJZj9vMPEbB0Vg== UI-OutboundReport: notjunk:1;M01:P0:a2bvi1+KqDs=;PMlH528by3UcUuwiFyEJNXYfkiq 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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: 1770408409679154100 The multifd threads still may access the colo cache, so release it only after they terminate. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/colo.c | 3 --- migration/migration.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 8dfd39b035c48590fcebeb20459f01fb37fb67d1..d3534d1a32ad82f02101ac092eb= f818a0caee6f2 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -947,7 +947,4 @@ void coroutine_fn colo_incoming_co(void) /* Wait checkpoint incoming thread exit before free resource */ qemu_thread_join(&th); bql_lock(); - - /* We hold the global BQL, so it is safe here */ - colo_release_ram_cache(); } diff --git a/migration/migration.c b/migration/migration.c index 5515be1bf305b40ba0b590136df18a53451872c5..9e3f73f27766196ea8673bf9a58= c97d5b8b1672f 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) * BQL and retake unconditionally. */ assert(bql_locked()); + if (migrate_colo()) { + colo_release_ram_cache(); + } qemu_loadvm_state_cleanup(mis); =20 if (mis->to_src_file) { --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408406; cv=none; d=zohomail.com; s=zohoarc; b=i4u6OLy6G7ViUaFw3zU3fXD7onG3hoVerjc5gG51zL6oEDL/z9dSUEdE0wjzdo+6MjBLzoEKzYWgQlPtRKsZLo7YaUolJ3/RCA59K7emZYsOdODzYfxO4SWF/kXaW8adRp90Pp+PL8M6RhgbDYjnj4YceTV5uCMUhYBXC/mquXg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408406; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jJiGbc0HKecovNYE7s40yC6PTgehIGA26Ay31XHpXjE=; b=dfbX2xRwQdsX6ByaBp77Ud/vqneLDv9Sz0EjokQ+MN1odBxJnTrAwg0jtA9XMd0ftYCXL8Ev+JuyM9Pss3SRijHGwN3YcSqFG7G1QoEHpf8rO1PeY2SmuOZdweZQhioiqHOCyG6rFnrYrSLCguHvte9NYsIu0DGKG9Fr3iHX/jA= 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 1770408406817532.5935639028634; Fri, 6 Feb 2026 12:06:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3W-0004Ju-Tt; Fri, 06 Feb 2026 15:03:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1voS3K-0004FT-Dt for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:45 -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 1voS3E-0008OK-Lj for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:40 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MeUXg-1vEIPq2T4e-00bZYs; Fri, 06 Feb 2026 21:03:26 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408206; x=1771013006; i=lukasstraub2@web.de; bh=jJiGbc0HKecovNYE7s40yC6PTgehIGA26Ay31XHpXjE=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=ayM3+qnfwGpzKPl6H+b5I0WYgGxkTN4KiOAABSZJPKFlGTum6K+x13DqXE5Ndigp Zi8JKwvFp+JFih0MYHpDh6/nuh6hHGcF367V/nbcakFbOR5krrStF0hoiVUFFl1Mm cijhe5oLFHHt1M7axV/o+jpGiaBkV2l7cjXexJA27Gnm/lp529VvAFZC4WSaH/68M Q6Kh3S83kWoispYjMloB071xIW2TEXH6krokSjig85D4haxBJeKpsVH5NF+k3VE6z NTNn7dYwqVgTIDwSEzO+EZSf/7tub8D4CGQKXzyeMmes9174GJnHEovQmNRH0zNr6 r7mZy5pk/O0e6VXbVw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:09 +0100 Subject: [PATCH v6 11/18] colo: Fix crash during device vmstate load MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-11-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1224; i=lukasstraub2@web.de; h=from:subject:message-id; bh=8iGx9SD/mI/gEl+YOmte9J4DH7w8mDTmFlt+tTKua3E=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkGhqyC5h4xaKH6C0s5nZxXeLhAgfnNmykda KIcop8gfQqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WK+CD/9g7aTCrdAF8FPa8/80YX3ylYfjCaN6gqnpg6csFrXtzFvm0JD1joOKm/g5qqPVeiJHYhV Y+u+nglkgfuQlUuK8UUXmH0KjxQuGQPYmkFZJx9hrjPqur/NypwMyqfPyYRvcPvMty6D+O6aj8D 7xeIUki43EQBimNRzq6ikWAj1so1Ff7fmipgqNP6gQySWzRrjeLQmljHK1IpkUIuljW393L3xtO jhUrGYDaJPXNgKihwtz+jNk6N1V0KVpAMB+0G56upcZz5KAqox0VDKNvT9yF+CXr9bjG/1yA2ab HIZrt+3Q6xDGprfqhMN4Y3T79/7gr40IIsgxr0w4bLu2kYKA4s6QbMpcfMvFNqyxh/p4YhGEWYr zE7mLoZ0fn73VKtNt8E3MjUwEScKqBFVs38kkYdn/DULFsMKG34ccShMqnATGMXPZVX9JiVBGi/ uooIdnYL3uIOBueWWPXKuJ+zmE3ta3oeqBUJg7sXDnEKnAV6j1dvIK4TflK/0R6WMnBru+PS6LG zc1nDcNDvY6LkCKJTFf67nv2qServlRT0TWdKPaNC4UZLCnCFlskEhBHI2rV4u80+zL15ZAcSMm OV/+sxUw81l//maVskXXf2/TvkxtgPqGFD/h2OASSP+GPfQMaQzfQaeOGxoPx7ow/mIiJEYxnIx 21RenprJYgLtA+w== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:cp8aNQMe5C5YjV9uvo19yGYuIEJYtDWsi/4DG+UBh8wVHf3dJAs 8s1AOABjMVkI3XUjFa3cRva/RW/DDqRAlF95Pgd8TefqWr03lj6nxHTxqksWJohzoZI00vv Ktfge1vuJ7qNo2SBkZD6U85GnFSPAqbEv3iMnV6YLCTO5m7u1UBSQVdx1xr7FZX+DHvUyrN CCsNjhOePom5jr+sO7Whg== UI-OutboundReport: notjunk:1;M01:P0:hLXqWQslndo=;hCqOyKKrVIKplQmV7vASTJKG/ty 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 WQR7KeUel1NZg9iXO1il 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: 1770408407800158500 With colo we load device vmstate during each checkpoint, on top of a vm that was already running. Some devices expect a reset before loading vmstate on such a previously running vm. This fixes a crash when using COLO with Q35 machine. The reset adds 10-20ms overhead to the checkpointing proces in my testing. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index d3534d1a32ad82f02101ac092ebf818a0caee6f2..afab8eeb14d09c1db9b235121c5= 845b11a80deba 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -727,6 +727,12 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, =20 bql_lock(); vmstate_loading =3D true; + /* + * With colo we load device vmstate during each checkpoint, on top of + * a vm that was already running. Some devices expect a reset before + * loading vmstate on such a previously running vm. + */ + qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408282; cv=none; d=zohomail.com; s=zohoarc; b=e3dxVPQN/UeRc+vbFzSASE3oshUbRXBpjckTMBsmPN3aboBbE8nDaDVO5NlEF9iAcc8y4Nn+G4RHts/R/a1mcWluHXWzcKLL0AzmsD9d4IXb/2f5wZn63UGz6biX0ZYTHRrLkw4J0zAbMQfyYSvdSmlexO1fQ4TBvCXaC6sCFvU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408282; 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=vlIFQDH4hCi74B8eo0oca2/cu6s2QSYy3ts0uxIfZuM=; b=DbmBPNtIJSKhDwl6K5CGiGDNeg8+NwabNWjdoRz840rtWDAy534Ju0f63ETzx2KNX7tp57B0KFNhjIYOEIT+JlBur+D0ocuT+jlGnEc7Utzrqu5lVeke7iT3lAUTOfsPbLA+mXMe6OAzMg9eSm+EZS5ITOuiqc+nQk1PqHOLP4Y= 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 1770408282197362.960838038314; Fri, 6 Feb 2026 12:04:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3X-0004KX-J3; Fri, 06 Feb 2026 15:03: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 1voS3I-0004FS-O0 for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03: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 1voS3E-0008P8-L8 for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:39 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MREzA-1w9Ir43f3E-00OJxm; Fri, 06 Feb 2026 21:03:26 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408207; x=1771013007; i=lukasstraub2@web.de; bh=vlIFQDH4hCi74B8eo0oca2/cu6s2QSYy3ts0uxIfZuM=; 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=eRi4MYTXVXHHygbmdj6PvGhnDpV5Syk7Lu9IedB7RVWtZ85/Xt7sKQvQ4hcUkelh V90iipgOgaJvJZTe0tYoJDnu170N4mnXEeIqvOCWWoudx1rG08bKdoFogIkLf+xiR nYAG2Qrq3C5UsiHSfRzu3Lz1xRCd0FmGGIJ6pksSxbZWGslNZh9e35P70pS+ZuC40 0HVzJaMcl3x1LeGppUENqgnNXL9i9RflJj7msiIX7a+2XjbEW1FnAfE4ZfaqYeJ9f H3E03cELnibGx7+/nLNLNeXPpybyOnB4m/pQ2iYdB0U+qz9vYOiLG7osj7Pga8FJV qB3rAHv4q1s9h3u3ng== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:10 +0100 Subject: [PATCH v6 12/18] colo: Hold the BQL while sending ram state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-12-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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=956; i=lukasstraub2@web.de; h=from:subject:message-id; bh=ixoigdBoDBgHN6cI/nsjdQCumjwqEm7jaZXbi2aCFHo=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkGR9Mll56kVHd/1N/ZxOgFfeJzcA5enis3K yjBqcUiCzKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WA5rD/9MD+DOjHUU5G1XdphAw6YdE30econe5qWd71QOCmnM3N6Cg0ppzGzaCQT7IKdu2a7WTgP 8I04ufLfXsa7paxfpHPEga6vhS42PpjpCGf3rMHYJT3BXaC9HwQ3l9fEPkHsF734ZfrRjKjIDHO zfN3EquHGdkibvgYl+lF5BDcbhEPtm5Rbeul/IunE9RErRIjAJ6HzK30vdcrIyn6PCGG+sQSe8Y iRxAEUL03Bka16oBMutL8F9wR9cSRw+hxFtGhoqgMe27PZOEMtwXirxriR/8oqoEoPf7ajTMHvs +sVlzzfqq4qiD5d7LTvbDIOyYoOI2qZm8VmPTI7pxVBabSHOTWiINBm1CaxTsSy2+MTvwGYEivq HMN4Egntdqm6vyim5oZDuC0BfT63GU1CtyYaiNPaUpZSnAfPkmj/W0Qn01HmxanaWdZYYq5oxO0 b4KGuI5PQJA4VRHPXxAleSe11LZNClB9xqGcVpXveofq4QJ2hPK4LKB5Y2nj9lRNJcAbGxAzfmL Inq3FyK7dQ7KXmaWDBX8W28Wdx7nqkZv1ad9xn8bl3VgbP2yCGd/8Qy5w0GEiBWDb01CR7DAarv r8s4Yxh/fcAN7UUPv6UPUJohVwfyTqtgwHF7YENeKf5EEpojOt1o+6WgEb6jNsJE0IM42RXTSwp h71IwZZVuKNsgWg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:vPDhZVbHyWPifrLF7tSIxtaCltFDeDQuvfqLEylAKzy5mKbvwGp uPv2Jq24dANRhmbf7eYvEsQ4upS6aS1OjOXbIiYwSFwSU4RhgvVFgRYl9WJxVxx4IassQoi Mvs/To+5XtKkf8pPrFdHmqGqHYyt6s6EViwYoOj7y4KIRu2c8yhX6Bz21qUIUcFgA/6qQTB Z3egzk1z50hIPyk3fihKw== UI-OutboundReport: notjunk:1;M01:P0:C9usHADVrBc=;o6G5wh9NGNi6UA3JISGcUQub0fF 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 /4TfHVS9FkxzjAtvhxdCwugDy00IV 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: 1770408288030154100 qemu_savevm_state_complete_precopy() requires that BQL is held. This fixes a crash when running with TCG accel. Signed-off-by: Lukas Straub --- migration/colo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index afab8eeb14d09c1db9b235121c5845b11a80deba..74338a59b563846f45621619420= 01889dd6191bc 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -457,9 +457,8 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, =20 /* Note: device state is saved into buffer */ ret =3D qemu_save_device_state(fb); - - bql_unlock(); if (ret < 0) { + bql_unlock(); goto out; } =20 @@ -472,6 +471,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, * to be blocked here. */ qemu_savevm_live_state(s->to_dst_file); + bql_unlock(); =20 qemu_fflush(fb); =20 --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408306; cv=none; d=zohomail.com; s=zohoarc; b=K2vly5+iEwduK25Jmx+z5F9IzYBdoYwTQnqGO/Ei1BQ2uPbWXgFkxDmxla7qAQ9u2MKydOjEeQHDenh6R8CEl4/JaFXvGl9uuUxhSD1O/0uK5+RIMsvVuu1vTgNHCova9uNld1aimMsqvizAaJTNhUNYdlLru/Ltzq5FTiHCfco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408306; 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=vSJQuYUZ4CP7GTvGG0IjnktlqbBJYwrNxJUnI30MbGE=; b=KFRan6jr7FrNJgi26GSztSCUXPYEBEnhkEWIrTVCJPEHXErhM6F6Ryu1BW5d4OoOMrr+rh8HKWymWopk3VMqT7GDFSAU5XMwEue5XJjBrgucYtV2vXhHYxW4OMNXSUZxfMwU5z2liLzUN0M23O7SIh9SYc6RFdcIXQrVHNSHPgM= 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 1770408306196815.6803313216653; Fri, 6 Feb 2026 12:05:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3c-0004Nq-C0; Fri, 06 Feb 2026 15:04:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1voS3I-0004FM-LV for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:44 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1voS3E-0008OW-LC for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:40 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M2Pda-1vp00f0gco-000aqq; Fri, 06 Feb 2026 21:03:27 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408207; x=1771013007; i=lukasstraub2@web.de; bh=vSJQuYUZ4CP7GTvGG0IjnktlqbBJYwrNxJUnI30MbGE=; 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=DnXfsbpWg/adZYU6b9M62RjhMWjEQa2Jyt+j4EFdiVO11hQnSsz7vQan3PfEAoVE D5k9Hva1o9dpuLSo/MO1DmOIBvDx7+hDocYDH1S7Aa3Uv3Vc29nrm4S8tiYzi6cVE MMlNw19GvtryD32O5z5KSDIyUf7BOKMDPSV2wXLaocoiF/FKHKlVletkDBYLXM9Am 8U+2dYB6CPFK1rUavUNa/MCzfSDL0rlAUfNcQW0q5uWF4q9Kl/Wpfw1rQbckqCO2t 8vCUiFBww7hYTnMwkbLnC2J/Adi2W4gFqeor5sfg9+Har+24alx+loEVOe2wh+qFt KGKsissBn6TrPFrC0g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:11 +0100 Subject: [PATCH v6 13/18] colo: Do not hold the BQL while receiving ram state. MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-13-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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=1414; i=lukasstraub2@web.de; h=from:subject:message-id; bh=8ihZLb+acd0F+AVt41Mu0anZidBMt2QTu9acWlOFPFQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkGxoJc9R3Q4fM5n3XSldsJpY7CsaG+VSEI/ uzB/jHo+2OJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WDuTEACHoxqT7vEckjE8geMwO38DhdcTKZrBeALeAEMzR43zTiQ5qOsppNFYvbQbVD0jEhgBB7B Im1XzPWk+M373l2c9KT+vbPw+JR1zoz+bnytZ0Rd/oNf+Syn4q/kMJiEWUDJHwh190nVfd/I0YV AFgKWUsFluLDutW3xQXWrcWeofOpEPr0dTsSOPpmktlD7dB+tLb0W7aYt2YDowqg/TwVp7NvIIZ XhdOmKclvvekhmc4d0uurpjfj0IPF3le93049Zo2R7Vb+T5TZ1PkPeHS1S/roccOEgZj2LyNQCn 5WERrdGw05LTubLd5Hoq6526du2z97dCtPMcdL2GJ37gR0z/Or3jXl7puL5mbUr+Ne+8XtFaoKJ 3bOkHj6w8It+1r/UiNb0axqceUH7f2kFQScSRKmKGu5MyQbWPoCuqcFfxicDw6U6yDgxtdPz3bP 0gjfA3JglKdeLdADp8BV5Z5jX9t7W/k5XVTbtTI15S1OvE0CdaEApQFTzwHCw1hr76EiHEYwJ9s PZD1mnFTlbIO3tQCR24LgZuK2bkmijnhGsKO/KQvpRTjHT/F5GJh04vdntJJ5dJsMoF7BmYpjEM Wd5ei7/BEgG+Y6Z7W5wpH0rd13vKpJHv2+zOb08tK1pFepEPq/8JDsrSMckhMuJ4Jr46FBdTMbU kLoFUfU7AAbdBIg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:BfcrLnmU/UFIzw4fiip16TTB5e7BmSgWv38lY7GA3jTmyEr1hbC phGSSCfN+X0g3cQM+VoJ4fggw18UEQiApgNU3lwccbf2rAu542T0EdHczPbYXo8NvbdOToC A1zV8dsagOPQgjisckLbYjoiYG2pB8rc50bZmdfNcs/+Lcb3qF2P1PC7MxgngSH4XeEmWCj 9fGKFUqrUR8u5Q1jIyVuQ== UI-OutboundReport: notjunk:1;M01:P0:S603cYod9AM=;vRVT6HgYyF4dRdq3n1akKKCvB2l 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 jo3iMQq8= 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: 1770408307365158500 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. Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 74338a59b563846f4562161942001889dd6191bc..cd1a2b94f497fcb25609bbe117f= eaa8eed1d7f50 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -684,11 +684,7 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, return; } =20 - bql_lock(); - cpu_synchronize_all_states(); ret =3D qemu_loadvm_state_main(mis->from_src_file, mis, errp); - bql_unlock(); - if (ret < 0) { return; } @@ -731,6 +727,8 @@ static void colo_incoming_process_checkpoint(MigrationI= ncomingState *mis, * With colo we load device vmstate during each checkpoint, on top of * a vm that was already running. Some devices expect a reset before * loading vmstate on such a previously running vm. + * + * NOTE: qemu_system_reset() calls cpu_synchronize_all_states() for us */ qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408374; cv=none; d=zohomail.com; s=zohoarc; b=HeYYEDBZUvWqFFpE00iAXXuuzmA03X8YWAgfu8FVq6RkD09pV9ImMUc0QGqYBgNN62AbvR4dVAhhYC5hStWoJ18w2JAy+6blTaSztFdaapnxopA+2TTOC7rwY2nUxGOmLbwL7nRuStnzaaSYV4YFeKxttkvnEPScJSD7H6I1fQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408374; 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=NPRScifiTgK3qkFDsRha4RlRArQuLKMT7x2FOENuMxA=; b=Twv3D/lmwX4QXxMmhlcatuGBBobCphKZ3Yh46gY7Dg4PiRRuLHhuOgXAjqPfVTcyjTmSEFCg0zKC28HWlwv7DfJx4PIPwQkGDYPCXqhip3iSYpXyvLvYkiHI39rOTCNkx8rUIzU1fOr3HJ8ReXHhZS/Q3R4YzT6iLLMi3kvIObk= 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 177040837429798.88860862540298; Fri, 6 Feb 2026 12:06:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3g-0004O4-8J; Fri, 06 Feb 2026 15:04: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 1voS3M-0004Fy-AX for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:46 -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 1voS3E-0008Oi-QC for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:42 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MALiZ-1vzCcu1u5T-00Ajjl; Fri, 06 Feb 2026 21:03:27 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408207; x=1771013007; i=lukasstraub2@web.de; bh=NPRScifiTgK3qkFDsRha4RlRArQuLKMT7x2FOENuMxA=; 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=lWy24Jn1FPR88+Ll24JAIb3O4tzB8KwQmbi88D5M+kZR+msEIxXb0czkfRBkTRAJ jZUGUVscdnEVkzxcHV4JNCECnb5uJ5ra7rE+6Fdk1ZhMnWb9LrKpB4cJPBPObMNHa 6oW4teaDdUayA7LDJo6ptJXMyRj8PgbuSm3/SVkN2ft+iRWoXQMT6M3Iklz0k0lYA ATmEM2sUMl9kuy97cCpehDt/ZhGRjqvgtDKsA9XQp35hB5msoHZ3oyHr+iu/2lzio 2CZI/8oun9w5aKoULPKosCcuMEHasFaUh8FDBm3NZYz6HtOTMvuzrRSRo9Pmel40S iwfW5qKgvkUNUAZSYg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:12 +0100 Subject: [PATCH v6 14/18] migration-test: Add COLO migration unit test MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-14-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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=10625; i=lukasstraub2@web.de; h=from:subject:message-id; bh=HDldps4OP7KhV57NbTGLFlMs9pbZfQwO+rWwU50owsg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkGQ7eMAZqU+1yk+NW9tH1vFeAMwDjIPs7w2 sp9pGyOfRWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WP4mEACkySRHuYtXPmBqGhWt6oRFKfoUW+WmUYuAkpkzaBlwrksrlROuDxkKXaUClgeu8JYniMh IepqwkGX+6/9M8xTM2R0gpUr/Ze6tl8eXmZL/LMsZW2GLOrbVlaRHaAO/qF0iJdbo7YWVnimxwC HJ024q4bn2ZsTzLBkylxuhf/PKPC2Ya/OYOOAh3rjEy6f+gSkWykwVdmzXw84FlE0IEoWqCSrXB 9Kge1wnLPdPI8zLv2loaasX8Tzk2PaxJWS/qOaVZ1pEDgs+tTPhdPNlJgnDXazOocoO/tFD3hH3 iQMVXFSGZkHJu6w1YumTi0pb1zYp8H5+xuZYJ4RMIBD6AxQsDMujCuwtsLHC0ICFms5aOPj9Ofk FhGDC1baFHfEIt40lAHkVoRppoZgge7KDtCcX9WyUX1GJAieVCqNvWmt9heOcmgHPke0Zb9Wtxe pbfSSFbD84/dopIQOaPVilVoegF0oUU84miM4HNbe7PBBoKqlS9KzeC0DfScSShIW8FAA2HE0W/ z9mnI1HnsV8jNlg8rHaTcwOY5GALaz4qIrLFpxa+hx11MIlKsIzdo4gVv5TF7SNq6dWNbn0A8nQ MEXdIm3K1aLK2sJC4ho6fshk9+2yVvOhE4qmLX+egAriek4WiGX1wQBTzhmK8GDA0NdUdwKCwLU 6f9nPDeMk7DnjUg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:i97WwHSPSBQsJ++/fs4KbFUR2LEm88mU25OawOzOQ1ZwQKrK+vb FJzNX0PTORjeHeHf3MpPJqiWMo+7hYzijWzdKeierZ2PjLsMxIlWIwpm7lDjh0PqnvT+vTK V1GtVFSxrXNxqhIg56cnlAcVuXgrx5C2em+HOIyJICJEb56Y8oFVEgnpSfCpaENH5pqt2Za A/GBidbAlOXZTfmGNuorQ== UI-OutboundReport: notjunk:1;M01:P0:YrH2Ty2sSkg=;ZTBqLSgQhg+UQvrxi/9XaxefQcw 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 8ilUbO4bf/2X0/ylsRffqKPi7/hUy 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: 1770408375783158500 Add a COLO migration test for COLO migration and failover. Reviewed-by: Fabiano Rosas Tested-by: Fabiano Rosas Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + tests/qtest/meson.build | 7 +- tests/qtest/migration-test.c | 1 + tests/qtest/migration/colo-tests.c | 198 +++++++++++++++++++++++++++++++++= ++++ tests/qtest/migration/framework.h | 5 + 5 files changed, 211 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 70e8b9cae59a1768ad9966d1291bd358a0712573..8e63e0a08fc7417036986f27c2d= 910eb99d8a96a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3854,6 +3854,7 @@ F: migration/colo* F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h +F: tests/qtest/migration/colo-tests.c F: docs/COLO-FT.txt =20 COLO Proxy diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index dfb83650c643d884daad53a66034ab7aa8c45509..624f7744ec9bd81c8823075b966= bc95f7750a667 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -371,6 +371,11 @@ if gnutls.found() endif endif =20 +migration_colo_files =3D [] +if get_option('replication').allowed() + migration_colo_files =3D [files('migration/colo-tests.c')] +endif + qtests =3D { 'aspeed_hace-test': files('aspeed-hace-utils.c', 'aspeed_hace-test.c'), 'aspeed_smc-test': files('aspeed-smc-utils.c', 'aspeed_smc-test.c'), @@ -382,7 +387,7 @@ qtests =3D { 'migration/migration-util.c') + dbus_vmstate1, 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], - 'migration-test': test_migration_files + migration_tls_files, + 'migration-test': test_migration_files + migration_tls_files + migration= _colo_files, 'pxe-test': files('boot-sector.c'), 'pnv-xive2-test': files('pnv-xive2-common.c', 'pnv-xive2-flush-sync.c', 'pnv-xive2-nvpg_bar.c'), diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 08936871741535c926eeac40a7d7c3f461c72fd0..e582f05c7dc2673dbd05a936df8= feb6c964b5bbc 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) migration_test_add_precopy(env); migration_test_add_cpr(env); migration_test_add_misc(env); + migration_test_add_colo(env); =20 ret =3D g_test_run(); =20 diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c new file mode 100644 index 0000000000000000000000000000000000000000..598a1d3821ed0a9031873270202= 7cebad47352fd --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * QTest testcases for COLO migration + * + * Copyright (c) 2025 Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "libqtest.h" +#include "migration/framework.h" +#include "migration/migration-qmp.h" +#include "migration/migration-util.h" +#include "qemu/module.h" + +static int test_colo_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + QTestState *from, *to; + void *data_hook =3D NULL; + + /* + * For the COLO test, both VMs will run in parallel. Thus both VMs wan= t to + * open the image read/write at the same time. Using read-only=3Don is= not + * possible here, because ide-hd does not support read-only backing im= age. + * + * So use -snapshot, where each qemu instance creates its own writable + * snapshot internally while leaving the real image read-only. + */ + args->start.opts_source =3D "-snapshot"; + args->start.opts_target =3D "-snapshot"; + + /* + * COLO migration code logs many errors when the migration socket + * is shut down, these are expected so we hide them here. + */ + args->start.hide_stderr =3D true; + + /* + * Test with yank with out of band capability since that is how it is + * used in production. + */ + args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; + + if (migrate_start(&from, &to, args->listen_uri, &args->start)) { + return -1; + } + + migrate_set_parameter_int(from, "x-checkpoint-delay", 300); + + if (args->start_hook) { + data_hook =3D args->start_hook(from, to); + } + + migrate_ensure_converge(from); + wait_for_serial("src_serial"); + + migrate_qmp(from, to, args->connect_uri, NULL, "{}"); + + wait_for_migration_status(from, "colo", NULL); + wait_for_resume(to, get_dst()); + + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + + /* wait for 3 checkpoints */ + for (int i =3D 0; i < 3; i++) { + qtest_qmp_eventwait(to, "RESUME"); + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + } + + if (failover_during_checkpoint) { + qtest_qmp_eventwait(to, "STOP"); + } + if (primary_failover) { + qtest_qmp_assert_success(from, "{'exec-oob': 'yank', 'id': 'yank-c= md', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}= "); + qtest_qmp_assert_success(from, "{'execute': 'x-colo-lost-heartbeat= '}"); + wait_for_serial("src_serial"); + } else { + qtest_qmp_assert_success(to, "{'exec-oob': 'yank', 'id': 'yank-cmd= ', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}"); + qtest_qmp_assert_success(to, "{'execute': 'x-colo-lost-heartbeat'}= "); + wait_for_serial("dest_serial"); + } + + if (args->end_hook) { + args->end_hook(from, to, data_hook); + } + + migrate_end(from, to, !primary_failover); + + return 0; +} + +static void test_colo_plain_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "tcp:127.0.0.1:0"; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void *hook_start_multifd(QTestState *from, QTestState *to) +{ + return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none"); +} + +static void test_colo_multifd_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "defer"; + args->start_hook =3D hook_start_multifd; + args->start.caps[MIGRATION_CAPABILITY_MULTIFD] =3D true; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void test_colo_plain_primary_failover(char *name, MigrateCommon *ar= gs) +{ + test_colo_plain_common(args, false, true); +} + +static void test_colo_plain_secondary_failover(char *name, MigrateCommon *= args) +{ + test_colo_plain_common(args, false, false); +} + +static void test_colo_multifd_primary_failover(char *name, MigrateCommon *= args) +{ + test_colo_multifd_common(args, false, true); +} + +static void test_colo_multifd_secondary_failover(char *name, + MigrateCommon *args) +{ + test_colo_multifd_common(args, false, false); +} + +static void test_colo_plain_primary_failover_checkpoint(char *name, + MigrateCommon *arg= s) +{ + test_colo_plain_common(args, true, true); +} + +static void test_colo_plain_secondary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_plain_common(args, true, false); +} + +static void test_colo_multifd_primary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_multifd_common(args, true, true); +} + +static void test_colo_multifd_secondary_failover_checkpoint(char *name, + MigrateCommon = *args) +{ + test_colo_multifd_common(args, true, false); +} + +void migration_test_add_colo(MigrationTestEnv *env) +{ + if (!env->full_set) { + return; + } + + migration_test_add("/migration/colo/plain/primary_failover", + test_colo_plain_primary_failover); + migration_test_add("/migration/colo/plain/secondary_failover", + test_colo_plain_secondary_failover); + + migration_test_add("/migration/colo/multifd/primary_failover", + test_colo_multifd_primary_failover); + migration_test_add("/migration/colo/multifd/secondary_failover", + test_colo_multifd_secondary_failover); + + migration_test_add("/migration/colo/plain/primary_failover_checkpoint", + test_colo_plain_primary_failover_checkpoint); + migration_test_add("/migration/colo/plain/secondary_failover_checkpoin= t", + test_colo_plain_secondary_failover_checkpoint); + + migration_test_add("/migration/colo/multifd/primary_failover_checkpoin= t", + test_colo_multifd_primary_failover_checkpoint); + migration_test_add("/migration/colo/multifd/secondary_failover_checkpo= int", + test_colo_multifd_secondary_failover_checkpoint); +} diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index 40984d04930da2d181326d9f6a742bde49018103..80eef758932ce9c301ed6c0f638= 3d18756144870 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -264,5 +264,10 @@ void migration_test_add_file(MigrationTestEnv *env); void migration_test_add_precopy(MigrationTestEnv *env); void migration_test_add_cpr(MigrationTestEnv *env); void migration_test_add_misc(MigrationTestEnv *env); +#ifdef CONFIG_REPLICATION +void migration_test_add_colo(MigrationTestEnv *env); +#else +static inline void migration_test_add_colo(MigrationTestEnv *env) {}; +#endif =20 #endif /* TEST_FRAMEWORK_H */ --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408375; cv=none; d=zohomail.com; s=zohoarc; b=UApvNGgHaB1wlZuB/VQ/87cvH0+u7hYvEFyjGZ/ddZ2liwfS2mgi6geniw9+OJIxdWWlago4UoxpQhNLLmaiYkeqLJaNGt8HQFl3wCetaJ90wmpGkmcnBJVcMa45/naHKkgnGHoxH6BT+dOlhcSvY9A8JY8X2M3VJmnFa19DedE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408375; 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=DHQzHBoMt9UcskNHv5moJtho17FjGy9wLz2dMotNemw=; b=hbcah8iDdrmPNarS1jvzMLPLjzZS2RwSiZNSppguax/g1pHls3Zq3u68LAHlZwDMxG+lQlSh7f0hAa3u6YwTXXbxUGWiHFVHAB7qMzg/Rfa5cNRgN8dFfFoDQk9IThTHnWqnty1fQ83eO40ftOG6nhftunVfSfDivAfA6f/1PQo= 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 177040837590898.6666781614058; Fri, 6 Feb 2026 12:06:15 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3g-0004OD-M2; Fri, 06 Feb 2026 15:04: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 1voS3M-0004Fx-AH for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:46 -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 1voS3E-0008PD-NQ for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:42 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M4sbr-1vn58S3JO3-0033gr; Fri, 06 Feb 2026 21:03:27 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408208; x=1771013008; i=lukasstraub2@web.de; bh=DHQzHBoMt9UcskNHv5moJtho17FjGy9wLz2dMotNemw=; 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=sgGdbswT9yv6B9k/9emuS69saAIul+l9cbjZpbaj7J0BeVGsY1xb5qP3mfxaLRf4 KPZbVn+CtYeAcBrAADLeed4XPrCBXNOYCQisDZlsGLLO7WnDEH0TZNwi90mOR90cp a5zQycTME22Kak9AVwYuJZm0L+kI/eU9Z/tr6TfDE60npx4Of79kkSWrUUqy0JuWN zQA9T+/+ClvrDkWWqHcGxQrQilgqdaxWkdD9SvY/m/PDe06f4yfixNmQWSKLV+94b 8d3IKAE7069ba/2hLn3aHv7KofSD3XCZhUVxqWWi7MrIEK73em9ZOp5VZfrJpWGVh YA/Z3pGu10MsgJd3YQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:13 +0100 Subject: [PATCH v6 15/18] Convert colo main documentation to restructuredText MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-15-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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=0lpNjifnmfSQfDD2tpoOsffD4RYUt0R59Bfc2oHij+4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBphkkGlT6mmu//SL69eKPfQBaj5g5ukKR+NBk1s 7SETaMLRIWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WDYGD/99doAkU1Xwq2d6gDfT1oP4bFbHkiMB1fgcxKLgWhTwSMRfQB86i5dDnjeyeBHSWlBtW8y TFWl0uFTCVyh0SfzeO5KfOltja3xDe76qW/O17ZGohHjef4q3BQJVL5unGlkOvw35yC6/lUwe9P 4+zQVcI3CdHnY6+D9h6FRwQtW1M/5qxKKDPiMsWgABq193I2uOfReZNxmeH1gGPtXCvTsoOPp1n LSTcuCKUHyvBX8qbFOsDURB103dcIxROecm4zTPWcwLiA/twfSLgOtSB3n7y46hO9A3fLZehSp8 KlCsnrXn9YWOIyd3T7BX/IpCgqS/9fjf/BopH8zwTyzaWwIWPMjldFtNYxaN2DeeegM7UHpLA4b PJhMY/Y1U995CtldsltRk7z6NODr0rnQIxr49Zj09gy5cIKLF5Y3oasm9FEO5WzxwCMR6j702+q 9eMLgoYIaXVWy5SwZlCFBAA1aqU9RruTljZcA8kQowyidXTkqKpedyTWxKM7DO7vnPsTX1WfW7H 345Hxpvvld9ioGYHPEnA9wTpt5LNDRfcOoAdepCQc3PajtfvQjBntvKuvgNKd37jaPzs3peNlAH Il5xN0MIMoVStr9uPjm3r4mskjq2PUHLZ5d3cnzIHYyxbX32YYUHJVWQqHY81i1zuCNfc0WUFmY oHEwx0UfgVu7jjA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:oA/kQDf6UWaeTglfuhLvc7sS8BIUSL6QFMU1/nxA/ALwtqZ1bVp 5qp+gHOyGmhAg9n450NBgwLaxBigUn4+uiIOmQU4wM9yuFiebL/rsnRbpancPs2tW4d65Bs ffx25blGS/ZmkGxJOmevPNJ3VQC3DWMgPwbEw9ig7K5pxfTivlgjar2pLuEBcWwZ56dwRfe bDf8PAB/pkPSWKHPmewXA== UI-OutboundReport: notjunk:1;M01:P0:6TiN8ezCHFc=;tkr9ExRPlQf+lzhnFadZWoHov1y 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 Cy6avapjW5HmeBP7T1OoflQZ6YWYQ 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: 1770408377293154100 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 8e63e0a08fc7417036986f27c2d910eb99d8a96a..f645590b8b940919bdc84ad585e= e493f5452fc20 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3855,7 +3855,7 @@ F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: tests/qtest/migration/colo-tests.c -F: docs/COLO-FT.txt +F: docs/system/qemu-colo.rst =20 COLO Proxy M: Zhang Chen diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt deleted file mode 100644 index 2283a09c080b8996f9767eeb415e8d4fbdc940af..000000000000000000000000000= 0000000000000 --- a/docs/COLO-FT.txt +++ /dev/null @@ -1,334 +0,0 @@ -COarse-grained LOck-stepping Virtual Machines for Non-stop Service ----------------------------------------- -Copyright (c) 2016 Intel Corporation -Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - -This document gives an overview of COLO's design and how to use it. - -=3D=3D Background =3D=3D -Virtual machine (VM) replication is a well known technique for providing -application-agnostic software-implemented hardware fault tolerance, -also known as "non-stop service". - -COLO (COarse-grained LOck-stepping) is a high availability solution. -Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the -same request from client, and generate response in parallel too. -If the response packets from PVM and SVM are identical, they are released -immediately. Otherwise, a VM checkpoint (on demand) is conducted. - -=3D=3D Architecture =3D=3D - -The architecture of COLO is shown in the diagram below. -It consists of a pair of networked physical nodes: -The primary node running the PVM, and the secondary node running the SVM -to maintain a valid replica of the PVM. -PVM and SVM execute in parallel and generate output of response packets for -client requests according to the application semantics. - -The incoming packets from the client or external network are received by t= he -primary node, and then forwarded to the secondary node, so that both the P= VM -and the SVM are stimulated with the same requests. - -COLO receives the outbound packets from both the PVM and SVM and compares = them -before allowing the output to be sent to clients. - -The SVM is qualified as a valid replica of the PVM, as long as it generates -identical responses to all client requests. Once the differences in the ou= tputs -are detected between the PVM and SVM, COLO withholds transmission of the -outbound packets until it has successfully synchronized the PVM state to t= he SVM. - - Primary Node = Secondary Node -+------------+ +-----------------------+ +------------------------+= +------------+ -| | | HeartBeat +<----->+ HeartBeat |= | | -| Primary VM | +-----------+-----------+ +-----------+------------+= |Secondary VM| -| | | | = | | -| | +-----------|-----------+ +-----------|------------+= | | -| | |QEMU +---v----+ | |QEMU +----v---+ |= | | -| | | |Failover| | | |Failover| |= | | -| | | +--------+ | | +--------+ |= | | -| | | +---------------+ | | +---------------+ |= | | -| | | | VM Checkpoint +-------------->+ VM Checkpoint | |= | | -| | | +---------------+ | | +---------------+ |= | | -|Requests<--------------------------\ /-----------------\ /---------------= ------>Requests| -| | | ^ ^ | | | | |= | | -|Responses+---------------------\ /-|-|------------\ /--------------------= -----+Responses| -| | | | | | | | | | | | | |= | | -| | | +-----------+ | | | | | | | | | | +----------+ |= | | -| | | | COLO disk | | | | | | | | | | | | COLO disk| |= | | -| | | | Manager +---------------------------->| Manager | |= | | -| | | ++----------+ v v | | | | | v v | +---------++ |= | | -| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | |= | | -| | | || COLO Proxy || | | COLO Proxy | | |= | | -| | | || (compare packet || | |(adjust sequence | | |= | | -| | | ||and mirror packet)|| | | and ACK) | | |= | | -| | | |+------------+---+-+| | +-----------------+ | |= | | -+------------+ +-----------------------+ +------------------------+= +------------+ -+------------+ | | | | = +------------+ -| VM Monitor | | | | | = | VM Monitor | -+------------+ | | | | = +------------+ -+---------------------------------------+ +-------------------------= ---------------+ -| Kernel | | | | | Kernel | = | -+---------------------------------------+ +-------------------------= ---------------+ - | | | | - +--------------v+ +---------v---+--+ +------------------+ +v---= ----------+ - | Storage | |External Network| | External Network | | S= torage | - +---------------+ +----------------+ +------------------+ +----= ----------+ - - -=3D=3D Components introduction =3D=3D - -You can see there are several components in COLO's diagram of architecture. -Their functions are described below. - -HeartBeat: -Runs on both the primary and secondary nodes, to periodically check platfo= rm -availability. When the primary node suffers a hardware fail-stop failure, -the heartbeat stops responding, the secondary node will trigger a failover -as soon as it determines the absence. - -COLO disk Manager: -When primary VM writes data into image, the colo disk manager captures thi= s data -and sends it to secondary VM's which makes sure the context of secondary V= M's -image is consistent with the context of primary VM 's image. -For more details, please refer to docs/block-replication.txt. - -Checkpoint/Failover Controller: -Modifications of save/restore flow to realize continuous migration, -to make sure the state of VM in Secondary side is always consistent with V= M in -Primary side. - -COLO Proxy: -Delivers packets to Primary and Secondary, and then compare the responses = from -both side. Then decide whether to start a checkpoint according to some rul= es. -Please refer to docs/colo-proxy.txt for more information. - -Note: -HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess -by using 'x-colo-lost-heartbeat' command. - -=3D=3D COLO operation status =3D=3D - -+-----------------+ -| | -| Start COLO | -| | -+--------+--------+ - | - | Main qmp command: - | migrate-set-capabilities with x-colo - | migrate - | - v -+--------+--------+ -| | -| COLO running | -| | -+--------+--------+ - | - | Main qmp command: - | x-colo-lost-heartbeat - | or - | some error happened - v -+--------+--------+ -| | send qmp event: -| COLO failover | COLO_EXIT -| | -+-----------------+ - -COLO use the qmp command to switch and report operation status. -The diagram just shows the main qmp command, you can get the detail -in test procedure. - -=3D=3D Test procedure =3D=3D -Note: Here we are running both instances on the same host for testing, -change the IP Addresses if you want to run it on two hosts. Initially -127.0.0.1 is the Primary Host and 127.0.0.2 is the Secondary Host. - -=3D=3D Startup qemu =3D=3D -1. Primary: -Note: Initially, $imagefolder/primary.qcow2 needs to be copied to all host= s. -You don't need to change any IP's here, because 0.0.0.0 listens on any -interface. The chardev's with 127.0.0.1 IP's loopback to the local qemu -instance. - -# imagefolder=3D"/mnt/vms/colo-test-primary" - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name primary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don,wai= t=3Doff \ - -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Don,wa= it=3Don \ - -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server=3Don,= wait=3Doff \ - -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ - -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,server=3D= on,wait=3Doff \ - -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ - -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirror0 \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,indev=3D= compare_out \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outdev= =3Dcompare0 \ - -object iothread,id=3Diothread1 \ - -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_in=3D= compare1,\ -outdev=3Dcompare_out0,iothread=3Diothread1 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.driver=3D= qcow2 -S - -2. Secondary: -Note: Active and hidden images need to be created only once and the -size should be the same as primary.qcow2. Again, you don't need to change -any IP's here, except for the $primary_ip variable. - -# imagefolder=3D"/mnt/vms/colo-test-secondary" -# primary_ip=3D127.0.0.1 - -# qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G - -# qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name secondary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-ms= =3D1000 \ - -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-ms= =3D1000 \ - -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dred0 \ - -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3Dred1= \ - -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ - -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.qcow= 2,driver=3Dqcow2 \ - -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary,fil= e.driver=3Dqcow2,\ -top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active.qco= w2,\ -file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/seco= ndary-hidden.qcow2,\ -file.backing.backing=3Dparent0 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0=3Dchilds0 \ - -incoming tcp:0.0.0.0:9998 - - -3. On Secondary VM's QEMU monitor, issue command -{"execute":"qmp_capabilities"} -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "da= ta": {"host": "0.0.0.0", "port": "9999"} } } } -{"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable= ": true } } - -Note: - a. The qmp command nbd-server-start and nbd-server-add must be run - before running the qmp command migrate on primary QEMU - b. Active disk, hidden disk and nbd target's length should be the - same. - c. It is better to put active disk and hidden disk in ramdisk. They - will be merged into the parent disk on failover. - -4. On Primary VM's QEMU monitor, issue command: -{"execute":"qmp_capabilities"} -{"execute": "human-monitor-command", "arguments": {"command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", "nod= e": "replication0" } } -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } - - Note: - a. There should be only one NBD Client for each primary disk. - b. The qmp command line must be run after running qmp command line in - secondary qemu. - -5. After the above steps, you will see, whenever you make changes to PVM, = SVM will be synced. -You can issue command '{ "execute": "migrate-set-parameters" , "arguments"= :{ "x-checkpoint-delay": 2000 } }' -to change the idle checkpoint period time - -6. Failover test -You can kill one of the VMs and Failover on the surviving VM: - -If you killed the Secondary, then follow "Primary Failover". After that, -if you want to resume the replication, follow "Primary resume replication" - -If you killed the Primary, then follow "Secondary Failover". After that, -if you want to resume the replication, follow "Secondary resume replicatio= n" - -=3D=3D Primary Failover =3D=3D -The Secondary died, resume on the Primary - -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "ch= ild": "children.1"} } -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= del replication0" } } -{"execute": "object-del", "arguments":{ "id": "comp0" } } -{"execute": "object-del", "arguments":{ "id": "iothread1" } } -{"execute": "object-del", "arguments":{ "id": "m0" } } -{"execute": "object-del", "arguments":{ "id": "redire0" } } -{"execute": "object-del", "arguments":{ "id": "redire1" } } -{"execute": "x-colo-lost-heartbeat" } - -=3D=3D Secondary Failover =3D=3D -The Primary died, resume on the Secondary and prepare to become the new Pr= imary - -{"execute": "nbd-server-stop"} -{"execute": "x-colo-lost-heartbeat"} - -{"execute": "object-del", "arguments":{ "id": "f2" } } -{"execute": "object-del", "arguments":{ "id": "f1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red0" } } - -{"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {"typ= e": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.0= ", "port": "9003" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.= 0", "port": "9004" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.0.= 0.1", "port": "9001" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend": {"= type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.= 0.0.1", "port": "9001" } }, "server": false } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127= .0.0.1", "port": "9005" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9005" } }, "server": false } } } } - -=3D=3D Primary resume replication =3D=3D -Resume replication after new Secondary is up. - -Start the new Secondary (Steps 2 and 3 above), then on the Primary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync"} } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } - -Note: -If this Primary previously was a Secondary, then we need to insert the -filters before the filter-rewriter by using the -""insert": "before", "position": "id=3Drew0"" Options. See below. - -=3D=3D Secondary resume replication =3D=3D -Become Primary and resume replication after new Secondary is up. Note -that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. - -Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), -then on the old Secondary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync" } } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "queue= ": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } - -=3D=3D TODO =3D=3D -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. diff --git a/docs/system/index.rst b/docs/system/index.rst index 427b020483104f6589878bbf255a367ae114c61b..6268c41aea9c74dc3e59d896b5a= e082360bfbb1a 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -41,3 +41,4 @@ or Hypervisor.Framework. igvm vm-templating sriov + qemu-colo diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst new file mode 100644 index 0000000000000000000000000000000000000000..4b5fbbf398f8a5c4ea6baad615b= de94b2b4678d2 --- /dev/null +++ b/docs/system/qemu-colo.rst @@ -0,0 +1,360 @@ +Qemu COLO Fault Tolerance +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. + +This document gives an overview of COLO's design and how to use it. + +Background +---------- +Virtual machine (VM) replication is a well known technique for providing +application-agnostic software-implemented hardware fault tolerance, +also known as "non-stop service". + +COLO (COarse-grained LOck-stepping) is a high availability solution. +Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the +same request from client, and generate response in parallel too. +If the response packets from PVM and SVM are identical, they are released +immediately. Otherwise, a VM checkpoint (on demand) is conducted. + +Architecture +------------ +The architecture of COLO is shown in the diagram below. +It consists of a pair of networked physical nodes: +The primary node running the PVM, and the secondary node running the SVM +to maintain a valid replica of the PVM. +PVM and SVM execute in parallel and generate output of response packets for +client requests according to the application semantics. + +The incoming packets from the client or external network are received by t= he +primary node, and then forwarded to the secondary node, so that both the P= VM +and the SVM are stimulated with the same requests. + +COLO receives the outbound packets from both the PVM and SVM and compares = them +before allowing the output to be sent to clients. + +The SVM is qualified as a valid replica of the PVM, as long as it generates +identical responses to all client requests. Once the differences in the ou= tputs +are detected between the PVM and SVM, COLO withholds transmission of the +outbound packets until it has successfully synchronized the PVM state to t= he SVM. + +Overview:: + + Primary Node = Secondary Node + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + | | | HeartBeat +<----->+ HeartBeat = | | | + | Primary VM | +-----------+-----------+ +-----------+---------= ---+ |Secondary VM| + | | | | = | | + | | +-----------|-----------+ +-----------|---------= ---+ | | + | | |QEMU +---v----+ | |QEMU +----v---+ = | | | + | | | |Failover| | | |Failover| = | | | + | | | +--------+ | | +--------+ = | | | + | | | +---------------+ | | +---------------+ = | | | + | | | | VM Checkpoint +-------------->+ VM Checkpoint | = | | | + | | | +---------------+ | | +---------------+ = | | | + |Requests<--------------------------\ /-----------------\ /-----------= ---------->Requests| + | | | ^ ^ | | | | = | | | + |Responses+---------------------\ /-|-|------------\ /----------------= ---------+Responses| + | | | | | | | | | | | | | = | | | + | | | +-----------+ | | | | | | | | | | +---------= -+ | | | + | | | | COLO disk | | | | | | | | | | | | COLO dis= k| | | | + | | | | Manager +---------------------------->| Manager = | | | | + | | | ++----------+ v v | | | | | v v | +---------= ++ | | | + | | | |+-----------+-+-+-++| | ++-+--+-+---------+ = | | | | + | | | || COLO Proxy || | | COLO Proxy | = | | | | + | | | || (compare packet || | |(adjust sequence | = | | | | + | | | ||and mirror packet)|| | | and ACK) | = | | | | + | | | |+------------+---+-+| | +-----------------+ = | | | | + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + +------------+ | | | = | +------------+ + | VM Monitor | | | | = | | VM Monitor | + +------------+ | | | = | +------------+ + +---------------------------------------+ +---------------------= -------------------+ + | Kernel | | | | | Kernel = | | + +---------------------------------------+ +---------------------= -------------------+ + | | | | + +--------------v+ +---------v---+--+ +------------------+ += v-------------+ + | Storage | |External Network| | External Network | |= Storage | + +---------------+ +----------------+ +------------------+ += --------------+ + +Components introduction +^^^^^^^^^^^^^^^^^^^^^^^ +You can see there are several components in COLO's diagram of architecture. +Their functions are described below. + +HeartBeat +~~~~~~~~~ +Runs on both the primary and secondary nodes, to periodically check platfo= rm +availability. When the primary node suffers a hardware fail-stop failure, +the heartbeat stops responding, the secondary node will trigger a failover +as soon as it determines the absence. + +COLO disk Manager +~~~~~~~~~~~~~~~~~ +When primary VM writes data into image, the colo disk manager captures thi= s data +and sends it to secondary VM's which makes sure the context of secondary V= M's +image is consistent with the context of primary VM 's image. +For more details, please refer to docs/block-replication.txt. + +Checkpoint/Failover Controller +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Modifications of save/restore flow to realize continuous migration, +to make sure the state of VM in Secondary side is always consistent with V= M in +Primary side. + +COLO Proxy +~~~~~~~~~~ +Delivers packets to Primary and Secondary, and then compare the responses = from +both side. Then decide whether to start a checkpoint according to some rul= es. +Please refer to docs/colo-proxy.txt for more information. + +Note: +HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess +by using 'x-colo-lost-heartbeat' command. + +COLO operation status +^^^^^^^^^^^^^^^^^^^^^ + +Overview:: + + +-----------------+ + | | + | Start COLO | + | | + +--------+--------+ + | + | Main qmp command: + | migrate-set-capabilities with x-colo + | migrate + | + v + +--------+--------+ + | | + | COLO running | + | | + +--------+--------+ + | + | Main qmp command: + | x-colo-lost-heartbeat + | or + | some error happened + v + +--------+--------+ + | | send qmp event: + | COLO failover | COLO_EXIT + | | + +-----------------+ + + +COLO use the qmp command to switch and report operation status. +The diagram just shows the main qmp command, you can get the detail +in test procedure. + +Test procedure +-------------- +Note: Here we are running both instances on the same host for testing, +change the IP Addresses if you want to run it on two hosts. Initially +``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. + +Startup qemu +^^^^^^^^^^^^ +**1. Primary**: +Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +You don't need to change any IP's here, because ``0.0.0.0`` listens on any +interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu +instance:: + + # imagefolder=3D"/mnt/vms/colo-test-primary" + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name primary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don= ,wait=3Doff \ + -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Do= n,wait=3Don \ + -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server= =3Don,wait=3Doff \ + -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ + -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,serve= r=3Don,wait=3Doff \ + -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ + -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirr= or0 \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,inde= v=3Dcompare_out \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outd= ev=3Dcompare0 \ + -object iothread,id=3Diothread1 \ + -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_i= n=3Dcompare1,\ + outdev=3Dcompare_out0,iothread=3Diothread1 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.drive= r=3Dqcow2 -S + + +**2. Secondary**: +Note: Active and hidden images need to be created only once and the +size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge +any IP's here, except for the ``$primary_ip`` variable:: + + # imagefolder=3D"/mnt/vms/colo-test-secondary" + # primary_ip=3D127.0.0.1 + + # qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G + + # qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name secondary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-= ms=3D1000 \ + -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-= ms=3D1000 \ + -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dr= ed0 \ + -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3D= red1 \ + -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ + -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.= qcow2,driver=3Dqcow2 \ + -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary= ,file.driver=3Dqcow2,\ + top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active= .qcow2,\ + file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/= secondary-hidden.qcow2,\ + file.backing.backing=3Dparent0 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0=3Dchilds0 \ + -incoming tcp:0.0.0.0:9998 + + +**3.** On Secondary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet",= "data": {"host": "0.0.0.0", "port": "9999"} } } } + {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writ= able": true } } + +Note: + a. The qmp command ``nbd-server-start`` and ``nbd-server-add`` must be r= un + before running the qmp command migrate on primary QEMU + b. Active disk, hidden disk and nbd target's length should be the + same. + c. It is better to put active disk and hidden disk in ramdisk. They + will be merged into the parent disk on failover. + +**4.** On Primary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } + +Note: + a. There should be only one NBD Client for each primary disk. + b. The qmp command line must be run after running qmp command line in + secondary qemu. + +**5.** After the above steps, you will see, whenever you make changes to P= VM, SVM will be synced. +You can issue command ``{ "execute": "migrate-set-parameters" , "arguments= ":{ "x-checkpoint-delay": 2000 } }`` +to change the idle checkpoint period time + +Failover test +^^^^^^^^^^^^^ +You can kill one of the VMs and Failover on the surviving VM: + +If you killed the Secondary, then follow "Primary Failover". +After that, if you want to resume the replication, follow "Primary resume = replication" + +If you killed the Primary, then follow "Secondary Failover". +After that, if you want to resume the replication, follow "Secondary resum= e replication" + +Primary Failover +~~~~~~~~~~~~~~~~ +The Secondary died, resume on the Primary:: + + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "object-del", "arguments":{ "id": "comp0" } } + {"execute": "object-del", "arguments":{ "id": "iothread1" } } + {"execute": "object-del", "arguments":{ "id": "m0" } } + {"execute": "object-del", "arguments":{ "id": "redire0" } } + {"execute": "object-del", "arguments":{ "id": "redire1" } } + {"execute": "x-colo-lost-heartbeat" } + +Secondary Failover +~~~~~~~~~~~~~~~~~~ +The Primary died, resume on the Secondary and prepare to become the new Pr= imary:: + + {"execute": "nbd-server-stop"} + {"execute": "x-colo-lost-heartbeat"} + + {"execute": "object-del", "arguments":{ "id": "f2" } } + {"execute": "object-del", "arguments":{ "id": "f1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red0" } } + + {"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0= .0.0", "port": "9003" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.= 0.0.0", "port": "9004" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9001" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend"= : {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "= 127.0.0.1", "port": "9001" } }, "server": false } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend= ": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": = "127.0.0.1", "port": "9005" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backen= d": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host":= "127.0.0.1", "port": "9005" } }, "server": false } } } } + +Primary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Resume replication after new Secondary is up. + +Start the new Secondary (Steps 2 and 3 above), then on the Primary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } + +Note: +If this Primary previously was a Secondary, then we need to insert the +filters before the filter-rewriter by using the +""insert": "before", "position": "id=3Drew0"" Options. See below. + +Secondary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Become Primary and resume replication after new Secondary is up. Note +that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. + +Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), +then on the old Secondary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } + +TODO +---- +1. Support shared storage. +2. Develop the heartbeat part. +3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408386; cv=none; d=zohomail.com; s=zohoarc; b=N1XltUeq4PsiZahvy7Ia0EHMU31eaOziLEm7u3dCgO/VnZNwnoZY+GM4PWkYlwHEG/pOtVnb2+0pKPVsf41IjE+BMt+BKUs/hQIBGVAjCmCn4RI76/qbWmSgNm0TS8Yuc9rY8O81pDKulZt2BSEyRbntzpmG2CEi7eTVd1WmiGo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408386; 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=aCE9ALCBCdJ8mpTZ0A7dpUBjKUFQ6GJlewRzbnO5Y5uWQi9TMgQbjkbCR1lOw7rBB9TW0JL0lMvpluZOKzghFQsmWd+PcWcdiAHzk9+iDShInV5ZyQUAnJDOcWyHJaKmVS3IooymGNooKor6nAjiTYG6SI1BY+FJ4ORSQ8z06JE= 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 1770408386628595.5101463447445; Fri, 6 Feb 2026 12:06:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3X-0004Jz-18; Fri, 06 Feb 2026 15:03: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 1voS3M-0004Fz-Am for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:47 -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 1voS3E-0008Oa-LT for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:42 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MAtwr-1vzkb30S77-00ABlz; Fri, 06 Feb 2026 21:03:28 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408208; x=1771013008; 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=AlErLvQtl4AhlbuXckVOp841Bsy8rMLEJpZ1jt6+eUILw0hRb4hgeLYPbarDgIsd FbWevnggei1rBPt9ie3wE7DbUTn60PFuRZAaknzyIJ7jk4+1A0Iva3L6yhfHR3uxC md8VypwLLkrW+ceE+HoXjZDiedXQK33WOhPo8J3XeMLjSAfu3IL4LhbQSlYtTXz/w f3FJI3487mNQxIy250WEQwSVIzyR7KTVEyPt/qTg9lFD+Ds0n3wa3V3xpPzHWTXHH 2fwFMOHudmUcym+trNq5C1fK85ZI7DukeZ2Oehl/vPaTNYfSqqeJB5xL989EF4ZOU Q0VFhZKIElhpG0UTIA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:14 +0100 Subject: [PATCH v6 16/18] qemu-colo.rst: Miscellaneous changes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-16-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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/ZANAwAKATWrCyicXbJYAcsmYgBphkkGrXbbuwImUIEpmlxDQ2+xEMA/5Zf5eZ1Kk GiNkZ3ydXGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WGgKEAC5M8/1oKEBFrZLHnIF0gUTX8q4HJvFDSy5GyL0jiDGEAhYiWSxvsC+NkinQJzUChRXtMZ 3eWyIwk6DIV5SAMoeQg2zoMceCmydhA5+cGwTGEfhEMZsLVnUqVkCiQdJOtb+E89iMNeaz7BAQR d0mKkGWqYLHLCcV9kszlzPwLn98/7VgeVka67+hdwePbtwZDThlu3oEhocFcqlhTSLU/a9jdRWw 5dS+6hkYYwODV8EV8Qm8AUIkHdz1jGA90f4hdGIiT/YqKDKKKrBN9M8gK62m4Q0uD2QGhECa1oB HX9ZoK/8a8y5Ag7USFDFfCeNfMNmbXK10yJBFsdXh5zKtNn/0KhJ2HCEW0nZsOcIQUO4GluwkFr s+9fKLWrYUBmqkA04V76i6zi8KTLwfgf3YYo0BRCAtmwwBh+kytj45XKidD/nz/Mv0Y5/mytrh7 fwBxAMP+j3AG8By6m/ZECcF5ef7TTgEnvcP5WvM+G1I19MwaIbxj4NKljKZw3q0iqSlyoOagIXw MbrmoWI3nKktfcxUFIfqNuQIB6D6zbqg7nfIHv2Bx9uD27pKnZMi/HHI6VTEmYkwlsOTPpnXjUO NQ/zuHgviqbzYqg5G0G5EhVHhO805UyOWL6cNKQNkEksyyBJqmkBU9UZ0KdPWPHlzaxZr/3/pCA xqQvDtEVyEyc3yg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:DIfL4tHEiTTZOHd68u2G/Ujk0d2K2HAa3JpOA6P96PcGHYO5Bze iU9Mpmx8obSt4P2AsqTauxhB0KKhQhvm9hsxddpbVcO6zfFICzB37fpUWeKvoVD/qv+sIZa wYpA/1NhYQeuNlQDNrcs1lNxMdEd+oP0GOOV1o1AlGtInaNnboqEDBqIb8mcFSLuopmn5Ps Qlo2RwoQjxp3afikxqLTA== UI-OutboundReport: notjunk:1;M01:P0:gtTi/Rw/K2o=;I2dnj+JS82bjBbPr+W2KJcrfr5x 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 NWJGCABs= 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: 1770408389417154100 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 4b5fbbf398f8a5c4ea6baad615bde94b2b4678d2..a70e61aa09391cda933031535fa= 982d27cf6654b 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -1,13 +1,6 @@ Qemu COLO Fault Tolerance =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =20 -| Copyright (c) 2016 Intel Corporation -| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -| Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - This document gives an overview of COLO's design and how to use it. =20 Background @@ -82,8 +75,8 @@ Overview:: | Storage | |External Network| | External Network | |= Storage | +---------------+ +----------------+ +------------------+ += --------------+ =20 -Components introduction -^^^^^^^^^^^^^^^^^^^^^^^ +Components +^^^^^^^^^^ You can see there are several components in COLO's diagram of architecture. Their functions are described below. =20 @@ -157,14 +150,21 @@ in test procedure. =20 Test procedure -------------- -Note: Here we are running both instances on the same host for testing, + +Setup +^^^^^ + +Here we are running both instances on the same host for testing, change the IP Addresses if you want to run it on two hosts. Initially ``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. =20 +COLO uses double the guest ram size on the secondary side. The Qemu version +should be the same on both hosts. + Startup qemu ^^^^^^^^^^^^ **1. Primary**: -Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all hosts. You don't need to change any IP's here, because ``0.0.0.0`` listens on any interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu instance:: @@ -192,7 +192,7 @@ instance:: =20 =20 **2. Secondary**: -Note: Active and hidden images need to be created only once and the +Active and hidden images need to be created only once and the size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge any IP's here, except for the ``$primary_ip`` variable:: =20 @@ -353,8 +353,9 @@ Wait until disk is synced, then:: {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } =20 -TODO ----- -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408338; cv=none; d=zohomail.com; s=zohoarc; b=ldCdUl86I03VGZLiLZ4bVv0sI69aAlKwmIwYkW3y8TtcSVQedNyCEBpgjOA/tAOVjnOHW1U2erHMwWOk+nnPSmklJ4JO342/vCg90ykyU4cjap1jiD+E87s0GV39Rdu7XqJTfMAjm6G4XkkkEMcAaIR9YJIDVDA471H2rXyLbrI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408338; 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=Z+Qxt7BDVwBkCqNxPnItypqty19cez9b/EvfrVA5CXV1IHVeGDY/4/sriQAGe/I6HdnNLA71+VIy/rTsHNk0oGkzZh9AR1JTpSPGA7UaVJaQ00MRzEd53X2ZWfwRfBm0/PvaZ1VDWounpzJQhW/r5uhfH9rBGoLOz8l51jSh1ac= 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 177040833804164.7347028197363; Fri, 6 Feb 2026 12:05:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3b-0004NM-Nz; Fri, 06 Feb 2026 15:03:59 -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 1voS3I-0004FO-NN for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:45 -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 1voS39-0008O3-QI for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:38 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MlbHC-1vNg5S1nWc-00lzQe; Fri, 06 Feb 2026 21:03:28 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408208; x=1771013008; 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=buinqHLS8N3lxIvvsKlJR9fKUBTLJftA4oa2ZDBRWJ9D8/OGaC7hK0K+MhxkuuHs HFctcyxMrUshDMNkmae2MJUGFH1dUqQG41ZIP5hJnlWQAFtJCKUtRvs0yN0pceUBm 2S0Y2cTCQntyixhhETVf8w+gh739GszLpfFlJoMVunO96zSlgLWQBAsTVd88tmA2f a2PGoG148pTjF/JePlSU4LJZ/cHr55/yhsk8rtfuq8mpvTiLndx9XoUTFJ/K8lfMC FQlhIX/8GhekG2Qum5Iu2RlgXkhQ0FYg2703P+rdxDxwsbDVz8Q/kOJFOsvvOWcqO 0ajuQK/elDY4PGSYgA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:15 +0100 Subject: [PATCH v6 17/18] qemu-colo.rst: Add my copyright MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-17-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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/ZANAwAKATWrCyicXbJYAcsmYgBphkkGzBYO9eXcMT9dhjiL4ugke/MYTOBVYX39x HIJlr/kaMKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WB9kD/4r1ZwsAyuTtZ9md1wECsUgEks4goRKGxCLQp/6irWZX+fSTyJXcPiLzyYSYSchC05KxZR v1Zxc2r2rZjI+Lf3ZABiBwjEd02vImQxck1wiU5cmP+vTCs0afQZg4LXG5PJoT1UkU42hpnw/YM kRCQsh754eQAgq4wrUmibq62pkD/uEY8UcK+9M2PeyATyJ7DwAMKI+++cDxZYeKwD9RolqePPJd t4j/mUrVoZ0I8jac091DXjPxQJ62LSmuCqO9d+vge3DuilLjhT7XzlwF1BrmaVWXL6lmTrEw2PA VIj7bYKVCboE38+f0ImTdPkzm947jN9yNdIaUOqTGOU5ic+DoPCqh8rvakemeK3rLzJ92uj09Fx JZnQJ86odofJNjlkMmWwGMIt0AaGz463/R8wE4Plau/C5CXZcjO5PCIiC6wAQ2qpW5wn9TjC6Hk MHA4p3OYAvCKqIum+xMWXZO7FzhUbQhF5w0IY7o41NmnMzgZycdr7v9fdI2m41ZzF45RdrnjlJJ AEGIvKwxbgVCfOnY6IgnKVcKyC13PgHQ/vDR21RI1oBuNqPRKwu5zvES/h+5TtpLlSAMY8tFC+/ N/yVUL0zwO+Vi4hOVyGq9PuLgP83N3FR6lvQ6BCe3qPoyDNjPXa/HgatfF8D6H2O8ZON+GnjQAb ZZJJxRaeULjPiWQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:YMeISeRSQM/lAQNi5QzP7KEILhG99nuqwZRx839T+M9Js9tmimv evMIxnKiV0KDOAnVfzwexvBxHgw8E/8HmLJtX22eq6MambMrsyo+jd1NHnaH4/w9lKp6LBu 8+FWnrb4OQ58fJtGRQfRgDNG7SmGKCtS5JbUwd1Ju80KJkzk7+ZT+QsVNAUZK2SSz/2+uiE xkXI9NOvPlLKy7kHDgHug== UI-OutboundReport: notjunk:1;M01:P0:NFl10fLnnkA=;VWe5D/PVzQMwX9mD/+TrldxYXXh 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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: 1770408338751154100 I have so far contributed 61 commits to the colo project, waranting the addition of my copyright to this file. Reviewed-by: Zhang Chen Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index a70e61aa09391cda933031535fa982d27cf6654b..75abbd80298df79223cb8e70064= a5dc83d70f4eb 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -356,6 +356,7 @@ Wait until disk is synced, then:: | Copyright (c) 2016 Intel Corporation | Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. | Copyright (c) 2016 Fujitsu, Corp. +| Copyright (c) 2026 Lukas Straub =20 This work is licensed under the terms of the GNU GPL, version 2 or later. See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sat Feb 7 04:55:12 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=1770408401; cv=none; d=zohomail.com; s=zohoarc; b=gKloZBGmBpxqomsBpLDyNUNtWOVU77UtYkp59rLLPm3UF8X9CGyQiKqP2YYewSE1MX2QeScOKxOs+234/4r/d27LCLzB1IxO2i2WlOhDJzHWyXS3OwlEiPzcnNhbgciuIRAyjjU/VmgKqmPXeKcxjdC5oykKuSAPrHtXLaQ0xGo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770408401; 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=UMuKW5iDF5GokSjzqiSmRFT67MBbqdpvlGIFGIdCWXnMVbK0WvqHzd+JA2fTg09HRwEJEvq2eG2H2N2sUCQ6Dun5xAk5mztN/DY14dNBO6VLBYOkli8u6BglJ098AwwsKjs8XanLlhsF13rElohAEmBkCsSp/oWu0T7HxJD2mYk= 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 177040840152795.4515973496741; Fri, 6 Feb 2026 12:06:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1voS3X-0004KZ-Jy; Fri, 06 Feb 2026 15:03: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 1voS3K-0004FW-EL for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:46 -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 1voS3E-0008O5-Py for qemu-devel@nongnu.org; Fri, 06 Feb 2026 15:03:41 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Myv70-1van6w31j0-00zJCq; Fri, 06 Feb 2026 21:03:28 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770408208; x=1771013008; 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=Kt1hymP0rdnp9K3KshAMuMSlX7fRWfIidexAzAThf5nRWqXhpYG57o1lwsr7oqNF BVEvobGD5z3nc8iwOC5gTNgRWBFt0Q0hl7bqSPA8D2RRMzfjyHvKX/sCgiUd5Vua4 /kEQDCuDvUHtUX3OZ4ckiebDj9SULf05dj0umuBFt/nnnFO7RV9KrXYRfQ3cfQyCk mmwTotKKmvkVeMJem6s/mQO8VdATBPdYUZpvm6ohlxcx/VwWXBqYpbJhQBgL0ow9M B+7XkmijXTOem2rvYn+qDdiNKb0DCVzCkbTwmkKBWVCTIDpIbud1bUxgasdPbnp9F hGPsA3vlvCs65NwEXA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 06 Feb 2026 21:03:16 +0100 Subject: [PATCH v6 18/18] qemu-colo.rst: Simplify the block replication setup MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260206-colo_unit_test_multifd-v6-18-27779dda139d@web.de> References: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@web.de> In-Reply-To: <20260206-colo_unit_test_multifd-v6-0-27779dda139d@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/ZANAwAKATWrCyicXbJYAcsmYgBphkkGe3cIAmSSruvsKePa/q/yb6R3d18u0LSu3 nS8OXASj/iJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYZJBgAKCRA1qwsonF2y WARhEACqnSOSV/Rk2zotN32GhnRMpmRohdbmiBR20zeg4Id2+8a3ai0LnBx987QaD4ziAcB0c1N lBjhlu1iGeU77Pc9BqLGAt51ujev6PbXH47iZAtOY+E1xfLQu3PJ5eHYjMsv0vJk78X6bRfL0fB s/QbROWhSVCQgNonDqzpf6+ycKuSLm/mCLp0K8vZcTWvRPYxlVAGoOdpTRnNrk755FWTofQbVp/ 01aGs7U2h4iMOCyXZFVccRfZkLlKlO2HOoIu48UI22tFxdy0L2CT7YJfdANWgWyceQQCoaA7GK9 ETGw06hjjR8yyOn8S/Ulmtdz7dYRO4blloNgN2IWX8yxfLMYQuhWqQ0m4SqE7vXNusD78Dz+QVz OhPx2C+Od8m3ICQjVByUtMoCmeh0GON8Yijpc0Mq7LoLM4JFRTAhgVkt6SQ9ysWIDLRb1TUTMot zg0IGTbn7BFvUplE6wOYOLobi1O/JqOe/DCP6BOPsLphhVhacXCwzKt1dK7kiyqfXDh9TDENd5a HPdaYWgeRl4v656ZU+oEJDIu5NNUwHalj7To9+qCm11rmyvwUNmz5Ijo4z9Y1cgMgLeZz6th70n PBtCcrAbgcHO054L8D62f9KNs5snKP9aE+o8cERy+e8Jb8Zr+X1SCVjmMG6DUpowjG9mr40hota Lt8PCVx4Yl8B59Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Lw+aJQ/vz4IeyCp5ldJt0/YmZ84A4ASz613FKLm8Ygeu5YUwNtu q8kQ94qgAMstnBvdFdZcFmAcDWJhsxEYp9Kvn+qyu4OxnSvTZC/YTfzttcRHtHjIYMFNfTb VCZpvji4OsBMe9zc9i1QBDxsQEzYjSAMbPUUSPhCfmp75wdA7qqRvUbpRiDCdFBCl1C+3xS BOwhZsap8e17Wkn5v3ICw== UI-OutboundReport: notjunk:1;M01:P0:Cj3NvltwMtg=;3dwLqbuR4cSDDPUun25X/KVlHzO XTKxr+xG9hXn2ATa/QS/QDwb6z6tbNjHZmjLUFY3lpuFCMPZRI6/V2pZTvUSnpQmwGcGVDNgC BvzMNOITdt2UfV8ng3t4Z4YMAjgbizwCvmgiCWtOd51654S1m5eOujjo+WM8R6dzmSrufj1jz FkNEx15gduBt4xzOcLJ0A2rgTU087rLEXv4B7l+Vs7bNQl3H85swVdn7IGb2rpL/noZBlQRdo J+uGds+8E0M0DRhjSKa8BIsqzB41V98Xn4HzuPqubPJRCsgiSp8bVgWQjWXoYR9k2QpGIjF8+ XCVwLYIHdolHza9PA7UHJAZa7aZXvH0ecJ75adv1j8kesNNX1jnxw755moY5wk3Eu3Ik/1j4Y D9dHNGLhDRfxNTOeP3TIDEngooqS0ac5ICYz7Jx4kyFMWmmAyxd2U6TRoGApBPZ6+T83GZlX3 HlRlID0cjEtf9lRNDvDNOgTHHmFkD/sCKHy7PBmE5kSFLn+er913iLMk1UXQwzc42uoddHsuH rChL6CvlVInUWbZ949FroxvXLqagHBHcrASjURPMcu3Tnm+91cp2H0JonjW7xnqpn3lqq2qiJ 8DIReCnEGtfAhdH4w93mD5EiCkdbvzAXOKFjgvNXBYjPhSngr6lDI67nHxZhWLAuNVSyRfO9H sfb1mg2/xsG+AsC71VSo7EBFlLHhjm41McnHYDqRoQkrJqM6F0dygWXLRT2ORsHvEg5hTrhv4 57czyzF4UrK3VZFix1nYpFL/6KRLujhV752Nc5yrA9tfqmGKcLKAONH8FMwSADP+nIH/2l+0R 2DOX6qFxl6S7OKdV/E9eEXUft8n2B8K2GtjRcHl2duYMVTKYREn/1Wtn6uTJ365i1cy9/yjAE AFU0Ot48ne64bhoM33jCObl+bfz6ZggkSYkYyk3w16IfX4ADZCzulUXv7lEpuuskHuP9FQCSe DE+SFcvN58odtoqEa6+5nPXktlECCkTDod6MgyNeugBORgI00RjZmwoatQAjOY2TgAbSxt1dt ZqT/2WO1WK1ygjG9exG8/y3uyNVec9tPdYZd/7MSB+TSti6j9sPHyqbPyNbGJ04WOmvdXyvNu ODQ6FtKXXl4Xjx1lkRcO7S22d6sQ1Vv8tVd/eRIVHF5+EUSEmaQY9+PmlR3JC7vzftbeVrHq/ jaaQayUNL74OknES5DXu+l3XQumv9QpaKG0gixrKe0XpLI/lPn68xRIcwAbz6ifQzwXbOMZvD 1F1AR/LBku7/vHyWsBkj/uX0FYm2Uj+lFESkEGW2Kir89xpsSIcorQu4TGEkq1jq9tGyaviCT LJUWuSwlOrZYXZAn+MT878rZdIPNT3zmBmd5JMf0tL2cuJNiEMBv/VIVBBWmwzamvLeBrfM06 1GyR3s78kaYf6JfdfdFhax5380e1nz2GktlhnnfkLF1rSIaO61FI3/IJLkia7dy53djzHGjOJ AhyPkp8QwAyLYmliwvZOSlfIaAruLQCOs/dj4Piyh3N04AEWTErhIvn2u8dDMNVs5KvzTF9jJ iR8IaW/QXIztCG5EQFpD1ZPqybtEHVjE7udf5oTO6OweA2vcxbVcIJEl1H56pJzFv+WW6hX/c JyDEuQkjO8NSBCTqyZxy/hq2v8KCJIMSLitXV0PjErJWqqX4xkSAylw5CLcysHDPjGC2uatGT yqUb4a8l5vsRkVL+HIcdPZN7DMZwrnwm7ECq0GppxennVfiZ6WWQi0HNehOkGjC1DwgeF1JOs /ByQuoL6Os65269d3YchRkNPWVbMHQyyXenbvIqcFbo6rNJQ56o9+g8158KW/XwTbgE7feg4h vw4Jqqmj3Wg5hHhyvBtnmTdIy0z9gmxt1w2qBaQ392OwIhNA3lP/ZB5abjAcMaHIFtTVr55sX 1GEErOEkdlGDazssrYBv5BJ6pflrWfSV3S7eM6t34keSKKkfJCCxDN5lhcTmJ924ZL7FpDZVM FbwWyVE7xUlzHqu3U0HSS74WKeXnYrnO8qxkYXwJpeKqhEQ3oLQwFw2WHfrstWDrW2vEIkY57 aBI+9fcHzffFMgOXWIbeHPGZZv/BxFqZCsGchXILb32G+u/ihUPlQqWcUd4NikzPjiJ7/dTDE 5SSDvV3jbYOb61RGiU30Dj46I+YUmQ52iRIvOYODcG3/wFE9j80sYIUjeltQnJ/n6BFw+Rp4b m2SJIgO9tEazNuWbhPAVphtahu+kknV7+rMr1V9F3rBcqIWrQzu+vTupkJQfc6rc3QZx4+GAv 7lRHL7ILAkxe9jKGsG4xzGUvUtLo7XZ04OzfSbuUANBYuWOc7qAiwT61pGJJr+QqqA59C7kuQ tYO1EX8WSB+GQeSFlyEOyGjUbqIg8OmVyTLhy03n6WSU8+R+NyEzfoVtTDRDvOkDGn6D0elKb 6u6qBsPaSuGA7L3HcR0u/CzoaUvRrk1D+88SJhqiEZ7tMIf4nE4yJQHtxZVTcv8U2vBsMyqyJ ssDxgMuxm1huHrjVMASVx5Z8dWhvKwnfNLh8yC0ohsZZm5yqduIKtmF5/QCL74DEHWrjYjPYs k+FxkTQ7b6FP+wa/RUfaRYmwObFf2s4VQLM+dSxT2Np/1iPRhg9Jh3+R++vvHF6U2p7hSliuY teUEOapshn8Fp1zaG/DsHIIX1TkO06nDDik6D8VtML14lLuTISWOqwwA0TaR9DUaUg3MSr4mr nhoKYZXTBwoB8UGLxObj3nG7jwyyT6kSOu3WE4e2RRVVJdh5ln28oiq3AR8aSNxE2xLYSQcwi feeXYF81WVVQUjKEKf7xk/Aqn1GbhStaOOwL2/hKquOGUtJrSoM/fFJJ5qH0zryO6Mdmv5dEh ntgk5UXfTpnq4cehbIgjXdYrQPBtPq+94U+09zpa1eAh2bmhrP/Ex9x/YiRlW3vgpO9zm0PoB hsUDQ41TWjPV/LK1juGZHJkDz+/wcHEvt7QdJNE2BXjpilebYWmddaG5rCGGC9tR9Q5xxDLap bglCJED8oJcJCt/T0sW+aoe+c599I1wx7rg8cWAKRjUd+V1aAJGSV8J9seSYWkz4vNeTis2vI GZhIqN1EkSqstS/t1T3cmmNSGlJ1VqnT+HyqkAwgwJsfoXGLstZxcjBJ8EqNxb4NoDXRWjp4Z cCO1Pe39WtXt7zjL3MNmsW15EsFHMvMhQtdmSLECg0IV1Y9kthCDm3QNki9kzcKFMkJz3ycql Jtm5UdpmZJID2+eG6QinFdQc89c9h+W+ro1WOJWvRMP+eavGNtrbAxr1ZHYON/MLN0NWHvK8q 3B+NqmhTcPQ5p3gC28IH9L/qpNV/QXU1sZL2eEC/sjE7pp2xuZnnLndoYPs7Hk+JvdEj3kTfj fywHzUSNTZbLy4B0rvTtdkyVFCK3dSYcok3+00KtVUBq94N9HgpNF+ssCHNpHzZcwpjEAzg/1 faraUvAo74H914DSj6i0CJ0c1ProyQ3U+PY/jY68sdcdpKuTOUn1nNr6yg/YG8Vp5kv8UUpfN ECcjS2NkT2VK9r53pHJI17ZzjVc3B8RnG+jhUx2UAHqbhDxarW0Xeyto8cw7uk41EFI51yJ/L KT6+D88rf1JmEqB5flw8T5w9yjdzB5DcoRZXpaphAx2pq+QFJW1Xt3gNqt0DxECAV3UCENh+o tVPf2+IDKNf8p6eZsycz/tAB968VXJfJYndIIzpmABd74evbeGOkadIf4AHokwoJ0cK3GpaB4 utFwORR44jUk0XLTDi+q4plmJzuhpqHzjVyGc34JIAGQlsp01D+WHT1wdMKB5MmLOTlImzGn6 k2jCYaID4wY6Z+0h6PPx99u6uR3DadgWIKvsEWnHCXmcxt8EDPeaJnNcLXkQMfxzbP5UlHymX Ketd8Tru3aWxLhLbWVZJUe+Q7IW2UoykIFmdiM/WwqAU0KWiYp+oVjEJ0PHEfjKKknDN0MVMY RyvT9XqLe7rWSYQGxmAt+R0h19bRZW5rO2So3DM3K1jQtlpwdpR65ngbAQ+Kx0pARDGbWvpaN Ke7QolvulqvnUlAf4CmBuFi7BB1z2sXbIQlxnGf1JnlCzqR3iUcG3eenR1rjq13akYt97V56w H8KmDYT8gNX3OJ/szFBzgzmTzlLpM1xs8FVFp5+TAwP56lzP7ODU00XIjaiKSvHY13RxyttIP CTdOUYMkaC6/Qc6zkh1msMTxF5lJNroF/Vz1YSdymE2z7RBtuf2DJviYd6vp6++nW+qpbh9i6 mb9n1ix/YYeewBGqGMTrq7c5uqs6qWBwtayng3whrA0z/1AM3U/NW8WUtVisfQLMErv2VujNo NolxNblnHO4Z08HPyr1RWCTg4O+IAqbZxdr0T97KJ34/eMxxyNxN+RA4eOK3I9/kqc46qV1Fe RyAUqffum++8g1p7ZA/eLHTmOiMl1qSvWHNOoNQiWW5D0MOXBKbg4x3XIkhgD9yrkY+19js6p AYCQc8WZBq6RMnjs0d5wqSFpAn5kCIG5pMWLj3lkrzJuGJxm/7p+CiMpufBF4wx535AK1cZnF JNx40QQ28iLlplr0jL5jBil9VJBCvPBtBFQnBJisnCHV4SZK1oI8e594Bo+Woaw+ZdIar+L8b Peb2gRj1+fuR72SSoZWBSGg+F3GXZeFfUIHbbtcQernd+vZsvsGZPY1IJmsW+CYdO3v6IGbXd SejS8grW1DjSq7xultslNpvgCFcQboVnowpiyZaS7SpT5XSen1xyMNhnhVXUx5MOUeL28WAHb tF8ZOyF62GummE5ZrCCxkWeFYB2JPuWHCTkajKjpZZVWARjmG2tupCAKHfiLOeEm8D6Y9D1kI o7OnL3VZrRnRqubFlViNDajwfpPNymjyIfdj0yJIpvNJdn4Edqg6mdU08ZvzFnCgOhyNK9eaY kNvwCMjPzIE/u2lfQNUPtsuA9Zb//6AK+soauEljAcgjqWiH2yg/g7gJTaYmKtXYlLvc9VBzZ 6oTYcDf7Bw/CFWedkwFiumbdRdMUR00f7KfYfh2SQOXmg+SYuOucLPLe7cIpV1v1dyGGMQiY4 GoqmGSqiAHEYjZmI9M6nPDi8DmG3kYuZNLTzSDnGEHc4IvtxtFQLEgb5X5addhb9bXlQeB3Yw VmA30GxS0JmOTHNNoZEAUyH1q1x4BhTiZhJMTNvoJSEKdFuST1xa2ruj/ZGpRoHbO790aM2vi URnrloWnDwYghSnZIMAeSRfxnXsB8GNeE5mQxiKtnxxDxycxdCJA7lAUWf3Fjnhq67f6oGUeu 86qKQXXNKjyC7RJhYeFemdO3FxkeK 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: 1770408403600154100 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