From nobody Mon Feb 9 11:43:43 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=1769775364; cv=none; d=zohomail.com; s=zohoarc; b=ClT0aALgv8LfhMScdPdG/b+uTqKS4W0wiZ6WL2V+mMCd0ILLXaDf5+Eu7ooEcpKGBgb1ft/gAzbzn9/UxBbfbbF/THJZ/CzO0YXY6KVYkizZb+uNuVBQnDtr++zI7ULOqn/sKy3x8zQZ3jqgYgYCd8+SHFnoTKy49bmmaMQDZ40= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775364; 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=t+IVG6q6GMuhSVJiTxbLMi2Hw4Y0ya/nW8pJdOBTdvs=; b=j8MFeOCLPFofFwSqIq61yNDC6ZWyNmcc7RS9Sed42IIMHrH/Ej4240QmHX0RrY2vr/dOMGVfPJ//F5bB5cC0nNSGhDW49oDnRJRk6hcmnDtgnZONMUnpGDdRhDeahn13YVk2xWi25jM34Jnw/Z4B86KHOLQTqIzryio5p17Tg3M= 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 1769775364132358.59890027201106; Fri, 30 Jan 2026 04:16:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOl-00046A-0X; Fri, 30 Jan 2026 07:14:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOi-0003cv-Rd for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:48 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOh-0001uc-36 for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:48 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Mmho4-1wBTh92teg-00bIxa; Fri, 30 Jan 2026 13:14:33 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775273; x=1770380073; i=lukasstraub2@web.de; bh=t+IVG6q6GMuhSVJiTxbLMi2Hw4Y0ya/nW8pJdOBTdvs=; 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=eMvXpqvtbqss8fwxuglLtOclnZmPin0Kitnui5nEDmYX9MpQKVEDW/JCHOOxPIg9 EE0ALneXKzTJL7aPlsC9lV5ofQ/2G6IybqpYg/sG8B0tIfDl7doWZuLNdrWoJikAV hghsJWHxQSVfVXGNuu/D+ivjLeBGtgsXK6oj9oMHf4SsZNd/wAFXVpjoq1EtRWt3q wUGvX0+Z+RV+ucOS/zt0soMemfZw5MNm94ailkHUzu8u5PKqXtFEq6QEB1AImkkO1 wOgjiCLDuQGBeaMD8dBGYWqNuvVr61UsU7eHJ/OxjnGduBW6cUYwqHTPmsGEVqxzJ ycithe1aCfdO2a9PSw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:09 +0100 Subject: [PATCH v4 01/16] MAINTAINERS: Add myself as maintainer for COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-1-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=cgrowfT3fdAg+LolXqDjAFU8mfr9pDNB8HODvZTMyxo=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKClncT1jG38r6UwuigStfhAJRrFMVoKmqvG0 hGD51Jwyo2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WMCxEACayWNefvCyHKHyli/0I2p5g5kqjVdIFy37HVFghHxiIrEafWU8YACeqmFfZwCGo8arXaR FD3zB0/onUkelgEq/c69i3BwCIQQ+8FAfC28UNoM3OQ8/jTbARyRv5DeW4NN376E+eLgyWOChmp 3EmK4ckZn8T9BJxhJQnHwE0bpElUg7gugcwF3ic6hC3T0pGc6z96Mb2KenyZq1IVDqQAaIs61qP gsi5a1XYtKphycEVsvtcf1YU15polC/yC9Nqr+eFbfa0lq9lVOgyeGgMvSHqevDWHyMpe5zV9Yf xKhqJyvUf654Ff3HPUaR0ysAI7rMjfEamTTortzJsa83z9X4Iwc6rMZIyytuXTQqVDRmuC0qCca tp4JvOX9WF91/OQGZTbL9AKPz1rDJoryC/RmEznfYGTZEF9xeGteyKgUJwIr1CXrg0XiNLemX0I n62zg9LPxPDGlWT3oXrDwy7fi5lOadz5r9pT9/2zy9dB7NZhWqIBb7BLXR/e7p0HYFaPS6Q6yz+ l/QXHl6tCy7V9uU/T+cniwvLfSvRoMn470Ydv4/GmLAgy6OvQ4cYMFbb0iKeRNVFULgwb2F+wZY HMsKgkaYqMMTOUD5hIBiC7oBl56SJT+5FJ4gZxb8NFrJcfU7tTvBw1VhYho3DX4//VK2XHAJfMy cBGaq6/sQr41gFg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:pJTFS/kg4IdgSK8uFs0GTaJ5HhGLIT0Jr9xKW+cPdoRv67C5tWr vNBdkJUHr/fgkubIApxOSpgtiKY/ZfF/81hf9fPCAB7KA2OLRAmB18Xsp4RaPyTnatLs3NA +xf402of5OV803VGsVyK/YOsdMdF3vehBhTy/cZ/gtfj70Tn05KZFwmNvdzHNsgB01zv2wd SP+0BJm0UjBCF9lBEI0mw== UI-OutboundReport: notjunk:1;M01:P0:iqdSvGn/GuY=;8quMx6Ufj0axn8KB0RL0aN9MLle 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775366910154100 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 dccdf478886996d3a70f58b11c5dc55129122bba..60cdf6e8e2ef142266efa4b0219= ff50f2b356852 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3848,6 +3848,7 @@ F: qapi/yank.json =20 COLO Framework M: Hailiang Zhang +M: Lukas Straub S: Maintained F: migration/colo* F: include/migration/colo.h --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775395; cv=none; d=zohomail.com; s=zohoarc; b=e1QTbARzrpim7VLkVYpk9lGYEEtpM/eJ93l41OAUUx2cNxWcoJTEcegOChIvH+8CLaUESZpiutrLiGV/WzX5XbvMRUoXMd3OvuDKxUmJIZfAuk/EVasRwnVhIoGOlSa8FUC1onzxIUwBFOBy9efZJ3FrliTRusEb+7OOrxyh8nE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775395; 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=qbSMswV8MTC3yxgwpbUETrfbVAYBdlQRbQVFKHPi2fs=; b=YYGQ6jUFNPzI2/JcL8eQOIBPdJiNV0OyNae6VEYIOM6Z2VcLkK0bQl5nDbT99Q4h8bDToYzJMcjOfj7vfidApGeOz/ZSGivTDsHTAftf+dAD+xSFOH8JVxbE0RpjqbigqcTdgFlLDlYQjahJwfaL9nwIDOKKcX+vEXxeQ5KOCfg= 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 1769775395498401.13224148706854; Fri, 30 Jan 2026 04:16:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOh-0003O4-FA; Fri, 30 Jan 2026 07:14:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOd-0002W2-Aa for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:43 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOb-0001rj-4l for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:42 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Mpl0p-1w4d0R0CIn-00h5SH; Fri, 30 Jan 2026 13:14:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775274; x=1770380074; i=lukasstraub2@web.de; bh=qbSMswV8MTC3yxgwpbUETrfbVAYBdlQRbQVFKHPi2fs=; 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=NiwZpK/NR1BoOu1zDR2/bi5WJYO7MnI7EhJip0vO20daOXJA5OjeudeezAN5F/xB vw31S0n6hlbhMwpOPZft6fdSEN+VFaP/mvrsgVGtQV6S6CWXGfGtvcMv1ZDCle2o6 Hc67R3mzZg4PPRwAk+FaiiBU2UGA8lEk9Hp5DfETw/d65PMH1KjjXfDQ7dBmZ/hi2 DvAlJZ0oDvioIOgU1na9/4JZfRCbCnQh3SfO2ZW7UufmOKN9SBNV2Pl6oM0rxwETk HRuI2e+ItO4aNo8qzgYqmT6Mk+lOYeQLz3AwsBlzfFdVWFhBsOMUmpRscdtcfZvru 6AgXIuR/NT4XlwXbiQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:10 +0100 Subject: [PATCH v4 02/16] MAINTAINERS: Remove Hailiang Zhang from COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-2-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=GxECCZpyHzJgIqGcuRcKjiPYBnjH2GxZ/SlM89GQn1o=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKClPaMPydHiweiQtW8nUdeReF/L/zip3rnze +HwFpKLVwaJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WBypD/0XsncVKG6gPzxvO5sS/yBdqmZoaFO9GI+w2X1BifN9rgbc6gbfr90l+eBo6+sfF4HQJX/ byxhYVWfCCGKgw2Kp0tX5aciw5O1/L4AcvBraautyItK0TkIvnbTEUdYeJrPssHm30mtEtcO0Li tyTYDVvtBIKTdR0XGbR0Wk1bWjapG37x/h54aKFnpf+f6Fn+huUMyNXXrT8QdsneHg1AuYWZJH6 Zi2C181SEtn6Nm9fyZdHqmlVxnsEAhWKtKG/apc5/5YzuB8ud3t5ET1hGeNKcVNA3tQBaNloWWz laatFW8K6mzaphC4BWt61j6AMukgC0iH1SfzCMHJ2j7uRmrulHy1nhECxvZKrSFeopXTzJBKWmX La3LPwF7H6E/xE/byhvv5aYfmU0CrdYMQiJu2XxhvbtyYpIRccsMZ23uJDiI9G8A0PjCS+PMYbh hF2Ihn910o9SIWu18wm3LtQOaue7nyQJg63ROxz5SLupKovmTKyTm3bOyyej7ApKRvBLuX9CV1G 0pm0hnAK/rTSAiwsrUWzTPgfPBbyfq2Z7Zcu4FfmaksVU9oxMw7FjT0e2KsGgbnVnenltxrlalT lHroQjM7pDBxzp9+483BXsAZ48U1MMTgrZexgaVjrfBEdkFI7BcBPOKS/iQwT8LxGbD26f74gIU 191OZuk149XSohQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:ezBJ8npEmbpKOqjJRYK7DHolyIA4JyxI5wmvYwMshTB6rpPM/KC Eu+miU2pqwPckIq4LCTmrp0KwWZdX5k3Vf4DG8uDDa/Fh0nQtmHWs7/y/gyfpsyx6Yltt4u kO8slqyPg/QbvF/Z06ydoSIQ9XCkOVULQcsB/IjLTe5R3/M7946NChuUHvwsVME615xMqZT Hnz/2U4muZpDE5PGgzVkQ== UI-OutboundReport: notjunk:1;M01:P0:tS+W/DUy/cs=;0UMSKgy6are6yjpBqibzF1ivbYj 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 ueXK1YHl4edsDtCnjLjg Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775397415154100 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 60cdf6e8e2ef142266efa4b0219ff50f2b356852..b239cf00f66f0683d481150ba27= 447316bcab72a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3847,7 +3847,6 @@ F: include/qemu/yank.h F: qapi/yank.json =20 COLO Framework -M: Hailiang Zhang M: Lukas Straub S: Maintained F: migration/colo* --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775394; cv=none; d=zohomail.com; s=zohoarc; b=d75SHJ6MnNVBTww/EPGYgohUzogTV6lzlFh/fEewO6dns/AOGIrFzPXyPt2XvKYAxVVxnQTlDCKY1cKvVG/vjI6Jdl2ton3umybZD3DL/nFPqDveRdyFcfBx0dYDe2+0/wv8m3duAR6RsWtq7dllByt7v9yw0mis9J3OnoxQSUM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775394; 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=jrCXMnZWzv/c8n1uXyg5THx/mQoZsvSMGmEgClqre0Q=; b=hbHkm7O30KZXprhvkJJ7Y28WRHx94X3uavE+OfX2PJzvFY6FY5iU8/TDZxvqTAGlPolS8KR8+MrsTwv4CQPqsCT2+MI5Kypc97K0gxJafh37McCzEzG/IQPA9ZnAgmOvLB2Fwmu3gI5Du61TP7u2kBGxaHWn5ZneRQMM0u4dKmg= 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 1769775394279120.71351737127691; Fri, 30 Jan 2026 04:16:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOl-00048i-7S; Fri, 30 Jan 2026 07:14:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOj-0003jp-Au for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:49 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOh-0001up-HR for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:49 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MI3p7-1vYJOX1aRb-00670p; Fri, 30 Jan 2026 13:14:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775274; x=1770380074; i=lukasstraub2@web.de; bh=jrCXMnZWzv/c8n1uXyg5THx/mQoZsvSMGmEgClqre0Q=; 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=WWMvuE8MfhVVHleqLBgKa34moagPgDMsOx/F2beK2QTdVGKAS7usMNE0/TaiEDfj geL/yiwE4tyuEdejeqZUfxwcY0hCyKjpvv1tFP1b4E8i9fmQdZc9BYbHcCaH+KiM3 TA+RWzeNqRAG4RdA6YvuJwZ3MY0LhWT8BHuaIijTt+m80pCysw7UO3WaQUgdU6brZ Ex7bHZlv0YN/jH5Mqw0N8qBcdx1JX4mDQNhKJyc5ZpgvuWXoN3TsMlRn+oVLux9RA 8wImc3O/HTKbhb7RXUCFFSznD9iKl1ZaSmQ/5zAXCP3SG9Kz1ex02gHi0ei5bB261 isu4TK+k7xOdAIystg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:11 +0100 Subject: [PATCH v4 03/16] colo: Setup ram cache in normal migration path MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-3-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=2665; i=lukasstraub2@web.de; h=from:subject:message-id; bh=qRB/Q/pg91NIOOfZMIxQDrQKCplhY1Pj+87YWvbXmbY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCl9f6g1EvCTGRwf9RoPkAhz+lZUQdGpnT4r Xwg/spC+bKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WE++D/0W9hLWfEXvBre3Osb4JxRoR9rXZ7z/4J87IVh6Xi3HXExoVMeuJamItsY9G9bGrcBikLK 5dLHm0fnTlZZb4c2ROzCqYjYgUCEm1L2I30ZKHSIkphVD+GtSSGM/b4ARhTy73gTMQwzr1gKupj r+VX7Wzn1UMwWoduWxk0uqLC/Kwul8xLQCW8RMW1OeSbHJQqjeCDFbG5Vmb+zThjsUoaBlDrZSH 7BOm9YN2NGRHZkiLXfIlOdfV8T/p86e5rPnz/cDvRlWl21EQ9l+Y7LLCEYVAEQgBatink3U61vs HpECLBSbcImrrPfvLKdX0xQ9QgJNmOBZe95fJXJ2+0H6tr4fSKci0hov8cTOifZce3R+ktMWt7k 5bY0O10e8RTT9ObS6NrubSaIHZAE2Mh32r8rxtFPbeREhGNDoWHbQOfk7tFrClfi0+Glzjvpvzt 81AMyq9U8NITMe+Nf4G3U2xTqDntKY5Xb/bxN5vNYEi8ux7xiHLqSvnPOOA772X1ovwjFnitmkn 6McMQcy8c1Hr3+HjV1SFrG85LNxCSOUyuOoSqB6pIlRuVjOKJU7ChDbV5JE0T9POlbdmukZ7WdU cK6JLd6W2BCYiaHhug4+k0M0dO03Co1xSH/s9l49yA2f/Zud/j9NF7NF8w0ZLSRHuV7qVUFWppm DhGkOGoAcyhraFw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:a/6ZFO31DewU0p2Cry6Rwi419v3Skjb2SGjwG5zHIQX9qLVcycy KqqpZzF58jh+22B8lSxQP8E+FbdD12RmEqmvVjYrdtzXzYrCFCDVS2qF/nnd+mKJyFKz+il UDnR63ukdPyl1BMyXPiPtUhwjO0lTD2bHeP0SPiuAztgMommAFmFuTVXzCrELjuOjo6thY8 6s42QUYBbXKI8R/7ITQdA== UI-OutboundReport: notjunk:1;M01:P0:IAdC8R/EeI4=;TWDbkpE9wNLWlNcH21vRUr5OLt4 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 d6Eotvu2A6Y/IjTsyWa7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775395429158500 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. Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- migration/migration.c | 18 ++++++++++++++---- migration/savevm.c | 14 +------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index b103a82fc0b83009d01d238ff16c0a542d83509f..a73d842ad8b060dc84273ade36e= f7dc8b87421f3 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -630,10 +630,6 @@ int migration_incoming_enable_colo(Error **errp) return -EINVAL; } =20 - if (ram_block_discard_disable(true)) { - error_setg(errp, "COLO: cannot disable RAM discard"); - return -EBUSY; - } migration_colo_enabled =3D true; return 0; } @@ -770,6 +766,20 @@ process_incoming_migration_co(void *opaque) =20 assert(mis->from_src_file); =20 + if (migrate_colo()) { + if (ram_block_discard_disable(true)) { + error_setg(&local_err, "COLO: cannot disable RAM discard"); + goto fail; + } + + ret =3D colo_init_ram_cache(&local_err); + if (ret) { + error_prepend(&local_err, "failed to init colo RAM cache: %d: = ", + ret); + goto fail; + } + } + mis->largest_page_size =3D qemu_ram_pagesize_largest(); postcopy_state_set(POSTCOPY_INCOMING_NONE); migrate_set_state(&mis->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 3dc812a7bbb4e8f5321114c9919d4619798fed5e..0353ac2d0de819b6547a1f771e6= a4c3b8fb1e4ef 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2407,19 +2407,7 @@ static int loadvm_process_enable_colo(MigrationIncom= ingState *mis, Error **errp) { ERRP_GUARD(); - int ret; - - ret =3D migration_incoming_enable_colo(errp); - if (ret < 0) { - return ret; - } - - ret =3D colo_init_ram_cache(errp); - if (ret) { - error_prepend(errp, "failed to init colo RAM cache: %d: ", ret); - migration_incoming_disable_colo(); - } - return ret; + return migration_incoming_enable_colo(errp); } =20 static int loadvm_postcopy_handle_switchover_start(Error **errp) --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775315; cv=none; d=zohomail.com; s=zohoarc; b=RJ0khFtrbZaWfM0sMqGnPLSwuTe/2alPJMlZIFVRc2ayaLPkZ4Rk+MSdWnldX3q+sBma3jK+TsLbhGcGSf3F4FnNbkZN2RbdCRcwfI1AN65eqSbyZ616iDAiQ94oQra+jYLuxaCqCIN/Yamqk9WxyufMXlv+WpycBZUE27sWImg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775315; 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=d5XXZz6zgrcELqgWU2qKR2sPq1ihJhxnJTX7yAeEed8=; b=SiJVtGTWRQSbbsIcb8+ePljID0s2IC+XmTkWLbOR3IXCK7T/1aK1jOSW4r5nadfFaNlxX3AwawcxFejMRxzEtWX+NPLBlGJlaWRfVmilISJeQxMUTNmSaFzXwWlEZCTx7WVXE21ozWwtDcT4GJtnLwE3cmcp3G7tu54iYjNshnk= 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 1769775315674652.5827537292569; Fri, 30 Jan 2026 04:15:15 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOi-0003Vg-7A; Fri, 30 Jan 2026 07:14:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOf-000319-Mx for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:45 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOd-0001sV-O5 for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:45 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MJnrX-1vSLnX2wUj-00Sfhp; Fri, 30 Jan 2026 13:14:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775274; x=1770380074; i=lukasstraub2@web.de; bh=d5XXZz6zgrcELqgWU2qKR2sPq1ihJhxnJTX7yAeEed8=; 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=IWTpZfyeQfotNUvVQkUKvXp3zHhPkgcoSuSXL8IZ9/lnBhkcJDiYe35g40zkcUNp 51G73C4IdQQmtcorzYmNViV4cu24I/Yx9kMLU4CxJg6mHSUa+AqerAgsEJ3FxKvQR LdZk5cYOZ4GDAHETJSNugWCDX4FiF+Lgxr90f8cr2pJxZ2N1avuNOxPMpl4it0f15 HYp1NYwDcOxEYcjskBetSQWMxm9hhuMx5782HKBOUhqttm1q8cy6hrnSjKKOAZ57b 7/0KKHqq8jJ8JguAxXQMEYM+LWC6M0QZiRI2sx6hxv+EvJ5OCbNo35fOn22rmTgOm zn5fWM9G/3ukJEOFUA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:12 +0100 Subject: [PATCH v4 04/16] colo: Replace migration_incoming_colo_enabled() with migrate_colo() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-4-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=3444; i=lukasstraub2@web.de; h=from:subject:message-id; bh=j2vUFY574JXXo6iLoH5OhndH1exIpX5cdGP5ypAbWzA=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKClNHGQ1nPqXlkGoEzbb0e70bTfYsat8qlj+ O5CFcR/5heJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WO5RD/9Y33EGcOp1S23QHs3nTTX4oe+JLfyvu+oB1p0uFsQE90mvQFfFP+jm1TUvU+e5aqL2QQd 2RAV0TAZ7eiRDd7VlIX8dqNKci+sUvm6neIXUllwh63VBwIZKr1tRoenaogYVe/EFCHGjAqDG5/ vuZG4H+cWUlnBuhwRO7/x8395dN/qUCRueKyY3vzTLwS3bahbmJJBlsvIEdIgldPTRyy6sFMDd0 il+Bwl11DL0iZBrWbvBIIY30gW+wAF0uNLjmbdTAU/a1LUwtUjiZRvgfCXR0qlyFLkBLUeTaAOC eL9MKXLpp54ggHIKEYPYPkNzw2lnGrJOdXuwT8K15aAYksLVpPkICBIV62z8dKMWjDPpBHSWmIr h3VSBaou7G9DHspjr3haXluPnTyIRbCCNk46geVZJqRgMQbe2aDjCMaWbCqOH4g4XqIgE5ecro9 jA70F414qYHnzHMBDZow07vJDG2TwKhmN4Z3/Il98/zRmOk09fT6POuI9hGvYgeCRQNr6y2Pwh6 Kt/b1FylVx2QNaB0QBH+NQ3LlkQnzxBhSbuki92H3tSlVFl7DIcpmOLS9jYBS2aNPLuCfm8Rjdb 2OGQec50aI3AGHHaEuP9js+MXbnP/6rDxuyYA7tAcU0Mn3iq/SCNnz+pVh9Yns+DeQuln1l5RmA kP1XQsHqhuuDXLA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:WcNvThW2wPcqRZQ51aNH7OOmwBobq6HQlKcstjTjcEyOmRhQ/Qk jKCCe+G/o1yn/VVK7yP/TBTODb7v6PJQZBBW2IHUzvzEZ7x1GMrGgN5OHdBALRA+hq59+Xn qJDcz5tUyVt/kLokZfbbBc7hO0QmROCNisfkmDem7lc34UMMgqwjmsWE1fzfUERjDYlwRmb aFWx7u3caf7hLC9i1rcFQ== UI-OutboundReport: notjunk:1;M01:P0:r/sg0y7Deqs=;1gsK4MtB5WOs+tr3DHWhKNrledw nYBY/J8sg4gLKx7E/iJctZtVssA/K12eDqDStzjCQtgx6YD0reoIfPX1PJLnZyXKBu8q06A0+ /6gOy9qqp+Lt1nIkQuwFvnlrqVJGF4Sz1c+87QymUJTXTp5HVHocDtOkj+V7DxhFWlRlwBPH9 4tWbpA0l7KZnngUSVcD9GJQYBvfgD1gYyAJW/VZOi0ccwwzN5GOcDqLRxKWJSjpEdPKapk0MV xRXdyunIUJ3rd2rgcrN1uhOS2khtnkD77bPdn48B/5GLXCLBM55EK+/fpEgaxpFyAIs6R1YWE pwWbkG3hV1gKIyvnAYm4ucPpTUhKfd/bCpugdcsM/TqUzkfvAhoXjpr+mXtEB9hSnZS3ZFupO vLbXUhkIwsDZAfabkrCIzDtx3nq+6iunzGyGy/RO6ERat8QuhlnRH20uCouFHklgjWAqsTq9b krNzRnm1YU+dx5HzJoWEqdamChhdnEC2Ryn3e8N+eyt71l06zd0Tvpix+VoH9avKkzmTZ56B6 o4ivW4qq4g7awclrYi5WY3uwe6IuJUj9LY8bsyxD7mEnscuOnqrfNKvOyhJwJpkrWm5A6HVmK hOcftlTcGD68SMvosv32QQ7cZLLgvwhPmkGaxG5O2gFzUTfnYHBQa1Bm+8piUCi8anI8ZLU/4 B/Ix1lOyuDHbBa2ft0fryiI8OjaSJcg8JEQvTVWVlh115kVcBjmdXmJc9hs7RfHBRWrtCRiKM /zzOxMpqSH1E4pbL/cWK1SXCcdzDXzgNC5WaMs9QzpPIyNTR/yqX0oPQlg1iQ5INAgSkqVUMO 2Yy1mTVkoGjBRGPl0w9PZD1iKPzoO6Q0emD5KPA+wS/+O1OZX8cAifzwYQqwjwQcD4KKFCK2N cY82DFAlQBb40DA6UtBrMDS2GFgtqaFH/InMHINo+8wnEjyKrn6pFfTdgsEAAxn6IyJxElQP3 BIkeX4F6tnL4LD5o6s8z3XSumLxsvSXR59c6HVJSe0P7jF5eYoDbdESdChObN30CSm2TR9nTD CLxFj3UDTcfxnpF1dLOC9nIUwkHINnXJGcbLWjbQtE+JcKK0LsfJGWBuBCD7zPsky4V4AqWyA R6KB+QiMom1ISl+LfsDiqBCsQKeUSykO5ngkW0rsU3LcVSQBdAT6Hs55fqvGR8bqnV3+9LwzM MrGZLXuSXhC9xHmjfyHPsOVxyUvkGeUJ2SVwtbaj3JwuFpEs4VUUNl9fmPZPYmPKYaS1Ds7Bj MmZrbzVSxTwZPDR/GunKzk9kIxzPPCJ4S2O4dBcRhG4ZWbS+bLZ3u3H/XDm7I3EVrcYVx6jCc sRwCdDdiKNEGeY6i/Ml8NtfARewTUkQ38An4iKOVO+0tEpTualQSR3TsoWfhz1OEcG4KHrlI6 m5DEyDdYoyZLdE7012JtvfQQtYAWW1NuUkbniMKjz5nqcmE7cEx+B408XZGjSQbsNbhvOKeSo kABUZ1PC+0kyxExM48JB8zH6fj/Nv8Y6xWlpdBvMbcPqlaaNrg0fb0FP7sJQzRXjAaZnixthv uoZhm44Ts/mid8TZzwdRFMoEliSwPv+l8TUU9nxCI4v69hccJbFn9Z2L8PcR32wmeX+3gda8g MhlzWV8IuNSXuWKqGNiuzmq7sIZH7HqwS5O7lC3f+jPidwzvDRAb7Sl5uLH0/wn1zrSZgHU65 dbVXnN3phsq7Xb4OyaNuCOqVJ24Fylbpt6r0BhiVe81uiwP++qJIsPGJ71XgBNMTy3kixeY2h ABTJCXpTsc5+yVIvXJmzvo8crxaOpMAewYlSs5oNJJF+VpMCPWrDB1iv8pXcFCDdv9RYqh0yp +t2SS9tGpYAV+RvXDPrQR0futcNsT6u8BM7hvCoscnL0TJWfLzaHH1sklu5frU/rTKPs8N+AM yM7faKgkJy2o/HLaWFN8YLSiiX4x9KxehezD4Un5pRYNDaBtKpiWCVdXkdBS7iyJUO7Y26v9m ahqYY+3qK6YKd0auVdmq+l0/jqcWs4Dc88QfBlvcgCF8dzsTy4ql4vkDGZ1ItYqNlGuLNTUz3 jHTxgrHCf/Bcxc2bZSLOPUtCowYi3RfYt5gvca8G1cLuzWjNAgdpaSx+lwIsl1YjIbD9vdMoP Af8+PzTHyr4LEoyORzs/aM5dEXOyW+vFVxqNivuOaCOr0ILBKuheyjDcLyAmlrkKOXAKCpN9W 66kg2/JB1bfnjJIeeOfmnliLqlu/vWK/CqtAZRKzSCWKNbIjklGDTrjDQkPxpqpihWQBt0asp yyX1rXpIhz0LtjaUwizHVOYFwpU/TmgvHPLFgLuJflFmRR/inFLxWa4JFeD96PYlJqUdvLVoG 6bCAN0+vmZXKsxp1SFkpSE/W9fLndk9Z6B+GEbi7FHnBPR/iNBIPTmVo/KsMHNQbHlcZxjcmg 68uYx5ctH8hzKQS42LNYzVjEE74cMipq9MBqy9znN2gV7BYxcv0JfvaAey/LkpdgGCY3U7hL4 A65uAk8qTGzFqwvFRdXUm5H/NtEubf0LGfeGYk/6T0dHYWOne1UIhTcOt4GWlJUJULnZf7Y1t NzrNXOz27pFM8fJEGvXVsUFe894Zw0GrP+KntHayBqY+S8KliWePx3HZAtZtGtSJPZQuAPxIa TyCaWZ2EdWbt7N1tTBcnAhBU5wtg+nE7jQz80PZ3gkbX9Wj/E11jxJ4JuI/JeLZnjuOCkK/c1 csvhYIJGEp4kU7PUa0Qec9GO0ggqyMH6cDHe/ZPr2+mYCPIjq/IHqMsDuM36Ofpf6QZ/+NjDE OsB4sW7mpdXMdYvpUfENtOsCs2b2Fa/ol042/SKwDnufW4lWvAMoGGwy5eIZCIPRcKt0C1v6f qtrXO6z7HVd3K2rQ2r+IyHgV6nOes8xGzWSY8LItFsoko3v3UbJeHkhzIbk5fkNUaLGdm7YIR 9rfe9NsgjWJ1po29WwNZlFTWx0dPeyOXIhTvwqbXLUiBs8GxUG7sT8gTv8tvTdtusj0QKpRJT WdwdYGH0Hp1a1Nme1wF+n2My9rt5XYkY3N3jlVp+p4J4NoH86BquFvRzsNpsvJnJBKwt/UEGA 0wWiprn8QJECv9Ee8emc0XBlKnuAX+pbgI4sZvz0aGec/JYw96aYMrZnTnSRIni7xfgh5eYgo 9wWeTUDRPA0LDWgIX99cjoNkqqTDzRo/I13ZSyQfFMuNLjNnWwsHFw7EwICyK6NR8pJN9i7Yk XY3A00Vg7oLsNzC5eAeajGUvZLVEwklfGfRn6mNYyfmj0Ts6IbGypQn62zRwcqb8WZeq4krEA eHAyRHSV8Us+S0dfwlOaWTSShZOmZT0tucaqhUMc7dEOVG/QvRUJaOrO9Ox7uRgQjgltJbgUY R+Opp94+WLvcK1GBHx+8CWd7eDsyp9+t0hucxSyZPLBizgBsBvm2RTHp6hCrQqXtnaafqy+Oo ssyVsXG4exJakT9nsW8wblJvxV7r4VHE0MQ+llSbCrsCS6r6lsrxkSD34nyXnEaZATMbVMvxK 3dYqJ9KiUl2zTtbYXO0AZEcOekkF5dpCh/HOEH2lsGAuLbwQ2UbCeEguFoOnoX0YuIhHMGfDp IS9xvYcl6S8i73/ZD+xbmgZAzlpNs4xssq2kbUOujT2ZxQQ4dBR9QLF+MJ97WWo2QTLKqDX9M EKfl5YvtaRSi2Q6+4BLcul6uTgFVS9asgoMzp8tVw/Gr356yheFHdwZqE19+MIJ5UMe5gRkb0 kkeP3gvbbSzYij/avx0SySaMWGgz4a5++JWXvPGY+0/mtYFc5BTMYDQzIO82W3E+VYZMU+U+5 ujCiwOjr1xqgAZHgCIaGvWiMCcO0RilMuGspv7rtITfrTxeswUVUAh7vfRIVUwXqr4vR795Gy YuTcErj9q1leTqm5cYyL//lcxUt+/VVvWTz0xa0ccXNQxO6SmB9TLUdrKBXSPyYd/TV75/4wB mR9WIXjHTpQScGBMjEMwbufhWkq9xw5f0j60nH9Fj9wIhvA/eJ1OJRw9Pp/KOuGqfwCvFyuHW HScdWHtD97+utONS6mRcysgYomjA7v4A1a1ZfZzv/PhOXQ5zMp68xRJvEU+yB0S+d3FxuqEXT fpg3oYW3/1B3bQOBg3A0tQ0BwFaIHqTCXuMCabtMW24E5SahUBfLz5egCdTaX4Ra4GjpwqsP9 0wWKj/WtKHR0udLWxfxTZDCBBgtoqdL7DFZ9M+u1sFN8R/Fj6Wc7a0rN5fkHylwHopG+zQGHr o/MTip7iyk+dxP1oky9IuEtAA3nlK0xb9xWul4UjskzSPdfslb/i0J07tysIi9e1iVMSLyR8i 8mb4JtiLsDsGgM5ZZTA0MY2nXmpq/eWyLiLeycbuVRmkE8/lERJN+MXTEaYRSzmeO2PUWfgUR y7XH/InP0HVI8G+gULEtWpddi62byNyMd9ksQG+olu+H5Ao9tiq1cSiXKKLNEad78QCphUVmn afPuAMLwtCwxKXNSd2ow98p7AsQPjocVHfHGZxwEjV90Dj6t88yMG9jmzDFm6Om297AWWcUfC SsWoFb/gjfiFf2CdkwkHUbsdWqCgXCxr5hA/usdLb/rjKy5yKfmomzL2snHCRk4dgskrbWa22 1smS2iFv41RHHzwdKkCu776ydMpw28+HjRP4f2OnW/ty0zjqio7ukiz/SM4qJQGvIvAF0WqU8 Z5OCxxuBsmWw63UW2fsXFWlEwFps9V+U5G08MUPCr8jFXI1jWdOXHASKQkc5pEhi4GSLYajPD PP8/k1OptKNOMmeel3EUObnEcj0L01ERxN0kX6wKe165wC/iMNl6lZq14UgNx5IingVFqXXKu CkD2bjxcCvSEKj8QIHsgMHcQ3fCcACJU26qW4WlxNKtfbelupbdrxJMXWM+R2oHeaOyaI289x Dwk0fHr5ueCSATnPinVXMz93ZolBjhMw1NKzClhZOMt8o7QgrJZyIJ0k5qWp8vMHSOznidEsf M0JKLIvdW+5RxTOkdTpqEPpH6dI+s+mz84PvtQa/DWwqj860GT4k5JaV66gXIg1y1Rb2FYO7I rmFRksaq4cHCQjq1d0iSAw+jurGcykVlXJGTn2LsL/YW9ZNgXj7+JYq9w+z6gANCBWGETpdvn nRU25V+35YmbHLuMG1icBAOfqeI0v68WktCVzlEBuSC3paV9oakKfWEFXxFini7yDhkclkY0Z d/2Np6edPe8hPZ891ZJs9FqJbMclEJKeyiZk3T63QcJ5Z8ppZ5wlSzuuYQAfqEYytP59KScFB Dw3n4FNhQ57PMnZIxv6KRBAcs8b2jApjR/XuHT+MmU3ZY5eiA6hNX1+lQFW84zzaU8SdmSnWP P92I74iDjaEnrtLGMDpsXbLtCR+NpLIU7z0gmZRvvl9OzLgk7FxThK83g6tyc2k= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775318159154100 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. Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- include/migration/colo.h | 1 - migration/colo.c | 2 +- migration/migration.c | 9 ++------- migration/ram.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index d4fe422e4d335d3bef4f860f56400fcd73287a0e..2496a968cc1ce709f706c0efe57= e4f765f163d3c 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -27,7 +27,6 @@ bool migration_in_colo_state(void); /* loadvm */ int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); -bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/colo.c b/migration/colo.c index db783f6fa77500386d923dd97e522883027e71d8..8dfd39b035c48590fcebeb20459= f01fb37fb67d1 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -933,7 +933,7 @@ void coroutine_fn colo_incoming_co(void) QemuThread th; =20 assert(bql_locked()); - assert(migration_incoming_colo_enabled()); + assert(migrate_colo()); =20 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO, colo_process_incoming_thread, diff --git a/migration/migration.c b/migration/migration.c index a73d842ad8b060dc84273ade36ef7dc8b87421f3..bc8ce64ff5000b0eb634a20b22e= 5f3e3289b9707 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, } =20 static bool migration_colo_enabled; -bool migration_incoming_colo_enabled(void) -{ - return migration_colo_enabled; -} - void migration_incoming_disable_colo(void) { ram_block_discard_disable(false); @@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque) } else { runstate_set(RUN_STATE_PAUSED); } - } else if (migration_incoming_colo_enabled()) { + } else if (migrate_colo()) { migration_incoming_disable_colo(); vm_start(); } else { @@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque) goto fail; } =20 - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { /* yield until COLO exit */ colo_incoming_co(); } diff --git a/migration/ram.c b/migration/ram.c index fc7ece2c1a10f34aa5a91f58cbe42ea418d7c078..aebf77aa0b861e00516d6f1090a= ebefdd0d97e54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f) * speed of the migration, but it obviously reduce the downtim= e of * back-up all SVM'S memory in COLO preparing stage. */ - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { if (migration_incoming_in_colo_state()) { /* In COLO stage, put all pages into cache temporarily= */ host =3D colo_cache_from_block_offset(block, addr, tru= e); --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775395; cv=none; d=zohomail.com; s=zohoarc; b=TmYfDHAtEMiPoFJ1BNGdHaa/Oxalz2P2jplDsRO3BuN3batYaOr3lcpcDKI4suP2vD4Sd8szVsxvWDyEK7GFHJkzcXyFNT7wPGatky1Cr2cKXcqON5pywCjBlAteFAm5B5/CaEX6XVkg4RCn/opappG3ZQx38mOk/1cIu8FyrN8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775395; 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=0Tmq/TJdppSlXI+Ubgri9NcvnLS75IXkYXb8kqaLOJc=; b=ThB55XlziekCksklrPsMUZx/2jlg5v1d/hZwV2Lqb+0UWyIrT8qAdAwoh1OXlAEjyvPyHOog1vH+I8WtbHolPwo9x9N/pmW3zjlDlcHRCHqo+plNB3016UEQzZ+sIaib/yVY7peWWLsSN5MFcqtIZ3nVo1/rvIcT8xp93QXh6YI= 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 1769775395159883.6195057455129; Fri, 30 Jan 2026 04:16:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOg-0003EQ-Nz; Fri, 30 Jan 2026 07:14:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOd-0002bZ-PD for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:43 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOb-0001rk-DB for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:43 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MvKXb-1w3bMQ076n-00zofR; Fri, 30 Jan 2026 13:14:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775275; x=1770380075; i=lukasstraub2@web.de; bh=0Tmq/TJdppSlXI+Ubgri9NcvnLS75IXkYXb8kqaLOJc=; 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=Ny4DEvQW/wW8QcUH4oSLxFRiR/iJeJyE+esZE8nZ/dDd8vW9T43b2v7cxxlayD43 4LJySZQdNxFLyePhHFbPwALPEBPG7oJ473sf+tqzio+HcbPXWJPTAlppH1p+5J0CK lK0M8OR8ZTeL3wzGiniGBmbUV+nwy8zdE0bN/7dmjKqmY2HQrTBteixBigj9xhl3y 4GVbNUkR3d7m+dee0b+ESInCDi3dT/9oWOTCDCoFtp4byTIau4Exasv+a9yhRx4FE ynDiXICSfTYfgNcUsGR3ERhQ19D9epP6Ek31/KEZFeaMunHCxpAaS9Oj7pfbtCqdN Qhdoh+vweuaQs1BfBQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:13 +0100 Subject: [PATCH v4 05/16] colo: Remove ENABLE_COLO loadvm command functions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-5-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=3344; i=lukasstraub2@web.de; h=from:subject:message-id; bh=DzUjPHH1LtUOC7XxMpQHlfC5aCTE4w73hzWlkXM0Lo0=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKClUjvunZaVRhgmrU2cpvudBpLyDHs8pdSgE HficakirceJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WOsWEACWHXYygjDOB1mZkgw24HY1wDY4lAD9VbmAzH24bxYsuJ5jB5khRjjGBlwETd9cCVnBKh7 XK9M5GfFZNybwWSTBie0ErrozFKripHlvvsfaYK9h6GiZVCAB7rtqEIa3gGVEzQcFM8HWfjXcHn ic/MlSgxaaOkc1DojWqUoPnm81aaA1TtM5rWaaQ6W6+tu/EnD35b2vq2N0vJnh6N333g1eBI38K 8RuNWhxL6C73nRISkEoRIaUEuF39iBtSmy5uVuA3XR76HXb8DzNnyzBWVhIiw9PEjM0zJx1LUTg lKRPaHbmP10vpFYSG5JyLI2CY+I5b7LskqelK8f4t8XVB3HEIYpBVHfWm8HrVYHkT0WQKlL+ZC8 aShIc2/tlwYFUi7CadLIEEEtyLdVx99emmpqYCxjjihSSA6j8OY2P799DOVyV/rCwfUSHHU1pfo 3VYoD4EyQ0ELHvy/8CL2veCmw7INSKz91we5DmLn3LteKV+P6GgK846ghbSdouWOmNQzpXirPxT Ov1HUZVK8f+t8719BMhbBEkMTU+MbpMUFwadHvYzOPXSWWYVYTPrKKcbHx6F7+RjBkBBrzwkHEe l8uXmrZh/qBPFjzwsmNetMeYQAZMd4jPVJNPPDgOWeCWL9SyCbpbbZdbYUWNNb7hZpRJzzeK54Q ftx2G3YpjgVCTOw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:NHHdA+XflQuzDNx4M6ABmsdxQ9n31mPHMAFx2RXIfP8HkdGkxX3 0+ITcoD33iuEyMjZ3W6ryDV3h/vUYCDKvxhceR9h0r75eiUZ3g1unDf24B0oMxqm41nNAWI WP4HWnXoOSrZxZmZ9C44JsUDz3L/z42VcZtK4oso8BuUXkQkh+cQmibYAPUHWO4pMIvca3y 7BiZznfGmOldZbQ3H00aw== UI-OutboundReport: notjunk:1;M01:P0:ZFN2rK1IKxU=;eVeR7FaeGpWjhnQDpqhYPEs7yWb 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775397460154100 No need for it anymore now that x-colo capability is required on incoming side. Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- include/migration/colo.h | 2 -- migration/migration.c | 26 -------------------------- migration/savevm.c | 10 ---------- 3 files changed, 38 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 2496a968cc1ce709f706c0efe57e4f765f163d3c..8f94054a10760d0f2598f080643= f45f9944cf051 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,8 +25,6 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(Error **errp); -void migration_incoming_disable_colo(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/migration.c b/migration/migration.c index bc8ce64ff5000b0eb634a20b22e5f3e3289b9707..3f3fc5276bb067ae1960e4b675b= 33208ad641b23 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -604,31 +604,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, return migrate_send_rp_message_req_pages(mis, rb, start); } =20 -static bool migration_colo_enabled; -void migration_incoming_disable_colo(void) -{ - ram_block_discard_disable(false); - migration_colo_enabled =3D false; -} - -int migration_incoming_enable_colo(Error **errp) -{ -#ifndef CONFIG_REPLICATION - error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " - "replication module is not built in"); - return -ENOTSUP; -#endif - - if (!migrate_colo()) { - error_setg(errp, "ENABLE_COLO command come in migration stream" - ", but x-colo capability is not set"); - return -EINVAL; - } - - migration_colo_enabled =3D true; - return 0; -} - void migrate_add_address(SocketAddress *address) { MigrationIncomingState *mis =3D migration_incoming_get_current(); @@ -735,7 +710,6 @@ static void process_incoming_migration_bh(void *opaque) runstate_set(RUN_STATE_PAUSED); } } else if (migrate_colo()) { - migration_incoming_disable_colo(); vm_start(); } else { runstate_set(global_state_get_runstate()); diff --git a/migration/savevm.c b/migration/savevm.c index 0353ac2d0de819b6547a1f771e6a4c3b8fb1e4ef..413688b75f4bee6cb10878eb518= 86cf6ba14872d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2403,13 +2403,6 @@ static int loadvm_handle_recv_bitmap(MigrationIncomi= ngState *mis, return 0; } =20 -static int loadvm_process_enable_colo(MigrationIncomingState *mis, - Error **errp) -{ - ERRP_GUARD(); - return migration_incoming_enable_colo(errp); -} - static int loadvm_postcopy_handle_switchover_start(Error **errp) { SaveStateEntry *se; @@ -2528,9 +2521,6 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len, errp); =20 - case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis, errp); - case MIG_CMD_SWITCHOVER_START: return loadvm_postcopy_handle_switchover_start(errp); } --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775330; cv=none; d=zohomail.com; s=zohoarc; b=FhV5hBjfD8n/OTb740h+5qXZJTMGdgHjV6NF3lowO6Oekn1BTbA2gMApX9FctvYSIWZKeTpUq30QSU0LUIiDK0CKEjP8Oh/3A+D9x5wkcV6bdYwzPm5bop5OsSndAJloFN3zFDQJx9V5VzzHzQt8sITQBwwFqT7hCmBKYAacE5Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775330; 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=3SkpMi4quISgRmRXEBHkyLwy4k46W7154mr9/Z8iw+A=; b=aYjyRKr6K4TbmV6BO9B2dNjrgnz8eH1BqFG6asvCvzPUGhs6i8CuBgnGD36ovFg+j9upZU9wvmt8QWmUHkof2FxT1oNmhKOgJNA4iaqv7X3N2pW/JNr8meXI+IcTFB6W6jHSNhGOeyHPseHRABH8y+c5fEr/QzFooUhTkFNmGYY= 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 1769775330549871.9633735038165; Fri, 30 Jan 2026 04:15:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOk-00041h-Om; Fri, 30 Jan 2026 07:14:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOh-0003Lu-6t for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:47 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOf-0001td-Fo for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:46 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MQPZj-1vQ9wg1SG9-00UthZ; Fri, 30 Jan 2026 13:14:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775275; x=1770380075; i=lukasstraub2@web.de; bh=3SkpMi4quISgRmRXEBHkyLwy4k46W7154mr9/Z8iw+A=; 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=EcxfWoBrTGjXpIt/vg9NpB1PnIph7aLn9kZxpok962BciPJaZ/XTeObF3sAZx96y niSgwXl0+hu5DKAVvsmlJytxZ9dP5q5Pfllr5TBnxJKF6zdV2YtyzIPbiO0/roW1j IEED+tyDt3ooLM3jmwFyW1C64o3g5HGmS6pX35yKg/DwTZN8sf8d2qd2FpjNyh/cn +SaxcWwZAIAV/F7A3l8rMeGlvLQ1icgIwHWUhGLW/UNP7CwxfwkEJE8AwfVgfOXxZ 39E72uvGpy72jowtSLWO/BRPKKeJehnJEQllbQmxJwZsQEICcrA4D0NRHiElb+Dj9 KA2UA7nl/kuo3K7B2Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:14 +0100 Subject: [PATCH v4 06/16] colo: Don't send ENABLE_COLO command MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-6-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=3289; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Wxl6FQI19QQqNOv671X8shtuGgShfiq9D8FfSoZ4gdk=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKClOfNuIm5eE9q9TmqbLIhBqxU16PCjxKQiv YtcMjEi+HuJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WB/bD/9U3w0gky6Wy7lBK58Y0Fsw8LA9ua0zpgw6oHCQH/N63aZHN8+beSwMYhjl0h5jN79B0k/ x1/6azBt7Z1wCa7GL/zYKpyu6F7bEwBvD0EoFyiGTsp2Gc7FsY34nIIwz1A6sI9W8w16eShvLxB zFyLGue7QvVB8lDX1mRZH76Y3PAX2MPHbs68CLytxSPpQp4cIT0YInJi/Ky5McVVsJJmyDH9BqQ Tq9xo6I9CV7Yq2CvUFqFuofUyR0ZKEE8DxcsC85tMygvv6cnHGTERH69QYNRb2iH3rgSZBVeB3r a288pdwM7pmVEy9SgEsM4Hnl2bwu0QptYApurorhDffzs0DQjt7X2EClrES12Ary+NcRo+isWKo x5REPH/lOdgDahROhSoOEZ01dD1K6zyaJlnBZ6rpz2YCkaBog9nH43i3q9LspjzyOM5br4qg6Uf uJJRBYSSKzL7fW5fijbmHXi0+5tvfCg0JX1lLMVLOTyIjetscGuAR2A+WheJjubMobfJqdLIKqr 7dkMFA/lerh+GcG39z/vZu6LAx0HDtbrgcLb3kAl9RbbsRE6L9363H519JlQFp4cNJy+kJ98VtM Jrbwy88JDfIDsMluRokO+L3pYIdZ1ekYRBp91M33FMUzv9aqD2HKN4xnw+EREXK6vthpB4Hu6tz ICF3x7NEkdbc5lg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:v2Ej47Gktq3lI36GjJKOC6b0h4tZ8bNZeMAfisNBlOilpHS8mat rznLA7E8Gs/cu5CnOKxBfjykd3E0unpLc7bqrkXCW74tphBZoxhUVwiAtTiUipf6t8E3IJy R/M8ug2uEvvpRLUUWmKL6GcyGKom47V937s0IaLe/EZEn9hO8xn3ImMyjISfBM2YeemLbhb 4zHWGJMI0+kZ9srulD1yw== UI-OutboundReport: notjunk:1;M01:P0:vk/XrUD5OZA=;EFozOnd6QrW8GrzrlQkCJTTKB9g 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 VVrQtbLUzvtqifKIkt9bmfDKZ64eG Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775331270158500 We only support COLO with the same version on both sides so this is not needed anymore. Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- migration/migration.c | 5 ----- migration/savevm.c | 8 +------- migration/savevm.h | 1 - migration/trace-events | 1 - 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 3f3fc5276bb067ae1960e4b675b33208ad641b23..5515be1bf305b40ba0b590136df= 18a53451872c5 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3496,11 +3496,6 @@ static void *migration_thread(void *opaque) qemu_savevm_send_postcopy_advise(s->to_dst_file); } =20 - if (migrate_colo()) { - /* Notify migration destination that we enable COLO */ - qemu_savevm_send_colo_enable(s->to_dst_file); - } - if (migrate_auto_converge()) { /* Start RAMBlock dirty bitmap sync timer */ cpu_throttle_dirty_sync_timer(true); diff --git a/migration/savevm.c b/migration/savevm.c index 413688b75f4bee6cb10878eb51886cf6ba14872d..a3af09616a7bd22194ffba3cfb7= cc4cf15fc88e0 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -90,7 +90,7 @@ enum qemu_vm_cmd { were previously sent during precopy but are dirty. */ MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream= */ - MIG_CMD_ENABLE_COLO, /* Enable COLO */ + MIG_CMD_UNUSED_0, /* Unused since 11.0 */ MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */ MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */ MIG_CMD_SWITCHOVER_START, /* Switchover start notification */ @@ -1092,12 +1092,6 @@ static void qemu_savevm_command_send(QEMUFile *f, qemu_fflush(f); } =20 -void qemu_savevm_send_colo_enable(QEMUFile *f) -{ - trace_savevm_send_colo_enable(); - qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL); -} - void qemu_savevm_send_ping(QEMUFile *f, uint32_t value) { uint32_t buf; diff --git a/migration/savevm.h b/migration/savevm.h index 125a2507b7279412bcb0745b95a774874c31c54f..0a1e5bfd1ca125565a4c90c6f31= b2f8c94404117 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -62,7 +62,6 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, c= onst char *name, uint16_t len, uint64_t *start_list, uint64_t *length_list); -void qemu_savevm_send_colo_enable(QEMUFile *f); void qemu_savevm_live_state(QEMUFile *f); int qemu_save_device_state(QEMUFile *f); =20 diff --git a/migration/trace-events b/migration/trace-events index 91d7506634c9f110e8f0b5f9183728058fe6542a..cfd4d58a0f82ec299ca9e8a9260= dd3c3a210cece 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -37,7 +37,6 @@ savevm_send_ping(uint32_t val) "0x%x" savevm_send_postcopy_listen(void) "" savevm_send_postcopy_run(void) "" savevm_send_postcopy_resume(void) "" -savevm_send_colo_enable(void) "" savevm_send_recv_bitmap(char *name) "%s" savevm_send_switchover_start(void) "" savevm_state_setup(void) "" --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775354; cv=none; d=zohomail.com; s=zohoarc; b=Voc7kKIjtFPtAMT4NKy9tveIFgT0+hUbg4SsoAmW5PRKPn5MYDH4OHnOSrqp1rAxfBNeB82vhZq/dVhXi9hJaYG7q1+UubACcwuqtvdigjBgkgisZO65EI6lAeiVBmPYdtwcwZcb/VVGy3p003y/VmIhpaEhQMR2oKyI33h55xU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775354; 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=N3Vz8noecY5nAN6aNnQbREG8egUKFX5z4+n9xRV/zCo=; b=EHZiZAEovYNouwNgGLCo88upINl9Kw2DWttDcIeNv1oCE4NJyJ+B6AXFsxvf6W2OgpBsPQWX9woVX2tCs8c3K6gsOvcwfbf2Yj/yCYOgmZqJ9zxl0b4uIFV7oy74bZpc4Lv6iUMfbzj6ae1Dbvuc9vtiw96Z5gQSZ/C+aHJ9OPg= 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 1769775354319426.86179764889414; Fri, 30 Jan 2026 04:15:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOe-0002lm-Ee; Fri, 30 Jan 2026 07:14:44 -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 1vlnOc-0002I3-DF for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:42 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOa-0001rd-NB for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:42 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N1u6d-1vsZnO2moT-00tF57; Fri, 30 Jan 2026 13:14:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775275; x=1770380075; i=lukasstraub2@web.de; bh=N3Vz8noecY5nAN6aNnQbREG8egUKFX5z4+n9xRV/zCo=; 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=nJBL1nI4uXmtCm3cC7/m3M58vjworGftt8P3TrgcK5lH8U1qtM0WVtzLO5nT5RNn fj8gw+Cl1O3HOXOJzXL9FeS/1ytc7UnGqdnlrakVdeZhxW74l+mKGQ5BHt/r3QpKo oBaB8yUn1dSlrb5Nfdvquv5poiRWnTWf7i9KxngBXS2tbA2moZEsoPBkBZwBBic4Q al9FXhaKPr3lGUpxiD0Rk174W0XwS/yZWZ6Tkjj4A5styByb7nsTS3aUbOOWNBBbf kFcRhXB9ABJWsfN3HlbzLMD703NTEqK+CSOH2ewNdn0VXscjM1vKvWnY7/FsDiwlf yT1lpqj7TRbS9076eg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:15 +0100 Subject: [PATCH v4 07/16] ram: Remove colo special-casing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-7-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=968; i=lukasstraub2@web.de; h=from:subject:message-id; bh=XFA0vOxAvfwCtCIjXiUoHlgajMWqeC0ZWy432zuy6tY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCltsI5qyIJYpAvVP5VRO3E+uNMfu8gzw+p3 ES+H1T8cXyJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WGV9D/9Yk/Ezv25drmM4yFlEMXTl3T/OXJj884mnvEO0zkut9OtTlY4CCG+vU+Y2hQMEPlhXEYn PTGKocAkEobq+NV/eLErrAznkuKD1iZ32m5yI5jrOAqwZbY5wwqg6NRAoxRf7TFjmGgpJc3p3eL qVEAuADx3ZzqX0vHkB1Tl222Ir0WeKDPm2zvUCgaQEO2o0MClty4qiFLADMNtxk144VFmkgdAoS N1tfkV2OmYbuNzcw2eOPwAMJqzGLLK6HRl3/zTfIHgJ0u2qdgt7/uQ7A/dghNndYWieNeqNPnjc VAVI11KTa3a7+M4KQ49nJmXPDT8s6E5MwoLLMbIr+He05Qy3zgd+MV9qrYuyHbjsPt96wDJcZcd dPZYVxaPRrncNlKNVLXZj1ZQiEWYtqx1kA1kGk2v8GNUXH5iPHNEqpC0BivM6ZSarZjzfZZXGgK j40eqypw8vcu8ND5CPCcqKdExEcap1SpD1Ox+NsTNZOqUsh2vZaA1mnI3Lvuia6sgkLx7jyj5SA hCR7q2Ly1sP0yAg0Kj8ycLqXkgtLKA3wQ9/IVCh0CI4h8jRfoZxau7u7I8xe0RqV5nUuarP65BN X+L/an9R5a25WzN7058QzOhsWJT5S3FEcZRGakN9E4Iz/bo6AWDbgWvFT5VuZ25ebIlmpJnD+NY EbIT4Nl/iPBVXjA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:TU2W2rz/ILoDy+RSQacMO8ilOupwDrs+vg8v7oFoIx7e657n8Fr fmpAMbBaL1y7Tfj9hbnD9AVyUSIPDNfuE8qCKcqO0fzLzGE9uNfeHinkphrTPqcJkrLSQMn u+JZV5SadgfJuA4xXX8WwIl7ldpbDdv40ruUl4JFe/sFlbTyqP01f8eScB+hqEHMRXz4HaL aMRdXYDHlF1EkjqoJwn+w== UI-OutboundReport: notjunk:1;M01:P0:qk7fYpWcwZE=;DM4KKGyTB4xOQv3M6MbXbFgJahp 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775356982154100 We only enter colo state after the precopy migration is finished so this if is always taken. Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- migration/ram.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index aebf77aa0b861e00516d6f1090aebefdd0d97e54..979751f61b30d6c4b878866b501= 1507e7c519176 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3116,12 +3116,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque= , Error **errp) RAMBlock *block; int ret, max_hg_page_size; =20 - /* migration has already setup the bitmap, reuse it. */ - if (!migration_in_colo_state()) { - if (ram_init_all(rsp, errp) !=3D 0) { - return -1; - } + assert(!migration_in_colo_state()); + + if (ram_init_all(rsp, errp) !=3D 0) { + return -1; } + (*rsp)->pss[RAM_CHANNEL_PRECOPY].pss_channel =3D f; =20 /* --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775399; cv=none; d=zohomail.com; s=zohoarc; b=DlNtnembNR5W+urQEFP2H+CuEUqOsTbm0NBNoSqB+Un2/gzhWrnR0M8Zm7+bpTsG37Cd+0vQfdeI0gkb1L89o0von4w0TPO/siCLsnTtTyrBVUsBEEWro/obLUz5VeXqgJaJLCQ4APoVaIR2pPbUeBj3e8kF79sxA16h1Ni76/Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775399; 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=XQyvZP0EiBvnmisTmmUVx4kKGFXMIA9OTB7HJ9NTdae53bEa8blz9Vc4eOsBpYXZUdOTJ5sfr0lAibTRrULZgo92/KLbu8/4aatLUQwafzq0tmpAHo0/8/WPREqxcXjh5tpm8u3x+PR5rZ5Wn4jMkPlF9dR/TZLeGopARGkO6nk= 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 1769775399056540.659889844626; Fri, 30 Jan 2026 04:16:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOh-0003NR-Dj; Fri, 30 Jan 2026 07:14:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOe-0002qE-Kd for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:44 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOc-0001sA-VG for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:44 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MfKtN-1wF6rw492R-00pJCN; Fri, 30 Jan 2026 13:14:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775276; x=1770380076; 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=ZDsyz/ZS+1E47rP2cLeKVRTU/LzPmfy4h4Oyo+GqQoacMytJR76mctx9PaEd9boi KxvZC9QcNVEvaxE6GMGRGb/5N/Vd28Rt2aW3dYxlckXw8q4jKuj4xFv340MoTdDCM 8f2ao6gcvBHrTqSQilKvW6cBUWixISmRnP9kqN0DAmzVw+4NjWlzLFzGXwiXNhh+t H11gQRhIuu0FPnV9PUSE+Ep2HaZHI65yv32Rj0v8h5q34tnAtAWwB78KuKOCpFDcG Uo3EfD3+dlWpOiViEFbJKj53+7PcsC/MGi3QO/m5BYN9XweiXutD5iPm2oj997bw2 RZCQFSBJ4Ru7s+sR8A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:16 +0100 Subject: [PATCH v4 08/16] Move ram state receive into multifd_ram_state_recv() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-8-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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/ZANAwAKATWrCyicXbJYAcsmYgBpfKClKnUa/IWZCDWaPyzxNn0pad3enstcW4kAa KQWlmxyNQuJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WHjSEACVM54yNfojawJ+Hbf99WhbFzAZOJDbLTLWbZb9Q4BJdMgI+70yRaU7jgQgkeCEgwMI6Fn 1Hbkcb47L2JTQPsCVcgpIsbcbqJAvwh+IGcMGJXa/38ajigk0fpXPgCkjR6WzLoN0/XOdrmAffa GsCz6GIi9LPiedDWXwubueqwJRJe56/a1iPP6R/g10J64wfmxUdQstTLuqQ4Cjsn+f9Cis7EM19 tp4ZkZYkDOGEKH5EJCDtbQDki4Dn2vbEfpL9LO9nPeh/rs1MftItHp9npCNrCdfRG77GW22m7Ip SWUQuc68kbVUUVToPeVram3QOkGr/qf8xejCaLz7lLoNAd79+4Ku4kFfPX41JPezWh3+yEC9+mD 1ObyaGM5OQ90pTaJDEGFsKm7KkDBuRrX17IbTkwskUId/yDLULRoOSulZNhBoYVlrdmcA0n2Fk9 Kk6r5dEMiE0XLq6f7UEytE7867lkey+d6Q3/Pm2DyHISskkoGbNCWMctLSYzooFcRkUaQLY6YNq WD6xEncSF8vbsIg1IAWBq+pYkoj+WUF+w+k0Cq5kyXepTUtfez1njTyeBg6uhryclnDDHP0j38s RsrqSg6yAz8mLCFgSKaeMmkJ7iG+9wm9/amwpU0l1MgUBPdKNemlkIr4Oo5u4Lvzv+GsW63Slk0 vCalM89VWTx7ICA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Uj4gxF/gFEDk9MU6Jz0yEcnFVDjxfK81yIZbbdxw03Z+2vUTQWt 6JuIUfmSGdh9pImFVJHrspJDcr+BlWNhlAxTyqDUxS+w3iyfDe+365tEkhxe140fssJ5SGi stmFEczThxBuvxaJcgsGCNqt6u57LJZW/4fnqgVsigcDg+ukXaZ92ePqNzAKjVNSnN4yDh3 7j25v456e19M0d95fl77A== UI-OutboundReport: notjunk:1;M01:P0:YfC1uBYTv8M=;46/eO35p3GvjuKag/3yQV/ifL3E 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 oMb0jks8= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775399455158500 This is in preparation for the next patch. Reviewed-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/multifd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/migration/multifd.c b/migration/multifd.c index ad6261688fdf98a5c7f4ee9fb80ba2901201a33e..332e6fc58053462419f3171f6c3= 20ac37648ef7b 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -1253,6 +1253,15 @@ static int multifd_device_state_recv(MultiFDRecvPara= ms *p, Error **errp) return ret; } =20 +static int multifd_ram_state_recv(MultiFDRecvParams *p, Error **errp) +{ + int ret; + + ret =3D multifd_recv_state->ops->recv(p, errp); + + return ret; +} + static void *multifd_recv_thread(void *opaque) { MigrationState *s =3D migrate_get_current(); @@ -1387,7 +1396,7 @@ static void *multifd_recv_thread(void *opaque) assert(use_packets); ret =3D multifd_device_state_recv(p, &local_err); } else { - ret =3D multifd_recv_state->ops->recv(p, &local_err); + ret =3D multifd_ram_state_recv(p, &local_err); } if (ret !=3D 0) { break; --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775394; cv=none; d=zohomail.com; s=zohoarc; b=cLcwMGd60LkXvPH8RZrKKlsf4FWZE9M0GG1bIm78DuoV1YJ6EGi+Pq1+/iSTygm49Q07TpVzttA0HiMadU6RTrQT6yV1kBv4KGih4tvSQO4tn6DUweoPMuW7rH6GLeD/hxVL2l9BClTIhDAWQupDQE8a14vkUHBoKXZ6C+/27po= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775394; 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=t+qazfxv0cjsxkxdVS98c/ouTPF1FxzuKzQnSY2chj4=; b=NMtcfdjIMv4ZtEyr9c2xsl69VKuNwVEd5i5HC8MJJsnhttRVlM48h7tCCpluzvpFzG9kuHdlcoeK9Am4sklC2Oy7h+14vGoWXCdmlhkIHoWIyNe04PUv4sZcGY4dHVCMVpyxf7yo2MbXvUOje58vEmeJbAvn46VzC+EKE5I4e6I= 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 17697753946711000.0519102026981; Fri, 30 Jan 2026 04:16:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOg-00034q-1e; Fri, 30 Jan 2026 07:14:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOe-0002ka-9B for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:44 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOb-0001rt-M0 for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:44 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MQPZj-1vQ9wj1SG9-00UthZ; Fri, 30 Jan 2026 13:14:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775276; x=1770380076; i=lukasstraub2@web.de; bh=t+qazfxv0cjsxkxdVS98c/ouTPF1FxzuKzQnSY2chj4=; 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=pKRtRB7scJAY5nUUHY/B6p0zCj6azB+Sv9mrRlcRqSZsXjKq0QAIcUUa5FktnBQP kjqBmYopUTHOlYpZ4qRBvZH/johJNZc7J+LvdByUsca4+GdwOE3HUW1FYDrJlP6CQ rSg44zNFWRS2+ngcfW5ol0FUkTQWLBVlrpTgr/IpExzrWmZelzD6ihOa/oR0qq66h oLrWYWOCQWYuT2i4heTVGzHeV9iNpanqSQX/X3yyM18o8RSK9guehKSbAPWnv7Nxh iHiNcbi232E+QKh8ghr4bkhilBUGt9obxD3H+HUlXHUnFwUSBFuorLA+lJ1wPb6cC ygvDSzQ83p7n+eS15w== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:17 +0100 Subject: [PATCH v4 09/16] multifd: Add COLO support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-9-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=7865; i=lukasstraub2@web.de; h=from:subject:message-id; bh=67tN50CybMgyFTANooutWoTFDcEJrHK4q1KysAqjbu8=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKClCRZyoZ5YMlV4t5FKncsnT97quVnSXh+Kd oJ6976EVY6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpQAKCRA1qwsonF2y WGZzEACnY508UR5/CT0UphWZFioek52j4yTwRUReshRi0fWPwxcMjJN6YczHNhmPl+3eN1eQNy1 HFwARg17E0VHUHIBap1u4jxOP9k3rZN6i1Nj1RY+WnDDVfTWdMEjSfSRQ+jVb8Ba1xmSJ/jrOot YYZE7OVr1s034itYSW1pSCdZ9qi7l6sc/HlYGMcxloR/0xOPs5TDPLkZE0C6sR/dM6jEsei7djj FekHTIJpIk8frhYKJb/x2JdnESd6Cqe+6fm4UN6xCyhAf1RXYSuifQzfhOg5cIce+f7aGEEBBug CjuYR+q/2T5t1/LFm/Jb1QcqILOrmmi6Q8KNo3VbeDsAuztzgYgLXdr4aYwYiFUuPcbUPg7+2b0 /pjQN6268TRVeH9WEFDFjE8/goaKaHo+jxjxoJr23IiZoOku+V0olmbZ2CHONYR+DSacCjOiySP 54Jgk1hE25RpQhYyDRkAZ5N3YiND4slm0Q5tWlSMSMATWpi2Lt+XhvdWfn+k7/MHzqr8/fclyvN GX5oaGHwjUySvyw3VikUXJCQbjx7l6NSPNuyEdHZEWHhfBES3fH6pEQmwO+YkMhA74/cUBC+3mW /peFDB43/GqKaymoAs7z7p2x2nqSkk7DLvASi7ECFkHM5+7fFJHrTRC45qbJp/4AxzzbpdedyMn 8Lc8cuMlbXt9QEQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:d65ScU+GJsO2vZ8OS9xQihENJgrqVlsYoM28wnaq7wdP5mGr8V3 wdYlskP1xN5PSmjJJRVWh3WFqekgohp/ibwNAPtt0/mlq7FC0n+U8iZ3JSuhu7CGdn1xsmL +Jw+Fiarn1pgnzKm/BSxiXAXILKOmNmSSx9f9A8vHLkArwGL9on2/WE4i6yd7pvBItTPTZi xe1z7D3fP5Po3RPsHL8Lw== UI-OutboundReport: notjunk:1;M01:P0:oJ6W05yBGdE=;tigqAIvXMB2dUu5XsZwzBP0eNbH 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775395724158500 Like in the normal ram_load() path, put the received pages into the colo cache and mark the pages in the bitmap so that they will be flushed to the guest later. Multifd with COLO is useful to reduce the VM pause time during checkpointing for latency sensitive workloads. In such workloads the worst-case latency is especially important. Also, this is already worth it for the precopy phase as it helps with converging. Moreover, multifd migration is the preferred way to do migration nowadays and this allows to use multifd compression with COLO. Benchmark: Cluster nodes - Intel Xenon E5-2630 v3 - 48Gb RAM - 10G Ethernet Guest - Windows Server 2016 - 6Gb RAM - 4 cores Workload - Upload a file to the guest with SMB to simulate moderate memory dirtying - Measure the memory transfer time portion of each checkpoint - 600ms COLO checkpoint interval Results Plain idle mean: 4.50ms 99per: 10.33ms load mean: 24.30ms 99per: 78.05ms Multifd-4 idle mean: 6.48ms 99per: 10.41ms load mean: 14.12ms 99per: 31.27ms Evaluation While multifd has slightly higher latency when the guest idles, it is 10ms faster under load and more importantly it's worst case latency is less than 1/2 of plain under load as can be seen in the 99. Percentile. Signed-off-by: Juan Quintela Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + migration/meson.build | 2 +- migration/multifd-colo.c | 50 ++++++++++++++++++++++++++++++++++++++++++= ++++ migration/multifd-colo.h | 26 ++++++++++++++++++++++++ migration/multifd-nocomp.c | 10 +++++++++- migration/multifd.c | 8 ++++++++ migration/multifd.h | 5 ++++- 7 files changed, 99 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index b239cf00f66f0683d481150ba27447316bcab72a..900d6b9436670515162eba4aec6= ee0f023c9a2fc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3850,6 +3850,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..c47f5044663969e0c9af56da5ec= 34902d635810a --- /dev/null +++ b/migration/multifd-colo.c @@ -0,0 +1,50 @@ +/* + * 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 "exec/target_page.h" +#include "qemu/error-report.h" +#include "qapi/error.h" +#include "ram.h" +#include "multifd.h" +#include "options.h" +#include "io/channel-socket.h" +#include "migration/colo.h" +#include "multifd-colo.h" +#include "system/ramblock.h" + +void multifd_colo_prepare_recv(MultiFDRecvParams *p) +{ + /* + * While we're still in precopy state (not yet in colo state), we copy + * received pages to both guest and cache. No need to set dirty bits, + * since guest and cache memory are in sync. + */ + if (migration_incoming_in_colo_state()) { + colo_record_bitmap(p->block, p->normal, p->normal_num); + colo_record_bitmap(p->block, p->zero, p->zero_num); + } +} + +void multifd_colo_process_recv(MultiFDRecvParams *p) +{ + if (!migration_incoming_in_colo_state()) { + for (int i =3D 0; i < p->normal_num; i++) { + void *guest =3D p->block->host + p->normal[i]; + void *cache =3D p->host + p->normal[i]; + memcpy(guest, cache, multifd_ram_page_size()); + } + for (int i =3D 0; i < p->zero_num; i++) { + void *guest =3D p->block->host + p->zero[i]; + memset(guest, 0, multifd_ram_page_size()); + } + } +} diff --git a/migration/multifd-colo.h b/migration/multifd-colo.h new file mode 100644 index 0000000000000000000000000000000000000000..82eaf3f48c47de2f090f9de52f9= d57a337d4754a --- /dev/null +++ b/migration/multifd-colo.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo header + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef QEMU_MIGRATION_MULTIFD_COLO_H +#define QEMU_MIGRATION_MULTIFD_COLO_H + +#ifdef CONFIG_REPLICATION + +void multifd_colo_prepare_recv(MultiFDRecvParams *p); +void multifd_colo_process_recv(MultiFDRecvParams *p); + +#else + +static inline void multifd_colo_prepare_recv(MultiFDRecvParams *p) {} +static inline void multifd_colo_process_recv(MultiFDRecvParams *p) {} + +#endif +#endif diff --git a/migration/multifd-nocomp.c b/migration/multifd-nocomp.c index 9be79b3b8e00371ebff9e112766c225bec260bf7..9f7a792fa761b3bc30b971b35f4= 64103a61787f0 100644 --- a/migration/multifd-nocomp.c +++ b/migration/multifd-nocomp.c @@ -16,6 +16,7 @@ #include "file.h" #include "migration-stats.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "migration.h" #include "qapi/error.h" @@ -269,7 +270,6 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Err= or **errp) return -1; } =20 - p->host =3D p->block->host; for (i =3D 0; i < p->normal_num; i++) { uint64_t offset =3D be64_to_cpu(packet->offset[i]); =20 @@ -294,6 +294,14 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Er= ror **errp) p->zero[i] =3D offset; } =20 + if (migrate_colo()) { + multifd_colo_prepare_recv(p); + assert(p->block->colo_cache); + p->host =3D p->block->colo_cache; + } else { + p->host =3D p->block->host; + } + return 0; } =20 diff --git a/migration/multifd.c b/migration/multifd.c index 332e6fc58053462419f3171f6c320ac37648ef7b..220ed8564960fdabc58e4baa069= dd252c8ad293c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -29,6 +29,7 @@ #include "qemu-file.h" #include "trace.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "qemu/yank.h" #include "io/channel-file.h" @@ -1258,6 +1259,13 @@ static int multifd_ram_state_recv(MultiFDRecvParams = *p, Error **errp) int ret; =20 ret =3D multifd_recv_state->ops->recv(p, errp); + if (ret !=3D 0) { + return ret; + } + + if (migrate_colo()) { + multifd_colo_process_recv(p); + } =20 return ret; } diff --git a/migration/multifd.h b/migration/multifd.h index 89a395aef2b09a6762c45b5361e0ab63256feff6..fbc35702b062fdc3213ce92baed= 35994f5967c2b 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -279,7 +279,10 @@ typedef struct { uint64_t packets_recved; /* ramblock */ RAMBlock *block; - /* ramblock host address */ + /* + * Normally, it points to ramblock's host address. When COLO + * is enabled, it points to the mirror cache for the ramblock. + */ uint8_t *host; /* buffers to recv */ struct iovec *iov; --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775360; cv=none; d=zohomail.com; s=zohoarc; b=Lzn/LUa5H7C2xRvJMHwgyT1IeeTLVtR+JcaqzleEP04FTuNXtPw+ZCZ/lUWP440YwerdA1Uks/uxQXgoqyjZqhQrJLuXZfSUzg//zLCoUl14XzC1waSQICuk6Msd/jUU6UO1FNwQ+OSGuOtXjJdbfs8yhRp68Rzsn/MtKxW1moc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775360; 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=Rrc0no70hhau4Jt8fTPloXuIX4qo3Se3NfNuNt3mGFM=; b=crbEJ6bdPuls4ZGbSW5nrfFyi7V/QgrCbcSckJx/6G7YXfah610SvaHfOzHLHBhBp4VK6FbxaOaCKthoaqfLO45hmSn2nOu1PBSnSuZBX3dXCJRFZRTQ9T1ozrHOxlw03QwZbJ0DBc/zVUGH5VMX8CXnj44NOIcf2FyQKAXOe+g= 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 1769775360515570.4578193248802; Fri, 30 Jan 2026 04:16:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOb-0001xV-8C; Fri, 30 Jan 2026 07:14:41 -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 1vlnOa-0001g5-1A for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:40 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOY-0001rB-CK for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:39 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MbCHy-1wIfEi2wNU-00kc64; Fri, 30 Jan 2026 13:14:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775276; x=1770380076; i=lukasstraub2@web.de; bh=Rrc0no70hhau4Jt8fTPloXuIX4qo3Se3NfNuNt3mGFM=; 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=QZaiVOC7l/B5QWO5WwpVbrf6+Py6Xoph8/RUuh/mDTJEXFSfokNgalm+Ge5plClE SwYTaDU+bELj0tfnRLCy9//TP+A1v9qrpEAlxh7LwHBM/5hfNEYXnKclJntpjmC2i WToisfg5i6pbI2YYbajUAQCyNMHN93p0IUch8zujmLCF4tHTB0s9tr7xc7el8VG+R 4hQjGm+JvSlPFVeWckWEaIVMKMJLON1Pqe3Rumx73HNTR86ZqWi7IR27RsvNG6yTR x9SoPc6dhVZ1RIn1JmgOg4L0SLIozeMKk+6U7NJcDAbMKWl/aw8wXADkPhvYqoZjy XKdl3S69AycdhuyHKA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:18 +0100 Subject: [PATCH v4 10/16] Call colo_release_ram_cache() after multifd threads terminate MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-10-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=1256; i=lukasstraub2@web.de; h=from:subject:message-id; bh=ubZcelOaoSvdF5jib/qpqIcKQiRls2j3BfCh/MOdpis=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmavHgbeZJIJbd3c1cO4C9FRc3xP5I2OU7g 1Mt9zyGny+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WJNlEACXtyd034VwnVLFf8y8WBgQnVYtqzlMaRjKVbsk4Khznf3GCE7ZJIaJdUtHjmwSqMVttfr VxHNgFIV3F6kTxFaMZtZTg+Y72pn+j83oe2zDZGZ6mWl4uZe8+9X7krcGmqzycX6o59/UI8MeEb H33+GHu6JX1PXtYjlPnPP/f5H/y71ocggVnM04+Dq76EwqAMEpb61PUOMHmD7zOTB90cEJjiM8q r1jPRlg0qAvodPwEjx4RiJmtt4HJlXJgvQ38h/UA5kAqesJ0zvy6KDPXcuOuAi2uAkONdqTuWZQ FWtpko3GGwIQ668gFXh7hzC+y6id/3ONaMAHa7Oml5gIFU2sKknKCslYVIgoV7A4mrRiBa+lszZ ykth1wwfdx78es88X36O+AXF7T9HuyG0w292QDRBAk30/N8GpPRKinhoNVowNy01ObohFuYT27j Ex+PA4sjsq9LmLGYVT1azgCp/jf3E2zSauqCWSGKs9XNmVbFyBuuh+WhGjIrsKHyNjzfCojMxBE JrYfe0t8RlFAk/+Mv8mu1zPQiQ8AjeTXLVdAR4Y0HXJ4goTlpMdvjEDk6OI805hLiwh24kvifHd Rv+ziew8VSTUFhLkLtAFlEwIzP0hxpZQcurz6470rwlIdKQukf+FTkNpuVEiqWAmZH6vdsvx9Pu UdCEx5UJQMw3Dww== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:9EFdtjGlL/q0QGCxdHQDqPhSVXdTfjEMvLvhuAl8xPBXkkV5JE4 D10wTsaEjWMKKte1xUgj/vffhl1jLsDX8BI22SOBQi+a64A/OdsGCZMDv+6dpylbwDU4Dul nqxS4Xq4h40km+uMCagkOL2P9jhDvCfT2I/25m6cA6AE3Umtr364rYhdOQg1CSvuho1Lo/P UMGsv/TOXyXS6NH3wXZiQ== UI-OutboundReport: notjunk:1;M01:P0:CbxItbPgZ78=;rxKwAzUfSMjOzE7JIdwO7VZnS0q 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 5zGGcJsrfr8tmHdwq3re5G3Qf8/QU Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775362925154100 The multifd threads still may access the colo cache, so release it only after they terminate. Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- migration/colo.c | 3 --- migration/migration.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 8dfd39b035c48590fcebeb20459f01fb37fb67d1..d3534d1a32ad82f02101ac092eb= f818a0caee6f2 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -947,7 +947,4 @@ void coroutine_fn colo_incoming_co(void) /* Wait checkpoint incoming thread exit before free resource */ qemu_thread_join(&th); bql_lock(); - - /* We hold the global BQL, so it is safe here */ - colo_release_ram_cache(); } diff --git a/migration/migration.c b/migration/migration.c index 5515be1bf305b40ba0b590136df18a53451872c5..9e3f73f27766196ea8673bf9a58= c97d5b8b1672f 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) * BQL and retake unconditionally. */ assert(bql_locked()); + if (migrate_colo()) { + colo_release_ram_cache(); + } qemu_loadvm_state_cleanup(mis); =20 if (mis->to_src_file) { --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775382; cv=none; d=zohomail.com; s=zohoarc; b=SK/qdESTTHFUNxHVNjm1n9aSlpjNyHMaQ/GtzH3R/MqigpXapvvFvdABa9Rr191BQ1wnP4zPM06puboE6m0z/YCCWg5yPtIdsoCA5LfJsRJZcKpiaMDLuvH/C69TFr8Pd5if+EnIQJpAr/6z3OUKUW46PIruzbGBEpw9Ah4q/gA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775382; 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=M2jFhXPCX0sbCrhLuma1ApN2w7hxb6oUVP/cm1G3QCw=; b=Xid/Kzr4M1tCk/QOu/qWLIlopjfUadtOPpURsy/zqV3xXU1q8lsA48qtDaxdj/3PAhSNHLqCYebCwu2xvPFmkJBKnKwwOerHJXuekhFpqcduxyRx9bbfhj+ndc/9YsnYEPBmORn7C60x5pyKZG6FhCUnoWg1AHPASE3UF/d9e30= 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 1769775382870321.1279902394291; Fri, 30 Jan 2026 04:16:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOj-0003nS-Mm; Fri, 30 Jan 2026 07:14:49 -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 1vlnOi-0003bg-M8 for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:48 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOh-0001ua-2F for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:48 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MCol0-1vcxgr0Gem-000Jyq; Fri, 30 Jan 2026 13:14:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775277; x=1770380077; i=lukasstraub2@web.de; bh=M2jFhXPCX0sbCrhLuma1ApN2w7hxb6oUVP/cm1G3QCw=; 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=Vq9+ePF4jzGFDEr4p+LEreC4jSjZbicUU9uhT+/MSLLsDUIFNo1QPEKeDvu2n2OU Xpsy0J8j3Xj6pZ+xjanlEDtaQnoia/vVXF7oTYmLOo3iZ6A3Q/Oj9f6Jsf9eNvWan WVSN6isz564EL+aYcxOc8gf9oVZeKtx4Ibdi/+38zTXVUqNTGflvREokTiZuR3FC+ R8+029Nl8nC0k9WB/QqD9CdKiELTxP41YI7LFoDcRwrO6hk4pPR+5OIJfvm9XF7Iv ikGvzsfvAhIhlpXG44DmhpizGf1SbXI1NgvXeYUHaxiEM2jXpl4G9tq0cUsgvyP7u 11yW9dKeEQGPxembfw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:19 +0100 Subject: [PATCH v4 11/16] colo: Fix crash during device vmstate load MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-11-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=1145; i=lukasstraub2@web.de; h=from:subject:message-id; bh=hNCOCvljjAHxBTXF7n8RYho9qkZfmlDlYGy0wK00HjU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmd5hbPXKETL7gpyz9iGWuLOuGvd1gXZD4x 8oyjECtYPqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WFRFD/sEIB+juM86TniaBJmwIHlMpe+JDDGaPiX6KdqksqDrzcLggt+GQkrdFnH5lbsrInCnezY 7//Iq1lh4LB7M1r0JU2uQWsFPmrHdgQy10gHPIUbguoHDvsUDqKtFZL/tQZRC6UuUp27ZzeW159 VGs/3pGnaUSxL+Kp0AiJ8HKdVbK2NePCb2rnDyCpuyCu5wbEuuRyEMQ6ottgOlwITk9ZI8Q3GLN cW7GLcejgde0V9k4n8273Ne6GtrjZ7W480nSEyhsV/GHOZqCksWzLeN2qpdWiAOi1O9ZWdbU3NK EVK3msO3zF9DBWdDhzv8EKNzpKDVGKZ1g+bQOJ/kX3/B40dJg45lGolLvvAroVcBX/SK6qRu6vR Ycy6JFXjqN9a8TlYs08jO/gqN5RlWtsX2Xx26H9UaUq8D6LmtuB/0d8/hfRqQHmkHihoIuVfGUT hxd8L3E6LrTkTWPlGNSNXDbxFb/iT7ngwTqFs+HJypsQfblEGASlOHmF9ZuWDhTNf4KLJ5Y1HQW 1sSx1OB453T76CbKZgCKLKfnRfyyxjEmjsSNQ+D8NHXgM0ruUHEDIBJ0fJdK+ICtaEQDvrErrGq 21CG3FJlLOZGcuWERoNKjxiz0E7NkBteZm31CTWY60daw+/t6abYaBEkUQyzbVHYX0xP6r2doGA b7rcauFr7Oo5jcw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:gydLbEC98ei7UkPvPh13g3NQRlHdcj5H0rdHTAP70bBqrgCcFry Zu0Jv8cEd+EWGAeCR9fLCrBolAU+lFDHZWFKuw0Wq/P03cWMfBJE1NBZM6DqIjKjX7nIggO 0yavdqaj6r4o63ebmPx8BlL9uGgXbAOf1//GdC7ykkqSI1fpvmnoN39iUJG3PssBSia1Yb1 WhNhiWbnVLwDjiBGdaO8g== UI-OutboundReport: notjunk:1;M01:P0:vq5wLGAL/EE=;+kIFPg/5gmgq9rOcQz+qGHr12K6 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775383492158500 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. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index d3534d1a32ad82f02101ac092ebf818a0caee6f2..afab8eeb14d09c1db9b235121c5= 845b11a80deba 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -727,6 +727,12 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, =20 bql_lock(); vmstate_loading =3D true; + /* + * With colo we load device vmstate during each checkpoint, on top of + * a vm that was already running. Some devices expect a reset before + * loading vmstate on such a previously running vm. + */ + qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775346; cv=none; d=zohomail.com; s=zohoarc; b=SqPdFNsEEEyHqyDMPwkH0uEtGBriaK+5DiPO9uODQjyGClPdP5YFu4N+VQUgWDZgfKdtOrc8mPs0EMdaR3pEA+08YKKlaKe7Tno+7P8AC0pQl4gKvr8lNXtWg2ILIqeEquES5yV2LBwHVSlOrk9B7yuD4BxloARShFkV+sT9fU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775346; 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=llBJhoFnON047XOSgFOUfZ92XzUGvGmbEAW3sALo0jA=; b=PbnZNfBMwjOgdcRVf68o408aQYGyniHFE9pAiCJifs3m7/9AkOoBoJ1vNyh1M3f2SxMwvWYLL8c+uLfm8pjT4whVW5mSzruw+PkkZ9WUeat2wYRFLOcOcwqtjs4c3akazs7hm8UBl1cw8tUZ6+zHEptZq81QbeMuYUeHlDtW9Gw= 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 1769775346364125.55429451181726; Fri, 30 Jan 2026 04:15:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOd-0002QQ-3K; Fri, 30 Jan 2026 07:14:43 -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 1vlnOb-0001x3-42 for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:41 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOY-0001rI-Pl for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:40 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M1JEu-1vk9lX1bti-00BpVi; Fri, 30 Jan 2026 13:14:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775277; x=1770380077; i=lukasstraub2@web.de; bh=llBJhoFnON047XOSgFOUfZ92XzUGvGmbEAW3sALo0jA=; 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=HGojQGM8VugV0GbVaXeW2q5RMu+opavjPB/vvzDxkR/zaB89nYoUWe5KLm0PsD+H IH3N+F3UMhU7r7XTaKJUHeXu16Todrsn45LV1pfCXMAf2ul+jilkNDWHNJQiklpQ1 bxnn3JHtHtCuWjmBj3ABj5ffLf/JRasPhuIAnB4j2nr/hA3H5/a7KW0qf4HhV9NzJ CflGrZwzWxJEZv8wKCAFnu9FxJWz4UD0C50UghoW0JSVTeAkUyxxB9g1aTu+xkQZU /rYQ9MIkLHfQ0XF7cwmZB6vBTQVysuhoZzE4nVjzgL81kpvjgUyGqwS9LBYIrVjvB nmlyB4KR4njhOGqmPg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:20 +0100 Subject: [PATCH v4 12/16] migration-test: Add COLO migration unit test MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-12-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10800; i=lukasstraub2@web.de; h=from:subject:message-id; bh=dhovH8yt9zf17sqfHc93I3y6GjsRHwe8T5Wpa4AvGyg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmaprjeCIR4YoK4tr/Zn5aoGmKzi5wgTEIR i8+exuPuRKJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WBcQD/9Xc09/dCTlinqo1FJ35MdsOr4D9tzWuTah6eozhJufoskxXF9rp1k6khrJaaalOeK6Dxr 2zNaVuZgHFNlv+Lx2y49ULWY826XWZcPziK7Vx0qbPZJSztvGB8oNmyGPT45L7XdHlSprb4byjY XGzRMPG6SGhZoQ1MTUktnqMwtNLoZ+Aigjm0WQirgdRXCaob+DM85a1E94LXSkG4Zkq5gBjXeAB XSzjFxlv+IhPE3v+s6RYUZevN27JLNUu7ukpYACxcfADXtDF2XqGcMt/Jvjp0uSkyRtYtZtz+ov VfoTj8rQa2J72BzOLokXPzTjQm7Wr+Yu+AncRKoJfVsxAz1ZUGvDyRGcwNkxrgX16gS//lcrIoa tXxZfejRGkYtMGTGX0TUKhsFzARNKMKfT8FWejIQqv6npsA0BaCViWD+ETAPtmXzD9x8FYmU5xt dNQ1t6NU8HUM5kotem50u5RWFNzRVRWFOqbgDs8Wib3xuxUK8LPam9v/lSF2WXwAbjaaK++WkNo oMs7WusLHF2HIMujZxV3LHgIjU3LaXKAQmQb5/ZenGrYD6Vm8BrO1tiUr9Oxm3/q+hVmpUqNpM3 HqKY4gQwawPHk/HWe6ZayqoQz76HGFM7AjPwdxNZgmWff/yrWGNgYV2eMq4B+B+Yvv2jhS11TjU unNZ45HSuiat1lg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:Q7GnWzDkkF/RuwsSC3SIwttoSuqFqr4gvKNlZEqH/GTZ54bg20x ERTqxy44GWcdpfepbqAZ0JMmgUNsfnx4pGZIip5SL6KKxVahK5nGgqTF29D9YfTvUwp3gLZ 0pCVsQflelisEOm5KmIthXdQkiEWqnQBccaLtM7Td37PWhJZT8GaqXyOLtdb71QcCIiPSK8 esWAUfPIdQR/niJeYnZ3A== UI-OutboundReport: notjunk:1;M01:P0:vhdp3+Es0r0=;DKZdLeiT53tJJBJbCVSWW4iRfGn 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 aSWZ1UTaB5uO1mFc+giV Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775347463158500 Add a COLO migration test for COLO migration and failover. Reviewed-by: Fabiano Rosas Tested-by: Fabiano Rosas Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + tests/qtest/meson.build | 7 +- tests/qtest/migration-test.c | 1 + tests/qtest/migration/colo-tests.c | 206 +++++++++++++++++++++++++++++++++= ++++ tests/qtest/migration/framework.h | 5 + 5 files changed, 219 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 900d6b9436670515162eba4aec6ee0f023c9a2fc..ceb3ecb1d955a267018c70429de= 61e45abb7a7ba 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3853,6 +3853,7 @@ F: migration/colo* F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h +F: tests/qtest/migration/colo-tests.c F: docs/COLO-FT.txt =20 COLO Proxy diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index dfb83650c643d884daad53a66034ab7aa8c45509..624f7744ec9bd81c8823075b966= bc95f7750a667 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -371,6 +371,11 @@ if gnutls.found() endif endif =20 +migration_colo_files =3D [] +if get_option('replication').allowed() + migration_colo_files =3D [files('migration/colo-tests.c')] +endif + qtests =3D { 'aspeed_hace-test': files('aspeed-hace-utils.c', 'aspeed_hace-test.c'), 'aspeed_smc-test': files('aspeed-smc-utils.c', 'aspeed_smc-test.c'), @@ -382,7 +387,7 @@ qtests =3D { 'migration/migration-util.c') + dbus_vmstate1, 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], - 'migration-test': test_migration_files + migration_tls_files, + 'migration-test': test_migration_files + migration_tls_files + migration= _colo_files, 'pxe-test': files('boot-sector.c'), 'pnv-xive2-test': files('pnv-xive2-common.c', 'pnv-xive2-flush-sync.c', 'pnv-xive2-nvpg_bar.c'), diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 08936871741535c926eeac40a7d7c3f461c72fd0..e582f05c7dc2673dbd05a936df8= feb6c964b5bbc 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) migration_test_add_precopy(env); migration_test_add_cpr(env); migration_test_add_misc(env); + migration_test_add_colo(env); =20 ret =3D g_test_run(); =20 diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c new file mode 100644 index 0000000000000000000000000000000000000000..e64b7aadabf24ff87046988eb75= dd34a7d3e34d8 --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,206 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * QTest testcases for COLO migration + * + * Copyright (c) 2025 Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "libqtest.h" +#include "migration/framework.h" +#include "migration/migration-qmp.h" +#include "migration/migration-util.h" +#include "qemu/module.h" + +static int test_colo_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + QTestState *from, *to; + void *data_hook =3D NULL; + + /* + * For the COLO test, both VMs will run in parallel. Thus both VMs wan= t to + * open the image read/write at the same time. Using read-only=3Don is= not + * possible here, because ide-hd does not support read-only backing im= age. + * + * So use -snapshot, where each qemu instance creates its own writable + * snapshot internally while leaving the real image read-only. + */ + args->start.opts_source =3D "-snapshot"; + args->start.opts_target =3D "-snapshot"; + + /* + * COLO migration code logs many errors when the migration socket + * is shut down, these are expected so we hide them here. + */ + args->start.hide_stderr =3D true; + + /* + * Test with yank with out of band capability since that is how it is + * used in production. + */ + args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; + + if (migrate_start(&from, &to, args->listen_uri, &args->start)) { + return -1; + } + + migrate_set_parameter_int(from, "x-checkpoint-delay", 300); + + if (args->start_hook) { + data_hook =3D args->start_hook(from, to); + } + + migrate_ensure_converge(from); + wait_for_serial("src_serial"); + + migrate_qmp(from, to, args->connect_uri, NULL, "{}"); + + wait_for_migration_status(from, "colo", NULL); + wait_for_resume(to, get_dst()); + + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + + /* wait for 3 checkpoints */ + for (int i =3D 0; i < 3; i++) { + qtest_qmp_eventwait(to, "RESUME"); + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + } + + if (failover_during_checkpoint) { + qtest_qmp_eventwait(to, "STOP"); + } + if (primary_failover) { + qtest_qmp_assert_success(from, "{'exec-oob': 'yank', 'id': 'yank-c= md', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}= "); + qtest_qmp_assert_success(from, "{'execute': 'x-colo-lost-heartbeat= '}"); + wait_for_serial("src_serial"); + } else { + qtest_qmp_assert_success(to, "{'exec-oob': 'yank', 'id': 'yank-cmd= ', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}"); + qtest_qmp_assert_success(to, "{'execute': 'x-colo-lost-heartbeat'}= "); + wait_for_serial("dest_serial"); + } + + if (args->end_hook) { + args->end_hook(from, to, data_hook); + } + + migrate_end(from, to, !primary_failover); + + return 0; +} + +static void test_colo_plain_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "tcp:127.0.0.1:0"; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void *hook_start_multifd(QTestState *from, QTestState *to) +{ + return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none"); +} + +static void test_colo_multifd_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "defer"; + args->start_hook =3D hook_start_multifd; + args->start.caps[MIGRATION_CAPABILITY_MULTIFD] =3D true; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void test_colo_plain_primary_failover(char *name, MigrateCommon *ar= gs) +{ + test_colo_plain_common(args, false, true); +} + +static void test_colo_plain_secondary_failover(char *name, MigrateCommon *= args) +{ + test_colo_plain_common(args, false, false); +} + +static void test_colo_multifd_primary_failover(char *name, MigrateCommon *= args) +{ + test_colo_multifd_common(args, false, true); +} + +static void test_colo_multifd_secondary_failover(char *name, + MigrateCommon *args) +{ + test_colo_multifd_common(args, false, false); +} + +static void test_colo_plain_primary_failover_checkpoint(char *name, + MigrateCommon *arg= s) +{ + test_colo_plain_common(args, true, true); +} + +static void test_colo_plain_secondary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_plain_common(args, true, false); +} + +static void test_colo_multifd_primary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_multifd_common(args, true, true); +} + +static void test_colo_multifd_secondary_failover_checkpoint(char *name, + MigrateCommon = *args) +{ + test_colo_multifd_common(args, true, false); +} + +void migration_test_add_colo(MigrationTestEnv *env) +{ + /* + * COLO crashes with TCG accelerator. + */ + if (!env->has_kvm) { + g_test_skip("COLO requires KVM accelerator"); + return; + } + + if (!env->full_set) { + return; + } + + migration_test_add("/migration/colo/plain/primary_failover", + test_colo_plain_primary_failover); + migration_test_add("/migration/colo/plain/secondary_failover", + test_colo_plain_secondary_failover); + + migration_test_add("/migration/colo/multifd/primary_failover", + test_colo_multifd_primary_failover); + migration_test_add("/migration/colo/multifd/secondary_failover", + test_colo_multifd_secondary_failover); + + migration_test_add("/migration/colo/plain/primary_failover_checkpoint", + test_colo_plain_primary_failover_checkpoint); + migration_test_add("/migration/colo/plain/secondary_failover_checkpoin= t", + test_colo_plain_secondary_failover_checkpoint); + + migration_test_add("/migration/colo/multifd/primary_failover_checkpoin= t", + test_colo_multifd_primary_failover_checkpoint); + migration_test_add("/migration/colo/multifd/secondary_failover_checkpo= int", + test_colo_multifd_secondary_failover_checkpoint); +} diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index 40984d04930da2d181326d9f6a742bde49018103..80eef758932ce9c301ed6c0f638= 3d18756144870 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -264,5 +264,10 @@ void migration_test_add_file(MigrationTestEnv *env); void migration_test_add_precopy(MigrationTestEnv *env); void migration_test_add_cpr(MigrationTestEnv *env); void migration_test_add_misc(MigrationTestEnv *env); +#ifdef CONFIG_REPLICATION +void migration_test_add_colo(MigrationTestEnv *env); +#else +static inline void migration_test_add_colo(MigrationTestEnv *env) {}; +#endif =20 #endif /* TEST_FRAMEWORK_H */ --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775376; cv=none; d=zohomail.com; s=zohoarc; b=iZ5C7DSSPPCt/+ARGuBmg10JIp9T9CByqJqhWMgFmYZ51p8q5SFwbJqI7qXWRKfAmR4GEXwitLuXi2WO+haGsnbcUHtl4+fca7FDGYxgWvxge3HGebJ3euEe+/x8pLs8/jMCATwEbza6GsrxG2cpGkf6yaNk5hN3tssxzk91E3E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775376; 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=bwosHlIhfQgh6p3obGQSlmmbuE8ngqKrDj1GuSFoZgQ=; b=W0Xmuo+WPhedBIPFePy496SjPIhpwwiioNej3hzCdIivOlnRCL2+sSx+bPAjkivNFfdBlbjuo6fWenXaAyLPWssqrn/+DNerz0oxR4VmwRIgqa7vhXSD2pHpFlje2uRFWA4AuO1Dyg2OPRqRV5/YAG4h35TeInTBalT/grrH7ww= 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 1769775376353747.5656018187725; Fri, 30 Jan 2026 04:16:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOg-00034o-2B; Fri, 30 Jan 2026 07:14:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOd-0002bM-Ob for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:43 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOZ-0001rM-3J for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:43 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MSZHv-1vJW5s31Qn-00JuGP; Fri, 30 Jan 2026 13:14:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775277; x=1770380077; i=lukasstraub2@web.de; bh=bwosHlIhfQgh6p3obGQSlmmbuE8ngqKrDj1GuSFoZgQ=; 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=ivkB/UEeVdn3jFFUuiiaLFf9ESTZgma0qjiGtnJPyc3YzG1Ym+z9eCEEO82QCfRe B+fEcq1R0qZDOXD8Ghq3DnVt+evkU9LWnULbg1a+RUW7CNHWeIUwjNTej4np2OxfX VNB56FPLKhfaoSUcwNvNPxSwZ//oTU25NYZk59enzaCgEIzk9HO/9AYHO8MWhWvua H3lMQp91lScxRLcO3L+3HuhYCSvRsjDn3fzMIaK9x3EdCifZ6luwNT/ocX+W7klFe yaTou2z132lUa2Qb4w1AFZdYgIMAeq92o6iHIIxNT3uxVQtZXQXxv/35rm7ss0xUU xCmx31DkMo2Y3/JIyQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:21 +0100 Subject: [PATCH v4 13/16] Convert colo main documentation to restructuredText MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-13-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=41438; i=lukasstraub2@web.de; h=from:subject:message-id; bh=xBl2UDpvDQlESgipBVk3Q/tS+v0fGSM/sK5EAVGAUWQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmbjbbr+ajuWf/yZ2RQNC0HsZe6nRYQkb0f 01z+AE8GuOJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WP3NEAC53GjC2ex78TsXx0i+9HEvdDyQXjMfQehg59iOzYhWTJSk6mPw+0mgNAXfYZ9TT1PqDRU E3W41kztNMYvP4yOmCZN/ue6O5/wad5yjCNlxa1XHpvTvRoSoRcXEAv4ONJU7+0z2ebUewlkYoe kORgTSYThPYFfySJ9H09bVIip/sJjoOgGE1btl5trtNFAlSCFTsff5stBKuwT6nT63Hk+Gmp32/ pV+Pu9FCiavuDonXXI3Bsy6Ha5EGezVvIgEIYl8ZQb53dGxYp9y3LzNOotXJzZEpysb3+QSorNr 66Qo4boOEOhc70sIU2nfXPaVpqCcDOOiYuw9s511wMSU7oYhjBub+sz9E8C97w+Vmjf1tkayU2r J4+ILSXNdLuXbdg4l4W1X8CjmZbGzGsRW2/xSoW4up9GcnEyHwrw7uv0rHQjzGoVW8M1X7FlQyz PoxkDdXSuQrhqcswrNZPrhXj24M6CCNnDIcAiDcW6AUnRkMb8wuV36QhdOkfak3E0VVoZFEkY0Q Wl9uwlsEYKDCEpzC3FwstcLdC333mAzxYv1AeTwBjaWJpQzhrxAcQB6U5DlUTbal3leTyzyqgM2 zTohxPZhINI3zlLsI+g2GPfN6d8epDRdJJp+GvEBfPMHUssxBVtitn+osz9DWGuo3BofpYJI6E4 ETghEcraPbKCOzw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:yNhnfhb/9BANn5z8s7KQfjymCuso26jcG1tHyhUVjv9a7WTQSOT qIfCZk1WR2y7qE07u1F/AntXyRvfohOraugKetJM2ClXfxtJ7613ZCJ3IVZ1GA26qdsi0HG p+ddNEtlLbdgWMCAxC9PVLXmoGHOiLxcWawkuiZs0KX4pvNv05vb08McYEJiw1fsL5qdISu NeECX0eY3gODgbW93mOdQ== UI-OutboundReport: notjunk:1;M01:P0:tF92ppM+25o=;T8sOvPMFafMJcnlDNDdcX1Se3bz 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 G7DwBdVWKl+UI6QcD71sRmJ7r6A8W Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775379231154101 Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- 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 ceb3ecb1d955a267018c70429de61e45abb7a7ba..b04a5fef47d26ef14842e8a2e2a= 674651e9215e3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3854,7 +3854,7 @@ F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: tests/qtest/migration/colo-tests.c -F: docs/COLO-FT.txt +F: docs/system/qemu-colo.rst =20 COLO Proxy M: Zhang Chen diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt deleted file mode 100644 index 2283a09c080b8996f9767eeb415e8d4fbdc940af..000000000000000000000000000= 0000000000000 --- a/docs/COLO-FT.txt +++ /dev/null @@ -1,334 +0,0 @@ -COarse-grained LOck-stepping Virtual Machines for Non-stop Service ----------------------------------------- -Copyright (c) 2016 Intel Corporation -Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - -This document gives an overview of COLO's design and how to use it. - -=3D=3D Background =3D=3D -Virtual machine (VM) replication is a well known technique for providing -application-agnostic software-implemented hardware fault tolerance, -also known as "non-stop service". - -COLO (COarse-grained LOck-stepping) is a high availability solution. -Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the -same request from client, and generate response in parallel too. -If the response packets from PVM and SVM are identical, they are released -immediately. Otherwise, a VM checkpoint (on demand) is conducted. - -=3D=3D Architecture =3D=3D - -The architecture of COLO is shown in the diagram below. -It consists of a pair of networked physical nodes: -The primary node running the PVM, and the secondary node running the SVM -to maintain a valid replica of the PVM. -PVM and SVM execute in parallel and generate output of response packets for -client requests according to the application semantics. - -The incoming packets from the client or external network are received by t= he -primary node, and then forwarded to the secondary node, so that both the P= VM -and the SVM are stimulated with the same requests. - -COLO receives the outbound packets from both the PVM and SVM and compares = them -before allowing the output to be sent to clients. - -The SVM is qualified as a valid replica of the PVM, as long as it generates -identical responses to all client requests. Once the differences in the ou= tputs -are detected between the PVM and SVM, COLO withholds transmission of the -outbound packets until it has successfully synchronized the PVM state to t= he SVM. - - Primary Node = Secondary Node -+------------+ +-----------------------+ +------------------------+= +------------+ -| | | HeartBeat +<----->+ HeartBeat |= | | -| Primary VM | +-----------+-----------+ +-----------+------------+= |Secondary VM| -| | | | = | | -| | +-----------|-----------+ +-----------|------------+= | | -| | |QEMU +---v----+ | |QEMU +----v---+ |= | | -| | | |Failover| | | |Failover| |= | | -| | | +--------+ | | +--------+ |= | | -| | | +---------------+ | | +---------------+ |= | | -| | | | VM Checkpoint +-------------->+ VM Checkpoint | |= | | -| | | +---------------+ | | +---------------+ |= | | -|Requests<--------------------------\ /-----------------\ /---------------= ------>Requests| -| | | ^ ^ | | | | |= | | -|Responses+---------------------\ /-|-|------------\ /--------------------= -----+Responses| -| | | | | | | | | | | | | |= | | -| | | +-----------+ | | | | | | | | | | +----------+ |= | | -| | | | COLO disk | | | | | | | | | | | | COLO disk| |= | | -| | | | Manager +---------------------------->| Manager | |= | | -| | | ++----------+ v v | | | | | v v | +---------++ |= | | -| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | |= | | -| | | || COLO Proxy || | | COLO Proxy | | |= | | -| | | || (compare packet || | |(adjust sequence | | |= | | -| | | ||and mirror packet)|| | | and ACK) | | |= | | -| | | |+------------+---+-+| | +-----------------+ | |= | | -+------------+ +-----------------------+ +------------------------+= +------------+ -+------------+ | | | | = +------------+ -| VM Monitor | | | | | = | VM Monitor | -+------------+ | | | | = +------------+ -+---------------------------------------+ +-------------------------= ---------------+ -| Kernel | | | | | Kernel | = | -+---------------------------------------+ +-------------------------= ---------------+ - | | | | - +--------------v+ +---------v---+--+ +------------------+ +v---= ----------+ - | Storage | |External Network| | External Network | | S= torage | - +---------------+ +----------------+ +------------------+ +----= ----------+ - - -=3D=3D Components introduction =3D=3D - -You can see there are several components in COLO's diagram of architecture. -Their functions are described below. - -HeartBeat: -Runs on both the primary and secondary nodes, to periodically check platfo= rm -availability. When the primary node suffers a hardware fail-stop failure, -the heartbeat stops responding, the secondary node will trigger a failover -as soon as it determines the absence. - -COLO disk Manager: -When primary VM writes data into image, the colo disk manager captures thi= s data -and sends it to secondary VM's which makes sure the context of secondary V= M's -image is consistent with the context of primary VM 's image. -For more details, please refer to docs/block-replication.txt. - -Checkpoint/Failover Controller: -Modifications of save/restore flow to realize continuous migration, -to make sure the state of VM in Secondary side is always consistent with V= M in -Primary side. - -COLO Proxy: -Delivers packets to Primary and Secondary, and then compare the responses = from -both side. Then decide whether to start a checkpoint according to some rul= es. -Please refer to docs/colo-proxy.txt for more information. - -Note: -HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess -by using 'x-colo-lost-heartbeat' command. - -=3D=3D COLO operation status =3D=3D - -+-----------------+ -| | -| Start COLO | -| | -+--------+--------+ - | - | Main qmp command: - | migrate-set-capabilities with x-colo - | migrate - | - v -+--------+--------+ -| | -| COLO running | -| | -+--------+--------+ - | - | Main qmp command: - | x-colo-lost-heartbeat - | or - | some error happened - v -+--------+--------+ -| | send qmp event: -| COLO failover | COLO_EXIT -| | -+-----------------+ - -COLO use the qmp command to switch and report operation status. -The diagram just shows the main qmp command, you can get the detail -in test procedure. - -=3D=3D Test procedure =3D=3D -Note: Here we are running both instances on the same host for testing, -change the IP Addresses if you want to run it on two hosts. Initially -127.0.0.1 is the Primary Host and 127.0.0.2 is the Secondary Host. - -=3D=3D Startup qemu =3D=3D -1. Primary: -Note: Initially, $imagefolder/primary.qcow2 needs to be copied to all host= s. -You don't need to change any IP's here, because 0.0.0.0 listens on any -interface. The chardev's with 127.0.0.1 IP's loopback to the local qemu -instance. - -# imagefolder=3D"/mnt/vms/colo-test-primary" - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name primary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don,wai= t=3Doff \ - -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Don,wa= it=3Don \ - -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server=3Don,= wait=3Doff \ - -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ - -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,server=3D= on,wait=3Doff \ - -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ - -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirror0 \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,indev=3D= compare_out \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outdev= =3Dcompare0 \ - -object iothread,id=3Diothread1 \ - -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_in=3D= compare1,\ -outdev=3Dcompare_out0,iothread=3Diothread1 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.driver=3D= qcow2 -S - -2. Secondary: -Note: Active and hidden images need to be created only once and the -size should be the same as primary.qcow2. Again, you don't need to change -any IP's here, except for the $primary_ip variable. - -# imagefolder=3D"/mnt/vms/colo-test-secondary" -# primary_ip=3D127.0.0.1 - -# qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G - -# qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name secondary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-ms= =3D1000 \ - -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-ms= =3D1000 \ - -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dred0 \ - -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3Dred1= \ - -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ - -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.qcow= 2,driver=3Dqcow2 \ - -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary,fil= e.driver=3Dqcow2,\ -top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active.qco= w2,\ -file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/seco= ndary-hidden.qcow2,\ -file.backing.backing=3Dparent0 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0=3Dchilds0 \ - -incoming tcp:0.0.0.0:9998 - - -3. On Secondary VM's QEMU monitor, issue command -{"execute":"qmp_capabilities"} -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "da= ta": {"host": "0.0.0.0", "port": "9999"} } } } -{"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable= ": true } } - -Note: - a. The qmp command nbd-server-start and nbd-server-add must be run - before running the qmp command migrate on primary QEMU - b. Active disk, hidden disk and nbd target's length should be the - same. - c. It is better to put active disk and hidden disk in ramdisk. They - will be merged into the parent disk on failover. - -4. On Primary VM's QEMU monitor, issue command: -{"execute":"qmp_capabilities"} -{"execute": "human-monitor-command", "arguments": {"command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", "nod= e": "replication0" } } -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } - - Note: - a. There should be only one NBD Client for each primary disk. - b. The qmp command line must be run after running qmp command line in - secondary qemu. - -5. After the above steps, you will see, whenever you make changes to PVM, = SVM will be synced. -You can issue command '{ "execute": "migrate-set-parameters" , "arguments"= :{ "x-checkpoint-delay": 2000 } }' -to change the idle checkpoint period time - -6. Failover test -You can kill one of the VMs and Failover on the surviving VM: - -If you killed the Secondary, then follow "Primary Failover". After that, -if you want to resume the replication, follow "Primary resume replication" - -If you killed the Primary, then follow "Secondary Failover". After that, -if you want to resume the replication, follow "Secondary resume replicatio= n" - -=3D=3D Primary Failover =3D=3D -The Secondary died, resume on the Primary - -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "ch= ild": "children.1"} } -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= del replication0" } } -{"execute": "object-del", "arguments":{ "id": "comp0" } } -{"execute": "object-del", "arguments":{ "id": "iothread1" } } -{"execute": "object-del", "arguments":{ "id": "m0" } } -{"execute": "object-del", "arguments":{ "id": "redire0" } } -{"execute": "object-del", "arguments":{ "id": "redire1" } } -{"execute": "x-colo-lost-heartbeat" } - -=3D=3D Secondary Failover =3D=3D -The Primary died, resume on the Secondary and prepare to become the new Pr= imary - -{"execute": "nbd-server-stop"} -{"execute": "x-colo-lost-heartbeat"} - -{"execute": "object-del", "arguments":{ "id": "f2" } } -{"execute": "object-del", "arguments":{ "id": "f1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red0" } } - -{"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {"typ= e": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.0= ", "port": "9003" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.= 0", "port": "9004" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.0.= 0.1", "port": "9001" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend": {"= type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.= 0.0.1", "port": "9001" } }, "server": false } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127= .0.0.1", "port": "9005" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9005" } }, "server": false } } } } - -=3D=3D Primary resume replication =3D=3D -Resume replication after new Secondary is up. - -Start the new Secondary (Steps 2 and 3 above), then on the Primary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync"} } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } - -Note: -If this Primary previously was a Secondary, then we need to insert the -filters before the filter-rewriter by using the -""insert": "before", "position": "id=3Drew0"" Options. See below. - -=3D=3D Secondary resume replication =3D=3D -Become Primary and resume replication after new Secondary is up. Note -that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. - -Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), -then on the old Secondary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync" } } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "queue= ": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } - -=3D=3D TODO =3D=3D -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. diff --git a/docs/system/index.rst b/docs/system/index.rst index 427b020483104f6589878bbf255a367ae114c61b..6268c41aea9c74dc3e59d896b5a= e082360bfbb1a 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -41,3 +41,4 @@ or Hypervisor.Framework. igvm vm-templating sriov + qemu-colo diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst new file mode 100644 index 0000000000000000000000000000000000000000..4b5fbbf398f8a5c4ea6baad615b= de94b2b4678d2 --- /dev/null +++ b/docs/system/qemu-colo.rst @@ -0,0 +1,360 @@ +Qemu COLO Fault Tolerance +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. + +This document gives an overview of COLO's design and how to use it. + +Background +---------- +Virtual machine (VM) replication is a well known technique for providing +application-agnostic software-implemented hardware fault tolerance, +also known as "non-stop service". + +COLO (COarse-grained LOck-stepping) is a high availability solution. +Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the +same request from client, and generate response in parallel too. +If the response packets from PVM and SVM are identical, they are released +immediately. Otherwise, a VM checkpoint (on demand) is conducted. + +Architecture +------------ +The architecture of COLO is shown in the diagram below. +It consists of a pair of networked physical nodes: +The primary node running the PVM, and the secondary node running the SVM +to maintain a valid replica of the PVM. +PVM and SVM execute in parallel and generate output of response packets for +client requests according to the application semantics. + +The incoming packets from the client or external network are received by t= he +primary node, and then forwarded to the secondary node, so that both the P= VM +and the SVM are stimulated with the same requests. + +COLO receives the outbound packets from both the PVM and SVM and compares = them +before allowing the output to be sent to clients. + +The SVM is qualified as a valid replica of the PVM, as long as it generates +identical responses to all client requests. Once the differences in the ou= tputs +are detected between the PVM and SVM, COLO withholds transmission of the +outbound packets until it has successfully synchronized the PVM state to t= he SVM. + +Overview:: + + Primary Node = Secondary Node + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + | | | HeartBeat +<----->+ HeartBeat = | | | + | Primary VM | +-----------+-----------+ +-----------+---------= ---+ |Secondary VM| + | | | | = | | + | | +-----------|-----------+ +-----------|---------= ---+ | | + | | |QEMU +---v----+ | |QEMU +----v---+ = | | | + | | | |Failover| | | |Failover| = | | | + | | | +--------+ | | +--------+ = | | | + | | | +---------------+ | | +---------------+ = | | | + | | | | VM Checkpoint +-------------->+ VM Checkpoint | = | | | + | | | +---------------+ | | +---------------+ = | | | + |Requests<--------------------------\ /-----------------\ /-----------= ---------->Requests| + | | | ^ ^ | | | | = | | | + |Responses+---------------------\ /-|-|------------\ /----------------= ---------+Responses| + | | | | | | | | | | | | | = | | | + | | | +-----------+ | | | | | | | | | | +---------= -+ | | | + | | | | COLO disk | | | | | | | | | | | | COLO dis= k| | | | + | | | | Manager +---------------------------->| Manager = | | | | + | | | ++----------+ v v | | | | | v v | +---------= ++ | | | + | | | |+-----------+-+-+-++| | ++-+--+-+---------+ = | | | | + | | | || COLO Proxy || | | COLO Proxy | = | | | | + | | | || (compare packet || | |(adjust sequence | = | | | | + | | | ||and mirror packet)|| | | and ACK) | = | | | | + | | | |+------------+---+-+| | +-----------------+ = | | | | + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + +------------+ | | | = | +------------+ + | VM Monitor | | | | = | | VM Monitor | + +------------+ | | | = | +------------+ + +---------------------------------------+ +---------------------= -------------------+ + | Kernel | | | | | Kernel = | | + +---------------------------------------+ +---------------------= -------------------+ + | | | | + +--------------v+ +---------v---+--+ +------------------+ += v-------------+ + | Storage | |External Network| | External Network | |= Storage | + +---------------+ +----------------+ +------------------+ += --------------+ + +Components introduction +^^^^^^^^^^^^^^^^^^^^^^^ +You can see there are several components in COLO's diagram of architecture. +Their functions are described below. + +HeartBeat +~~~~~~~~~ +Runs on both the primary and secondary nodes, to periodically check platfo= rm +availability. When the primary node suffers a hardware fail-stop failure, +the heartbeat stops responding, the secondary node will trigger a failover +as soon as it determines the absence. + +COLO disk Manager +~~~~~~~~~~~~~~~~~ +When primary VM writes data into image, the colo disk manager captures thi= s data +and sends it to secondary VM's which makes sure the context of secondary V= M's +image is consistent with the context of primary VM 's image. +For more details, please refer to docs/block-replication.txt. + +Checkpoint/Failover Controller +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Modifications of save/restore flow to realize continuous migration, +to make sure the state of VM in Secondary side is always consistent with V= M in +Primary side. + +COLO Proxy +~~~~~~~~~~ +Delivers packets to Primary and Secondary, and then compare the responses = from +both side. Then decide whether to start a checkpoint according to some rul= es. +Please refer to docs/colo-proxy.txt for more information. + +Note: +HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess +by using 'x-colo-lost-heartbeat' command. + +COLO operation status +^^^^^^^^^^^^^^^^^^^^^ + +Overview:: + + +-----------------+ + | | + | Start COLO | + | | + +--------+--------+ + | + | Main qmp command: + | migrate-set-capabilities with x-colo + | migrate + | + v + +--------+--------+ + | | + | COLO running | + | | + +--------+--------+ + | + | Main qmp command: + | x-colo-lost-heartbeat + | or + | some error happened + v + +--------+--------+ + | | send qmp event: + | COLO failover | COLO_EXIT + | | + +-----------------+ + + +COLO use the qmp command to switch and report operation status. +The diagram just shows the main qmp command, you can get the detail +in test procedure. + +Test procedure +-------------- +Note: Here we are running both instances on the same host for testing, +change the IP Addresses if you want to run it on two hosts. Initially +``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. + +Startup qemu +^^^^^^^^^^^^ +**1. Primary**: +Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +You don't need to change any IP's here, because ``0.0.0.0`` listens on any +interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu +instance:: + + # imagefolder=3D"/mnt/vms/colo-test-primary" + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name primary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don= ,wait=3Doff \ + -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Do= n,wait=3Don \ + -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server= =3Don,wait=3Doff \ + -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ + -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,serve= r=3Don,wait=3Doff \ + -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ + -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirr= or0 \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,inde= v=3Dcompare_out \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outd= ev=3Dcompare0 \ + -object iothread,id=3Diothread1 \ + -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_i= n=3Dcompare1,\ + outdev=3Dcompare_out0,iothread=3Diothread1 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.drive= r=3Dqcow2 -S + + +**2. Secondary**: +Note: Active and hidden images need to be created only once and the +size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge +any IP's here, except for the ``$primary_ip`` variable:: + + # imagefolder=3D"/mnt/vms/colo-test-secondary" + # primary_ip=3D127.0.0.1 + + # qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G + + # qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name secondary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-= ms=3D1000 \ + -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-= ms=3D1000 \ + -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dr= ed0 \ + -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3D= red1 \ + -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ + -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.= qcow2,driver=3Dqcow2 \ + -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary= ,file.driver=3Dqcow2,\ + top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active= .qcow2,\ + file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/= secondary-hidden.qcow2,\ + file.backing.backing=3Dparent0 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0=3Dchilds0 \ + -incoming tcp:0.0.0.0:9998 + + +**3.** On Secondary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet",= "data": {"host": "0.0.0.0", "port": "9999"} } } } + {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writ= able": true } } + +Note: + a. The qmp command ``nbd-server-start`` and ``nbd-server-add`` must be r= un + before running the qmp command migrate on primary QEMU + b. Active disk, hidden disk and nbd target's length should be the + same. + c. It is better to put active disk and hidden disk in ramdisk. They + will be merged into the parent disk on failover. + +**4.** On Primary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } + +Note: + a. There should be only one NBD Client for each primary disk. + b. The qmp command line must be run after running qmp command line in + secondary qemu. + +**5.** After the above steps, you will see, whenever you make changes to P= VM, SVM will be synced. +You can issue command ``{ "execute": "migrate-set-parameters" , "arguments= ":{ "x-checkpoint-delay": 2000 } }`` +to change the idle checkpoint period time + +Failover test +^^^^^^^^^^^^^ +You can kill one of the VMs and Failover on the surviving VM: + +If you killed the Secondary, then follow "Primary Failover". +After that, if you want to resume the replication, follow "Primary resume = replication" + +If you killed the Primary, then follow "Secondary Failover". +After that, if you want to resume the replication, follow "Secondary resum= e replication" + +Primary Failover +~~~~~~~~~~~~~~~~ +The Secondary died, resume on the Primary:: + + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "object-del", "arguments":{ "id": "comp0" } } + {"execute": "object-del", "arguments":{ "id": "iothread1" } } + {"execute": "object-del", "arguments":{ "id": "m0" } } + {"execute": "object-del", "arguments":{ "id": "redire0" } } + {"execute": "object-del", "arguments":{ "id": "redire1" } } + {"execute": "x-colo-lost-heartbeat" } + +Secondary Failover +~~~~~~~~~~~~~~~~~~ +The Primary died, resume on the Secondary and prepare to become the new Pr= imary:: + + {"execute": "nbd-server-stop"} + {"execute": "x-colo-lost-heartbeat"} + + {"execute": "object-del", "arguments":{ "id": "f2" } } + {"execute": "object-del", "arguments":{ "id": "f1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red0" } } + + {"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0= .0.0", "port": "9003" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.= 0.0.0", "port": "9004" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9001" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend"= : {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "= 127.0.0.1", "port": "9001" } }, "server": false } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend= ": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": = "127.0.0.1", "port": "9005" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backen= d": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host":= "127.0.0.1", "port": "9005" } }, "server": false } } } } + +Primary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Resume replication after new Secondary is up. + +Start the new Secondary (Steps 2 and 3 above), then on the Primary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } + +Note: +If this Primary previously was a Secondary, then we need to insert the +filters before the filter-rewriter by using the +""insert": "before", "position": "id=3Drew0"" Options. See below. + +Secondary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Become Primary and resume replication after new Secondary is up. Note +that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. + +Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), +then on the old Secondary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } + +TODO +---- +1. Support shared storage. +2. Develop the heartbeat part. +3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775364; cv=none; d=zohomail.com; s=zohoarc; b=V5XEBoex7IboHyFORrjUwzXuX0TwJbcyFaKfgOSMf2SO1duC17ZUy5fUJKh+1c31l0bq1s0I/O9lHMMOp9dkt1mpgjSdZnThtAMq04k11+/p7FCc8PcALcWKTRfoCdKoUufSS3Ypmjt9yvUo/lh/N9sjRIVzl7z0kOgmISqz814= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775364; 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=G158C2Fa8nrbB9ID8An2zgaBGN+nt7yzulw+cALwfxo=; b=AKhRCsSqNeAkNBE96JHJU2lGIzTMyGt2HY3NfXmhJzFnAF3x+Wp4jzFfRGd2A/RJQol2rZYfGUxZQ2Qr5mRzU9v1Dj5aCmQJRt0BEqQWtUboljeIqjYfWP45dwq3sqHNo62jCUgJNrC6LZsOvlQWb/l67LY36qHSuX5anLUxKEI= 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 1769775364378968.331832067782; Fri, 30 Jan 2026 04:16:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOj-0003gs-AG; Fri, 30 Jan 2026 07:14:49 -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 1vlnOh-0003R3-Lb for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:47 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOf-0001uN-So for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:47 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MY5bT-1vE2S30KLN-00PQ2v; Fri, 30 Jan 2026 13:14:38 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775278; x=1770380078; i=lukasstraub2@web.de; bh=G158C2Fa8nrbB9ID8An2zgaBGN+nt7yzulw+cALwfxo=; 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=wbeau2TBCanEnrcpZNw/F3/Cqx11P1nLxAsMDhn7wqbnj9xnhbpNqHd0jSmdvHaS AHbTq/eK5Nssln54m1dcj1mCqexJTGWR3nrVAH4+UJ8oS59vjHP1ghslZaa3LwuXJ nK+bFf9CERxY8kp/qGD2+TpP6MCq2dIg+0oxQZOFzcDXeRVCMC9H4yL1IqS0osVZd MCjlnc5fO7Dag9c9HCbLPTwn7WCk1y64o4eWDcu8YrRj2ruEqHvrRKWWhd2uAhIFx jDE7RHXLcrf4C15G2M6lqeZ8u16eWxzHi8yHeQtruFiTYKdw19KFmMeXO3NOuMem0 LfCd5/HoCv5hHzZQEg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:22 +0100 Subject: [PATCH v4 14/16] qemu-colo.rst: Miscellaneous changes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-14-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=3147; i=lukasstraub2@web.de; h=from:subject:message-id; bh=HjRkk3PLsLjQtpMcn7YOFBq4HgSWnQadmFyAlnP7/W8=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmr2LVtHy783HsODxBTIr+ZHY27Bf4KLUof 80YzM/Dp9SJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WJNbEACoPatXJrnbzdHm1hPWWNokfvQFIEgfw+Co6B2uRZFGIauMH8DquaDOoE0OpLKziv0Ggh7 ss226rpCy3WnX3OyrWUedDM4ocoWWrtuCtcWc0Q0K2b9nlaRV9JJ1Wm/sb46Ca17EE9stwyS2Sf goTY9JAk51N9TJxKVfHG1tO6FUMElm8nI72qNPYq1dnmB1SDknmSqLJJrEdBYJI1UIK9BbDmLPs eBiOM90W70+3fwnnOGyGgNMRdv2fQ88ILDe19PGk1P+TIaBGf5Ahbd6wDRekQOUL5Wad23uoUk2 cyt6M9c4wI7u6ePXFmOeutBjzfp8//8Xh5JOi6t+M0sMKYxphvivH2yO5Qq+Y42TST1LScmEE4r NktuQp7Zwwb0jqZS9Z8Ap4+bIvJpaWHVHps6ZlKXuuXh+kc3J/LU6PM/UBdbVYf6t+D8WfU9xjC SX2aidKpCPQ6kAcotDobKmK9R8bapFtwzpaS0OCwdShCN2jt0n00P4lKHB7iF4EOfdIMouHvW8u 0G0QBCWDpAsKxv8hB3H1PEDo6e9P8xOI/ldCAPiL+Xmoi74JUA7kUnmgkB9nbfOxOX83bPNPwxV +pb3N3yffLU6GHEdfSqU0sGLRdHg4Dhtc5nvWglxxVljXCGhzsKiBd0uaspWYctbAu+xdm/+v2m zLnaOgBlMeSkjyQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:nqmBOFtKVY51fy4QD0eUUK8mUB6A05sJb/WnIygp/qrIYuoKFuh cSrmtBn2DQkgopBiHJWWM0XdAk9ja5865L/Ab7HDP8fayrSnHEdY0BaeErM8+DfDvvPpkJ3 Ln78U7hYeuYmDxuTGtho6mlsPlZhP8VGGTsJDxzf0pqUdIOPIN+gAE8IpHRt6rpIqFqCuru 2b9xCFayHkWmpYYKUK7AQ== UI-OutboundReport: notjunk:1;M01:P0:XAMrx2zN5t4=;PvJu5Cql2xrQAizef/SAD/jWgAJ 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 iTIZszdnP82bfIrAdRjvCOq7+CDoi Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775365437158501 Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- docs/system/qemu-colo.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 4b5fbbf398f8a5c4ea6baad615bde94b2b4678d2..a70e61aa09391cda933031535fa= 982d27cf6654b 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -1,13 +1,6 @@ Qemu COLO Fault Tolerance =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =20 -| Copyright (c) 2016 Intel Corporation -| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -| Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - This document gives an overview of COLO's design and how to use it. =20 Background @@ -82,8 +75,8 @@ Overview:: | Storage | |External Network| | External Network | |= Storage | +---------------+ +----------------+ +------------------+ += --------------+ =20 -Components introduction -^^^^^^^^^^^^^^^^^^^^^^^ +Components +^^^^^^^^^^ You can see there are several components in COLO's diagram of architecture. Their functions are described below. =20 @@ -157,14 +150,21 @@ in test procedure. =20 Test procedure -------------- -Note: Here we are running both instances on the same host for testing, + +Setup +^^^^^ + +Here we are running both instances on the same host for testing, change the IP Addresses if you want to run it on two hosts. Initially ``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. =20 +COLO uses double the guest ram size on the secondary side. The Qemu version +should be the same on both hosts. + Startup qemu ^^^^^^^^^^^^ **1. Primary**: -Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all hosts. You don't need to change any IP's here, because ``0.0.0.0`` listens on any interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu instance:: @@ -192,7 +192,7 @@ instance:: =20 =20 **2. Secondary**: -Note: Active and hidden images need to be created only once and the +Active and hidden images need to be created only once and the size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge any IP's here, except for the ``$primary_ip`` variable:: =20 @@ -353,8 +353,9 @@ Wait until disk is synced, then:: {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } =20 -TODO ----- -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775317; cv=none; d=zohomail.com; s=zohoarc; b=a7+U7/up9Sfa3e5Ub1btQV0jNJGMAJpmd1JvO2sP4aUwBLdDXXRwsE0jUVG2SXAzj2vI0IvkqlkgKxQPrF/KIrky0eO2ARu6YM8ddVHbAUjxg0NpclKErJgP0JJHNU2ApyRbjhtVT74Ew9zFeyH9GDHlhdr9FbhVoxxBOhizApo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775317; 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=iKyLRZKXJSFEcCUd/CpIynVD2diyxFI2e/ukmWL9g3s=; b=JfrFaiTPEUMOyCLZZkXFTLpVnLvgw+FmnRk/pV/QYglGBdElZZXIbJunzWxC6li68XS20acTfLWEeqRmP2UfJw2A4GULcmmX2EQPovzYlKnAPjyQF9F5Q9AwmxXfVAjL+DmORw/BMe1kCVzhcDWyVaUl/QnQhVUjzMIXWk4SR8U= 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 1769775317053925.6883363877079; Fri, 30 Jan 2026 04:15:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOp-0004Zo-3M; Fri, 30 Jan 2026 07:14: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 1vlnOj-0003ss-VC for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:50 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOh-0001ut-Ic for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:49 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1McZjb-1wHqQF1gC5-00lR2r; Fri, 30 Jan 2026 13:14:38 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775278; x=1770380078; i=lukasstraub2@web.de; bh=iKyLRZKXJSFEcCUd/CpIynVD2diyxFI2e/ukmWL9g3s=; 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=sviqIQqzRLSiITYiTuo+MQNIw/1jZR0bF9EMz6AUsS8jeXJ2s4Fhzk518LZcJP1j kDWGQW6n7hxX1vhVHf0yR6zVTZQVOFaDFbaXGJTvc8+TgO8SFO4Fh8G1Ak99Y2lnt n04E7YjM89li+tjF0I7C6QhVQM7nQktzm1Y6t2JyJTgfCskM22x8aMZLLLCgLXm0K 6eCLe7IVCgbIwOaSPJbihGqkD7Q9wP/LYOzza8DKehnME24OXcoXny9+BoSRXw1qo CYkVlLc3kTMGqCKLoVtLL53RBc1ywg6+3q2G1RJ3lrHdjMqotpB2G2FvNdzU1Jrkj 7cmN5J946IpW4wS7Vg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:23 +0100 Subject: [PATCH v4 15/16] qemu-colo.rst: Add my copyright MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-15-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=908; i=lukasstraub2@web.de; h=from:subject:message-id; bh=OswessapI1H7sfJLERN6Md1iEosxHPhzYxn5Z/RITfM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmIbED/CPGLdSmuqS+q6ntTMrKcGC2KD0Ak iMja7dMCy+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WMUoD/9yvoXXaUs930dcd1pZ3ltPqFtGsts0jGuMN1hHPSBY+XazGJ/84xfFjrIFCtbyoeNEbzH heDU+R/QWTcwy6rlRp8rYI61I+/5Dygv6ulPLur5A8LH0z3V0+crttuTn/IZmxoClzHabPm6HoH x0kwRRHwF62rKFwReBtH9zwUJKw2lCxQvKZ2B9xhV85mtl9tIdB2IuHXqhd1lKBxHtnmuvQEY8D ggJG6vBx9lXabkfUWIweDPxWR16nWVhgag6ptmuRmtLmsSqDK2UnE80Upy2tpurYoGaOqhQ0MET q7QO6WOP1c4hCEnw6vglE52KyvThO34tBgTtiW1c4NRSkEKHUddQbAdDvNsAvNbtcKQITgDEjoz b6RPpXUj8Fcu8V/1i776gETy+Y5jvKu9xuA9WarqwsE8tySWs50ZkZZ/p6pqk06ZFOi+AKHc7Sr +OPzhl19DuYmdCDsMwjpLpzZtebBbrYtvvz+il8KBhuTZaZTOYkYitYa4Dv59lyv6vul7Mqe86y 5xCJ8+PlkTtZhq+54xMUyIeWaST7HY6mpebYlpJfQ9JAaLvz2zh6rWO0cEAc3MEwHHZNNwxX1w5 TY9ywXm6RSwLfw8nTK/hL6tuegljZH48pnqYOUQpzxd4cOR8kRQrEkRWxwEeuQyQTUypbQTo8sF oKa97SCwsAfTb0A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:nyQTRsth+KGPI+akmMCUitdIbyEYAAUSvVJGHooQdkNdXpzJivJ LmWhYkHOjwez0EN0lFabr6zqixqyLdFt/+wexdVrI2pGuEXLSIGZ5/5ozVYZ+j1Cl6BtpQm BtKybI9LxnaCBEY8+thAtIyP+5K2MJsoj2djxlZtQSH0KuSwjxMHbQHDHKHK87tIzHe2GsG Z2QQAUqja5aH7P7zYOtsg== UI-OutboundReport: notjunk:1;M01:P0:CZMlOYn8Oeo=;mPCDR4EQxjdsytYwOAhBC/9Pnzp 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 7Q4a7Ls7QcDNcKSJ4BS4UyJLBWp8+peXIPqS8M Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775318173154100 I have so far contributed 61 commits to the colo project, waranting the addition of my copyright to this file. Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub Reviewed-by: Fabiano Rosas --- docs/system/qemu-colo.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index a70e61aa09391cda933031535fa982d27cf6654b..75abbd80298df79223cb8e70064= a5dc83d70f4eb 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -356,6 +356,7 @@ Wait until disk is synced, then:: | Copyright (c) 2016 Intel Corporation | Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. | Copyright (c) 2016 Fujitsu, Corp. +| Copyright (c) 2026 Lukas Straub =20 This work is licensed under the terms of the GNU GPL, version 2 or later. See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Mon Feb 9 11:43:43 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=1769775314; cv=none; d=zohomail.com; s=zohoarc; b=eVY5bfhcZondoMDp44u+Z904VH4Z12mS6mNeFBCu/AUiTk1XGKGiersmXlkJGVSYMikqnzNO6kdUbMcw0v1Ip2TnjurEA/9V8RzdgEQL8GMfGgPJqVTh9m8Jq2FG4YLVexxuKmcttC7gsHhe9vHodzA7IIQtDQytAK26wjBwRsM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1769775314; 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=V2wl7+xKW2VUs5IlZ39gvgGSN6Swz3GT8YAOMgvY2Y0=; b=gpG+LunksIU+k7rps22f/MUmSgMbsR/si6j/FhxeHo8uXXw82EH71I2tC3X+e+pqRJuYaTm0koKzjMPRkw8LgSzc1c6/oAYPvEftykCm6V9+Zesclfy2zsGunKjPthnsFGq+9x9jb71AYfMxXDz8opPZmwDAUZUW+e5dvDz6iJA= 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 1769775314696409.46218074159447; Fri, 30 Jan 2026 04:15:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vlnOp-0004Xg-3h; Fri, 30 Jan 2026 07:14: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 1vlnOk-0003vS-5D for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:50 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vlnOi-0001vo-6j for qemu-devel@nongnu.org; Fri, 30 Jan 2026 07:14:49 -0500 Received: from [127.0.1.1] ([217.247.97.172]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M2ggX-1vjKwz388N-00CeSV; Fri, 30 Jan 2026 13:14:38 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1769775278; x=1770380078; i=lukasstraub2@web.de; bh=V2wl7+xKW2VUs5IlZ39gvgGSN6Swz3GT8YAOMgvY2Y0=; 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=eyU8ZQGTYEFCGfdATi2NyhUiL3Jo0CAt68sYfkDuuLdx0Qy0Z6cl0F0nrpwoVBny ExSuXs/09TXw+6oaFmR54yjBKORbyIqpgJA0GZttxzNsWsUIsPtGvsVIA4y1CyrxY ODR01J7KR5N8RGjI7Paz5gD7hLerPNldjaY+PKJGKqzeaK+j+Eyz1YRMc6poTsfPy 6wBQOpqaHGMr/kDh0uZMWVUlE7sw2Dk0Z4x9hJ9DjQPJFYq1EVv5/j8H42FBe5nKf tFsOPv11ZpBR/tYs8DijL+9PZsxJHLijR7fVsCmBQBM3dvq/A9pT8t0xRKWuDB+MB z9+z6a8ZDWDnUBgWSQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Fri, 30 Jan 2026 13:14:24 +0100 Subject: [PATCH v4 16/16] qemu-colo.rst: Simplify the block replication setup MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-colo_unit_test_multifd-v4-16-7115ab6f0e77@web.de> References: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@web.de> In-Reply-To: <20260130-colo_unit_test_multifd-v4-0-7115ab6f0e77@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=4343; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Vq0uip/eSPkRlYDXg+iQ5EdKb/P2Q7zchodJcpyMdqs=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpfKCmCCGxH8PojAWVB+yD4skN3KDALmn2/nicL 42YctMGSCyJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaXygpgAKCRA1qwsonF2y WP8+D/43C7VmZHDy29QPSsCVV6DlwEEnFRSGcoOYtqiqsvF8FYL+BSDB9n4GZ/r3aWbFviwSAeJ 1YYWcATiXQT/oiRaF52mTMjWP0+jm7UWPE0H7wUbTAPKrbQnRc8PSH5MoVtf/6PAfzaBJota4X4 TS8+44wz06reXTW+6aTGyBqQ4nNSHtf1av97EOqX0gSPLMqjjZEC7/MqnzXUlJDNcWKj4EkncIi 18fID65XftaL2QXfDF6vf1NT3gGOATn+x+SfeN8zDlfkj49i9KMdLrkTxfogQS9FY6fC1qXzTPo 0F4q4Klmm/4OcBTSoW1GTWTOSK7LCc5IJU+Na1XGD/uI5P4hQNWzu+qWvAHuZ+Fjc4S5ohCyn/P CA/0T2vU+mFeys1VqJ6laOr6rY045r6gCgkOk1XZDBvjJF5s3112M7sS3vZ5beuwjxL/4Hx4sYr Blj8cpbK1P3Ks8q6w8xegv8bJXY7U2fbJuXC/KuhBtDfz+xe7VnqsWb/FuoRSrOdkmc6YG9SNzD fdhNUMu8f0chdfj4yjiECQ7vSTwm+UFXQnEZ7xv3kZ3yB0Pkz8kDiRayh5wGEj6vMX1G/al3FK+ JWiiio0Shk9+Intm0YWgdbNi9ddiXsWPdxY+6Oa1x+iy+EZXKrbsMALIsgpq+0k7eDAVayNzuSr ZzwHg7C7Lc0LfZg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:6DfoWfzfe/I7gYBFeB8lU6+iJQyAsiXhxjn44+n8pd5MDPGZQ8Z dHGYES0VctoglZxnUN21pI1eGSrVO0cwBQixgEpMiye+QW/LkSYq0ht6KnYlL7x3QJlJfs/ ZMEXpuRFSqNulRcQvSMXDvXiaQbm+c3CQMBzGHp1h8D3MwDovuOudKrlEfpfMst6gHqNOKs pXYIihk3S595ZSCLahy7w== UI-OutboundReport: notjunk:1;M01:P0:zMRuOmk5xGQ=;xnUXnaJpINRNiI4CaNSGMOXFcC1 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 6dwo6oAO9VTGSowTXBuQed9UIV/3A Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1769775317389154100 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'. 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