From nobody Wed Feb 11 04:20:03 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=1770740679; cv=none; d=zohomail.com; s=zohoarc; b=LUXveedr4qhMYTU69G03vutdPWHbX/CTjqBjEOFS04qRnCgnxUX5acVUXQdOSTQZyJCg36pcY03IuqkJ3RegumQKrvp6A4OYEQT6PMHb4nMLeZtw6xckv7W17Qv8wYbi7j/G6gUxmwSi9Zsgy2A/uNp0g1NnOJfvnkYPnpokWHY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740679; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lB5C+xSIkMKIRDv1x5Wfn129/4q5gzxH7gAd/BDyFJw=; b=mTOx69ymsxqGzfG2THqNW2VLN/Pc9HDGAWnhBMGdviFOQnut4x/rMw9CBbwcnjkWKScg9EG6T3A0HOUooISvw29BQk4mdWi/SsVqR93XyNnPApVPj9Jjm9CugYGYTCx7SpO930f9aGvNyBlrMQkpuUCt3V0Bp01XsmG3FgMbqxA= 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 1770740679706485.8756349050417; Tue, 10 Feb 2026 08:24:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWQ-0000fw-Qa; Tue, 10 Feb 2026 11:23:30 -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 1vpqWN-0000fJ-6U for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:27 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWL-0006vb-BD for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:26 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MUl9B-1wFvwZ28Hp-00QmKc; Tue, 10 Feb 2026 17:23:22 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740602; x=1771345402; i=lukasstraub2@web.de; bh=lB5C+xSIkMKIRDv1x5Wfn129/4q5gzxH7gAd/BDyFJw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=IuvBzzUn/RK/pWcww8Ea6eMtZ7Rs8PEP8BJshxz5tUWr8gNjAou6B7U1kaQl8qDY QurrPmb3Idw8h68vI1Diopnn2LQv7MeEUwild2djZM0UmWVevqtdR99+Smv0WOJ8j /9Q2ynZJneOHiXo5Vjrj3LEwFGqH9ZZsS1lKCEstFNK7Jb0bP9gNpMD/Rsw7TUnIp hkEAVV/DeIwbj0jYm/xAZPBfKdB02ixSa16BHzRC0Jlbz83ZzZz3I6Xq9kuiz5Zh2 LPn8wXmgiIEidPugGS8XWWQYs1ibv+wBxJs1s+NjzMlaEMmtcE4i5IGV/XMSyd3Wg yUXdyDKh4aOQSP55IA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:22:59 +0100 Subject: [PATCH v8 01/17] MAINTAINERS: Add myself as maintainer for COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-1-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=637; i=lukasstraub2@web.de; h=from:subject:message-id; bh=5+dRgR5m8zdVwsdJs1KEds2XCCwojWugkIa5UcGjC6w=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t2xXUgiD8OwogKKFcP1MsI1PyiKVa8taaav ctbFqi4982JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdgAKCRA1qwsonF2y WOW2EACUW+rRioVYKufASJcbYLoLb8XAjPGTCMNro6+LSIuNIzcfwvYjhIR8Gn+//oEiFmWBnWM qTKT+Hi0sz7vllR8hYvp20jWaDxDjJZxe/uale1CZy8Ea42LjfvqJkhwNLwLP8MHmHsDtsaYHQT bTckxb8zn+1yoyeRBXZ/FtbhZmYz67r+Mm/i0Fa7tLvp0QmhivUZJQH9tYRveN6jM/ChJr6wFWr YiDWPhkgX/ZTOAWwE6XZBiRDUhIRcvynOB4oN6ykHOhZ+wIO8b0Sk8A0EWxSvaY2AvOoztWuA7s 97On+xTISUq+FcaFilnwwjqqyxTMZiB36K6Fa+FXDrkHFWUA8VOF1DhYQnJz7y/t9hn3nW/hz28 vkWZ9Iwx9cexqUdHHZTi9DtYkFHQwTa6LselbvprVrtqzuE/UoFXjH/MmWx+bdKlwM1M2qm2UNP TZiVKK6ACd4hCRPm3b4ncEB+W7jZaWRIx3mhv8mFmB9amI/kbCeS9+amb9tm5IfekASx8uVbqjZ DozG32MuCyg7rE/dDFoM7IOyhRwt/SPRzzeVxqx5rnRlIwX7Agp5ZPtSno3OgQmLTgGrtOyytaU 8YGWQhoMag94QtnE4gWcV+73io9Irrx2uQLVK12YXKXbxXRwJ7igaEGpDS+WIPR0lx2boXBNkBS ZpkMNIWyB99BrNg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:ONIhYSCj2Og62YUoQdWbSD7IMSuYjzfQI/rlCU6GA7xtsJCoahs zWAA6NUsuVGRINUH52VLp1anC3OsosUqDG4Vc3wnNnQpYP6OwR5pTamnvN49BYzRjDApkzA 1940WX2/gbVzl8NAzOJlcCBDI/6PTANDy/4AfAR/TTO42R3nFBMZoXLHbZmp9usxTJRCJm+ +ajVZqus1qe81t1MwuYuQ== UI-OutboundReport: notjunk:1;M01:P0:Mj9o4+0JQhc=;2r9zfFmb6ps2Y5idKcRnR7FzeOr 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 P3TA7XJBO6gIaT5q9OsMg7CU3JFMV Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740682243154100 I am ready to maintain it. Reviewed-by: Peter Xu Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 29f88d48f3072aa182908bab667d3a108ffc246d..feaa4e47082499b3c7c9eee1a0e= 1a1fa28f70e2b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3857,6 +3857,7 @@ F: qapi/yank.json =20 COLO Framework M: Hailiang Zhang +M: Lukas Straub S: Maintained F: migration/colo* F: include/migration/colo.h --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740643; cv=none; d=zohomail.com; s=zohoarc; b=L7xYH6VYqPiMvVrrWDOpWwWIlUuY5BNrnjz7u916Z/cucuUct+zRYIHCpUp81tCkbYuPkRNi43yVxM7wKgK/k9DgpJ8//BeTjuTguJJ0RqJ1i8ntM+ToWuIpq+WaGBHxulE75PjsgBmUoHEQsR8zBy20HkgCnIYBbK6ZO7U6LJY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740643; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4LaXbTl0THXOahwuMttIKN3IotOqiTe82gAMkr3oLpI=; b=b15UB29Ghwt8g3aQ3RO43Pmo9ybwgTFHG0gY21aW6tCcapk7kw3Y8msJjCT3+p6S3bTxbcoEaFfsXretuHbb+s83LtlEa1mN66edqNCzQoPNokadixwrm1cNlhCP3QILMxzPuBMM3PmwPQcd3SUhWMcXHTWXhH2wtE7kwnRWZmg= 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 177074064386195.49176023198436; Tue, 10 Feb 2026 08:24:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWU-0000ih-HM; Tue, 10 Feb 2026 11:23:35 -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 1vpqWQ-0000gV-Tj for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:30 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWO-0006wX-Pn for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:30 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N01di-1vdFc42uGc-00x4fp; Tue, 10 Feb 2026 17:23:22 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740602; x=1771345402; i=lukasstraub2@web.de; bh=4LaXbTl0THXOahwuMttIKN3IotOqiTe82gAMkr3oLpI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=kBSxiYiOB8xm5IzR9g0vRPDe/LNijyEtJZM3LvykugXmupY9sqlnwN0Im/n6Zr6s CM6L7LhI7MKQE9h6SMb/357pNXt5jsxoPBcnuO2CSPaJQL4ZeSxPAoKm4PwbOGHSu /3EPAuZimcoU0d4HWf5NBKbEIRVJSNh7S5ZPc/wzsUqqny/2HBk/mnUaKj2+GjwwD UVGfok7tGr8l+GqlXba4n3trw/n2zZhLbhbxJdz+V/tAMoJKTYOMIBAVtWdJEjRyz ay4XYcXL5hVcKJAzVAef7pssOCx4mpRg1cxTYqIz34EHnY/2Xj8ak3KXK/T4S54ci SwHqHuQMql2K0vjpPQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:00 +0100 Subject: [PATCH v8 02/17] MAINTAINERS: Remove Hailiang Zhang from COLO migration framework MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-2-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=747; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Q+MgSdFh34hx+cFCgJDYFMQn9ZkaS5SNN9GtvvR6EzU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t2BxTmyQBLn/B4dvjqcbvnMPGJ7WUxtYQWC tlKCNUk1JyJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdgAKCRA1qwsonF2y WBoQEACyJbBkl6nuUSOxMe85856MJIqKWy5wdiEkxMRUSIzNy/jmBMmeYFnbgZrrt5k2thLs/gS YhEN+qP0xm7r0WlYqZfLi8f+jwI5l3E05DD04xZQZbSZrsS1NNAf/wIp9tBTfeDroYs7FMNPwbL XtYHjgeqV6+F8RACJB6DvKcLjm8dqchuKSiQ0o/egoquKU34G3vTs/9uauhVVDhgClTlyoj+A1o PCbggNrNbToGzGgLvLxmAwoXk4jvDWrNmDEHLwd/fBqPjOpC6gkIKPnoukkdW2QAsG++ktjtpvK 8dvXP74u7QoGQoIoMk3j+Dqmlnmy5vtleACdEWy4yL2hNvmPaYGWRFfljhB2nT8eyi7TmBEMpJT 9RiXXQxGEsMIHF6iiLYOFr9nnlj+GZnH5zIJlROCRcOzrjr7FG8eH8p6i2+U8arXAt2SBJqEUJO HfvcOx6Q9NWB6hG/sZVsRTg//tgHR9y2h0DSN1hYBC5FRpHRYvHsfVHNf4TPWgsKfLwfQQfoNi3 wakFXD5wyexaeco2nGeTxxMJ47RszCTegsWVJuLghHrNF5be99Qo2i3F4M1pij2L1JcDbdAhkHg 8ozSuycTsn58EV2FXB3JpVvmBLFKMf8Wr0pmk0agwwMe96AwVH61oa9ACwCdDPzZY4zuoix/9jU xzA/iifgHU0OXgQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:45zOyM0LzzB9oQHb90MlsRZkS2X2CjoTVmrVqyPPHAGcKQASbWb 37dvLpVRoUp3kRHiqIxJmfLI7UJrOW68cN8/JWbEPZPh1C33RWgx4Jq+tKn5KrvFWPYxdey vqmsEpz35SqnEEUnEDyETV14RY9LqRjr331sg6PhkRRsh/1rhGIr5S8DcP9sRz0t7N2TIHd 71uuC+U22rgFVm0yrcbWQ== UI-OutboundReport: notjunk:1;M01:P0:o6U15kT1JdY=;YkLSba4bsqUcE+b/VKyX8zxb6N5 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740646246158500 His last email to the mailing list is from December 2021: https://lore.kernel.org/qemu-devel/20211214075424.6920-1-zhanghailiang@xfus= ion.com/ Reviewed-by: Peter Xu Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index feaa4e47082499b3c7c9eee1a0e1a1fa28f70e2b..356e3a7889f9ab45f002f165112= 322e6fb5a1967 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3856,7 +3856,6 @@ F: include/qemu/yank.h F: qapi/yank.json =20 COLO Framework -M: Hailiang Zhang M: Lukas Straub S: Maintained F: migration/colo* --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740737; cv=none; d=zohomail.com; s=zohoarc; b=nR7C+CxD54yJdRtF6m1U0QkEzGDVBEzUBJ/r1R2l9/UwPYFuo7mHtMabz9pmgnIUly5xytQRn0kPOcJ1EJMOcWBwIOpncoBRZzbeMt5YaxzTZILq9StmWrkjL/rUwvpFN1TGb3P1aTvFNBdD8UJjj7AGBCNNo1yiqPzkvT2/h4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740737; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2Je3+6AqZSnLVm8uuHSb30760gu61Fpz6Kj6xfR5eBA=; b=oEdsmPJj+eJ+lqrw/AS4838iJu1vuXZXIBs9TORPNvhooyUgw3URE4JvCWkOpugN19tXbCdqcsocFMdKXFyABqHSo1ufVbKGWMYWYlzCrZAT4tvTgFJeKel16DaCxiDx6gkQ4ACJ4bNyqVUrjNlyIbJvR4SGHtByqRJn+WnFA4U= 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 1770740737873480.1194639627996; Tue, 10 Feb 2026 08:25:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWd-00014T-P3; Tue, 10 Feb 2026 11:23: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 1vpqWW-0000oD-9c for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:36 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWU-0006zK-0k for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:35 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MT7WN-1wEHFV3hOB-00Udg8; Tue, 10 Feb 2026 17:23:22 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740603; x=1771345403; i=lukasstraub2@web.de; bh=2Je3+6AqZSnLVm8uuHSb30760gu61Fpz6Kj6xfR5eBA=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=N3V92sbIHwxeYZIdx3Hd3TjGZOP6nGOoKTu1ZPvgS+JgWQywhDqVYmxbxx6G8CTF DqT93SC/vtFP+eW5QMhPrxbaA85qhheO/WDVE2n2D3jF02VP7jRDtBnVbw1NUTn9t cQZ0Mlt385yqh/svZhiQ7WbTckWH2y2xbiW8auCsZOWNy8JrSEJvSG11i5XiXrwbh AFQEM+GtLyE/QH38TCNKABScTCbLlaR1+Dq9fekWKVpcbq1fvfJk/6uTK8c2eqQLx y+B2ntmuy4A3SJ+Vg2GiOaf9ALmS0OeahyoXwodiCXOaFPo5XydEcgyi9F9zBJUoG jKYaHwhyEvVdwvtutQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:01 +0100 Subject: [PATCH v8 03/17] colo: Setup ram cache in normal migration path MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-3-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2754; i=lukasstraub2@web.de; h=from:subject:message-id; bh=2P/9ztw9/gwa5O+sAkz8Smeq4Vt2ZazojIRUwUeeeNI=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t2RgPDcfDHJHkFpNAlu0nH+AToMQn/9+Oxb rb2ZVSZIJqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdgAKCRA1qwsonF2y WMRZEACH6mElvwu9S/wfoAs3lktPs1tz8/PQdy65VgDWhWU5rGeRCPS78TK54O2TTvKztiTs0an 0rNnJ8eSG6YzJvwJSzgAVKmSlknjww2s4EaGZqz88bp3Ucrbgq3Xf/LpnR1CeA0v9z59HYysuGD ChpVq2qJ6hBYZyV47thE0aFPDIFFvk5ySXnnnZT0XHgG3VluUpDi84GM7vBl9BAwOWog87Fylma PkLTo4SNLIQBg5+htbW8v4XtrJkfJAYIl9tOJkhLGx+zjFwXQOKUUUgXLbiKsJop19Zs23DJMfa 1VSsUTGucw0UJUOlYqKlrK0Q4gPkKlVW5i4aIaX1nU1fsm7GwzrtR9tNWfT7Mzruh2iDsHCxntb OFxajfwJkkXUiun+I7wJEDrMzitefkr396m/jpfIbP4XI5kL+22EdRpWA9T9Lv1JHaOyud3JCk0 dvQhpN9Zm04kNkjn82yuXfOJPy16Ya89YF9DC2sR7ydIvbBMAWkZTNiTlJ6NPZ1QKY4398JPxi0 PgLbEaeSipACfZzoW+QSQyD73GfP0cy88JDs7Bkrp0YEBTXbhY/yg0hKLmHdxEy29K9vtvPsBoU lFkbyTE9YxwYDGxTMRcAogg64RwpUUdKE2s9ISPL81GXbEAdcSIpVFzLAYT+9s74Yv8qQV2GV6d cAeuZcBpFYslREg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:qL6ZHC2S4ZjKPLEH23MG1sTbehugkZB2T5cm7YJfA0HY6A+ek4m nKOY5oL33EYJyTXnz3lPPcjhE7I9VhNfA5FlEksLtwz3tUMP7xrlogkQoQ5lNIY3kg0GP9Z b3+45yGqaORjXsJSNODsVxpA32xF+S6yDlf9QxRpUlYjkQNF6VOwguIn0p9qL7QyFwGHBKG qcqlb4UxTnStzWzp8dErA== UI-OutboundReport: notjunk:1;M01:P0:QtFoF6Zs28A=;wkyuP6cGVXu6JrUoW2PYYdHaXwe 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 MhM50iv45wzKU0L375pa Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740738421158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Use migrate_colo() to initialize the ram cache in the normal migration path. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/migration.c | 18 ++++++++++++++---- migration/savevm.c | 14 +------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index b103a82fc0b83009d01d238ff16c0a542d83509f..a73d842ad8b060dc84273ade36e= f7dc8b87421f3 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -630,10 +630,6 @@ int migration_incoming_enable_colo(Error **errp) return -EINVAL; } =20 - if (ram_block_discard_disable(true)) { - error_setg(errp, "COLO: cannot disable RAM discard"); - return -EBUSY; - } migration_colo_enabled =3D true; return 0; } @@ -770,6 +766,20 @@ process_incoming_migration_co(void *opaque) =20 assert(mis->from_src_file); =20 + if (migrate_colo()) { + if (ram_block_discard_disable(true)) { + error_setg(&local_err, "COLO: cannot disable RAM discard"); + goto fail; + } + + ret =3D colo_init_ram_cache(&local_err); + if (ret) { + error_prepend(&local_err, "failed to init colo RAM cache: %d: = ", + ret); + goto fail; + } + } + mis->largest_page_size =3D qemu_ram_pagesize_largest(); postcopy_state_set(POSTCOPY_INCOMING_NONE); migrate_set_state(&mis->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 3dc812a7bbb4e8f5321114c9919d4619798fed5e..0353ac2d0de819b6547a1f771e6= a4c3b8fb1e4ef 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2407,19 +2407,7 @@ static int loadvm_process_enable_colo(MigrationIncom= ingState *mis, Error **errp) { ERRP_GUARD(); - int ret; - - ret =3D migration_incoming_enable_colo(errp); - if (ret < 0) { - return ret; - } - - ret =3D colo_init_ram_cache(errp); - if (ret) { - error_prepend(errp, "failed to init colo RAM cache: %d: ", ret); - migration_incoming_disable_colo(); - } - return ret; + return migration_incoming_enable_colo(errp); } =20 static int loadvm_postcopy_handle_switchover_start(Error **errp) --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740734; cv=none; d=zohomail.com; s=zohoarc; b=WEA2z4JFfE3Z5kKeRccq/UMoKYUsPVeg8iNTm0UgQFoyXnKlx8a9D6VkXme2EBfsyqgCRejP3/nfRSde04oRzhafviTzbye5B0po2IQDP8mhi3EI+qmNvBoqPSuYaxmNCc441IfG4igdrQJ9VscJ79M6vnJ+ZyBjYM2M/IMsUAU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740734; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=RGLrJs+wgVIMusQz3c1kd0U1NF/dMrRT7BE8mQjI8Gw=; b=ByiU44ZlJUadJq5UJsHQVzX+s2N1obM5+Ma6e38tu+wOZc+bVYyUVR4Z06/STBVgn8NSCXbkZLQHGVYx9jkz2rBgtGmbCSBJUKU7WmPS4mS2ZnrYBLD0dIyrOoLpo41RnOLDaHoqkS5BRLXu4kNwYSKSbnrpDULU+VNcQaUk3N0= 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 1770740734268893.4826197642651; Tue, 10 Feb 2026 08:25:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWe-00014Z-1R; Tue, 10 Feb 2026 11:23: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 1vpqWU-0000jh-NK for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:35 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWS-0006yp-Pm for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:34 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MXGOI-1wIw4r0G58-00YmY5; Tue, 10 Feb 2026 17:23:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740603; x=1771345403; i=lukasstraub2@web.de; bh=RGLrJs+wgVIMusQz3c1kd0U1NF/dMrRT7BE8mQjI8Gw=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=tzDMcW7Fty8eh+cWvqhXBkYyNVUaMP1Z1vwmFGtudMNuq6tAXFk7wF/SD+xfvOXc JJbIgpHr+uU58NIQTgFa/by/Mj9MdlNXMluUV6UjwcgBO77KYriTnbh9fEabfGKmq 1qfvgnGOGsjuN9X+tSMscu2aZpSh2Y9voTYJEmJzGom0xcPVzXGb3dYdKiY5ycq30 Bp8izQTbZbaV9zQywDqbyUHLN/mgBj6aAYJCOHPeWRspx9nYGxIvpKRh0rlesL8Ne cHaNP2PvG0Gym5/TA26FMFauzuu9i3aRHnZwrR2Wx2yqJNPf9l1BStbba02eEFLUl brkfR88ETscEHJmm2Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:02 +0100 Subject: [PATCH v8 04/17] colo: Replace migration_incoming_colo_enabled() with migrate_colo() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-4-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3533; i=lukasstraub2@web.de; h=from:subject:message-id; bh=36P41Q25Nw5TQAK0cGBt4ldQPi9+jIFYiv6lBX9NyYs=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t2ibklwvyzFX7TuDONb9SKjrRP9MTi9QhdG Gpgx+OhNF6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdgAKCRA1qwsonF2y WFgsD/wMPIGzxj5d3WTpBLsAmVbFD+TSkMRCrJhptJbzF++MZFLagEhktb1S7bEAkMV7/XxZJQa 9UUvT3j0Q30/mlmQgXKeQYTeES0aOjbeNqs14Nd6sdTc7Wvr5JpfT3ZfF/J8OTGs0ZmLKc/WQ59 h6vIuZxhxWawGcVeATmf6Wy6hsFfhogyRibOvD5NTy7HAWyssIJ1DLL16Z3C2Zq3eDqOAb8OcHW ZqUmgiwEWJ/kFob7avroSxX4UVgLwBjHDG3/mrJpH1G6PgkhIzKzg5hBNzPvHP/gwygu8ZaMgk6 LZ/Y9nn+YopKhEPMPxbr2SNTSv/oVo+UeAqh17Y3F42LEpuPKhf6Kw7PAXy2t64zGhLL1Ex2eBj tcwlnhoo8jBziEs/gUmZoy3rql0ziPom944ElV6imLgi/pt1OX9YJAKmWwsFdUG3fWD2MrUVO3p SYzcGQgUT0UkJEHhpvsBj+f7S4vRv589I1dPiJEE2fN80/cVJH+T3FzFIrJUJkpB+yaG4kGdqBq gzBoahX8Xp6Na8BhjJhqBY3REea/YPkqB3XT9VkXexUaKCTImkkcrucGY6eorf0Eae4tUbNT0Zw IRItyKGpFlhOTHNQ/A1rlvnvCgIdeEmSPgVxFkrccSOpS8j1+4GbUw0Km7H0rNcT76PtPJtuoKb tCkxzwFBoCIkITA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:QB9LPguu9NbuBThRaP22jidzbv3ehXS4+A7wxS2Igj98jWAem/y pBsZpLRv3zPyHNOgOActxo2IQgsxGv1jjrrhqhiR0ywC1ucrFUlL03zZm1sh8xtZkLQ4fto RIqPCylzxvI6WQR5ymXdeOGxuTE5TsPr+FyQBwo6GUiYOcku3QAo+YWfq8CX/X2RCj2k6an ecFHb27/+XaUmUF++6s2g== UI-OutboundReport: notjunk:1;M01:P0:sxM09nur9F8=;IjJVGhVY1d0vfcnhfumaKeCcpcG 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740736387158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- include/migration/colo.h | 1 - migration/colo.c | 2 +- migration/migration.c | 9 ++------- migration/ram.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index d4fe422e4d335d3bef4f860f56400fcd73287a0e..2496a968cc1ce709f706c0efe57= e4f765f163d3c 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -27,7 +27,6 @@ bool migration_in_colo_state(void); /* loadvm */ int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); -bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/colo.c b/migration/colo.c index db783f6fa77500386d923dd97e522883027e71d8..8dfd39b035c48590fcebeb20459= f01fb37fb67d1 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -933,7 +933,7 @@ void coroutine_fn colo_incoming_co(void) QemuThread th; =20 assert(bql_locked()); - assert(migration_incoming_colo_enabled()); + assert(migrate_colo()); =20 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO, colo_process_incoming_thread, diff --git a/migration/migration.c b/migration/migration.c index a73d842ad8b060dc84273ade36ef7dc8b87421f3..bc8ce64ff5000b0eb634a20b22e= 5f3e3289b9707 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, } =20 static bool migration_colo_enabled; -bool migration_incoming_colo_enabled(void) -{ - return migration_colo_enabled; -} - void migration_incoming_disable_colo(void) { ram_block_discard_disable(false); @@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque) } else { runstate_set(RUN_STATE_PAUSED); } - } else if (migration_incoming_colo_enabled()) { + } else if (migrate_colo()) { migration_incoming_disable_colo(); vm_start(); } else { @@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque) goto fail; } =20 - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { /* yield until COLO exit */ colo_incoming_co(); } diff --git a/migration/ram.c b/migration/ram.c index fc7ece2c1a10f34aa5a91f58cbe42ea418d7c078..aebf77aa0b861e00516d6f1090a= ebefdd0d97e54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f) * speed of the migration, but it obviously reduce the downtim= e of * back-up all SVM'S memory in COLO preparing stage. */ - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { if (migration_incoming_in_colo_state()) { /* In COLO stage, put all pages into cache temporarily= */ host =3D colo_cache_from_block_offset(block, addr, tru= e); --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740757; cv=none; d=zohomail.com; s=zohoarc; b=MvBvmlxkOYxsDCutnYlA8kYJEkHhS/igDNZfr3xT3pMJvK9XFmuN/y8GPOof6TKRpo53F/4kzQwPeY3DHgEd2YqOpj75QTINQ4Ij/+nlZAsOAES1MEozc7HRol00ywaJv1mfZri/B/oBljWetX0psDlI2P0eYhvtJbPggtntheE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740757; 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=6abXST4U82gBInHYAiJha70N1bLsU6+GbtnfbmCxfVE=; b=BibTmc+aQEuOIVFJ1kW63QSJWyLB3vbv75V3A5doTHpXDF29LedB3FWWcMK/gf5ZyPPJP4Ys3lpDaqNzZpQrEhFYwKvhg8AcDPpsUtsBLEy/DIzlbZVKhHtCWPQBcqpAFhx4EBB4S8+6xs8If3UHcFaLTpTYKiPi3sPVCGIRBnc= 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 1770740757748336.15590024836024; Tue, 10 Feb 2026 08:25:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWd-00014H-Bs; Tue, 10 Feb 2026 11:23: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 1vpqWU-0000jg-Lb for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:35 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWS-0006yT-5x for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:34 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mav2l-1vDkXo1BE3-00cMr6; Tue, 10 Feb 2026 17:23:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740603; x=1771345403; i=lukasstraub2@web.de; bh=6abXST4U82gBInHYAiJha70N1bLsU6+GbtnfbmCxfVE=; 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=Xj8U+ZNLp1UeGdkkDBAcLMSOMrmFt7SD40Y4LaM+R0rwfrLpY37FiNJNl4wa1Y6a Ppncs0WqOeiKQB+hz31n86KFhnNcsD3pZwFHbA+3a0Li/blbHjHX7V+rPkuNkG+A4 OOS5v6tWZeampzXMgxHRxQgYKMOeeZV+4xiKX5tk159VbYwwcWfpeoTJEq35id84B 1/YHJen0/SGJMqWtPs2x+olMdQ5gA3O4WUJp6XOx70p5e+jqFT0Zh9m9am3qi3mDy mA00EazwtwZD+7MML/tmJ0ikhXa5aoqvW1x8yfk4fXUQVcOi5VmJ1OLWXF6ybjk3J VjpgyUnldXLcYa/GYg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:03 +0100 Subject: [PATCH v8 05/17] colo: Remove ENABLE_COLO savevm command and mark it as deprecated MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-5-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@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=6960; i=lukasstraub2@web.de; h=from:subject:message-id; bh=TXNxHAjOmaK7ytUFIMkH1Z1jbl5/VhU681czgf5lhvo=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3pIqfqP3bUPWIsOEUqTu7k/R1Ino52NaBD EgIGspnxMGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WEl0EACQpJMxQpGUbkXAE0KqrmADy/37Y9DT/iur4G2PqC2P3D+OdeZ41xJowngVcF8jtgKhK1h bySlLBdo4AfFZKIyE12puU1Hi1E0b9O2gFXvgxRvx8XOIJ+0Pck7Re0yoUpzScE7lULN5o5Vl48 9OPJCAQuNXZXkHkwG+bwCBaO6xcUXORi1Uz7uX6FgEu3h681rbvWJzqk+fybPq/jCCg1HtJG3hC J6THTt5Ex4qrrtKMed/dOSlDmpeT1KbqJC2nOa/TboCDXp9PLczMiaRspQ60asymDPlrSUFl5fw jCGI5ECfkoEu3sBl9TKhTlSZEozLvjK/chy30RCPnUTPchP2ARgjmt55oIo4seOFMgyXxaYwuCS /bfrBPRmwulZKVs32NyTe+g6yTS8g+LoM0/ylgtVkN3WXRI5mQ/X7K/l+9BguprAkUIBMgGL7+0 NwGCgearFfrc4oHO8/wejiA0l/GzN1Unk8l8yqz9xcED/9qxdImjh1mu1uLYRcR52x155sxEJVL 2DVCJn7TFsaO4B/oprtQTHHWxL5nJ4ndGacu0i4hug2M2BddvP587v1BODEBwdTJioACc5/lix5 ZgUfJVi5I5fgRjhvdXCKvOjdPlyPuPo2/nyEvfmkRX79PRAkRsbRkIeo4QbpIuvfkxeMR3zRT8S YCq8T6bOvMVGllw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:ykXhLv1m35wae1blmAPAstBerk1HmtMrHhmPJ0bgQYhWN0wBagd ikZ9EOTlTMWwiZrDAwuh2l4yLHorweoaOvPXyrl7qwTh2F3my3xCgzs8JN9SgK9fkCkOFUI RvfFMZCJIkkcamjUrrBoWOWYRdiIlU8lJHXEk8bo0Cdlj9MfweLDu2I4fjFujXjDBK0FudK dEn1AA6pQv7dB+NDFuVpw== UI-OutboundReport: notjunk:1;M01:P0:JUT2O/HB+bw=;N5BZUKJm6N/BlCn0EFDerh6m6Ky P0z2+ou3N0f2DzYeK+5u+JaLp4QkDkDDB+6/y4VPuLK7exOoMGsvfwCPXffgX6T+fMCdHnqZu yTIkJCjDLptHBwjR9e3QvOU7/Es4blhRB0KCnCTRQeFueQdypg27E+VnyI1KRsVbKCfc9T6RJ zLHwYIKI0e9jTfl/Oa9jHqBdtzfctx0CEEKt1Cz+Bbw2hyjJ6iawhP56t0KTXIJ5h0y8d6EEx Lo+qL+dWTDfuvQ96vp6cvhKKOElDJHue0ch7E79Uv04Ytyn+XyDnlPPCqBtYCNVDve2Kfz9b4 41RJyC4uu6jkcJquZK0urdB9eL+u8eoEulf9S+DiY+fyFsAxEJaTCMnMpu8QT/X9t9xs2gDAV G9/HHIpiKQ4H1Qvc1EeC/wVBA/pjZQdiP+d3EqpGCz70aAZ7GGosTcgm2bALxlwal/uqjcp1p 5XzqZPDYlTBumFJudn6SHq2wGRSzb9pCDLvA8oAMKSOzR1Dn7YOvrHQy+VeaQzC49iPKdfxOD 672YhheqkA/ocpW9WcC8KeyABTaPBXi/OSl9ahrwysUW5odgc2SHmOEErXzWzxkz6wrtb2koI NDP4sIcPixe/6NcHA28ODywrXl9Ogu0PLB4ktvsPMp5J7uXNAJWbd5pZxv47Iq3OKgat3bfrw WtiOvwFB6WmgasqWP5M/cJDzkU4nBiq1emIf+PaFUEnY6uakqfxMdLjWFmsvUE8JSBKH22Af1 AK/MBZXLZZ1OvclIfufJxjG2NK/moolsay5gmEF07D/sziG6kg23YfhoDtW+DmKa6uhNIGs6i fHfGJku4Fzi6kQCoaSi+05CH+Nm9aajbl1n/mCauJDKr29cMmlxiGm6ILsbKq3N9j+jdy8crW xhhJG5TYCZGqLCclNVhLxhteIS6187lAcezz+Os2bGHhdxY04LiRUw3a90er620JYO0Oj+A90 uTXzu1QJFC5fy60TlrprZP3ytrXwgj/tJWcRLwX6SLJVkHH66yxsTvOhQA4ldIFGFuftx9yqf 7HHnQwoGz/SzUPXFt4aollR+99tIe0LQ+hUb4yXcPsbCX3VJntqh33wsD6eYM+aKpMsVtuo43 3riZhqx2lEdEQfa8hRKrgzYdrlsXPexCT5HoIpNqstzxX5RLxIY9iGApuPrZ3shIo3wai0Qy6 1Ls8jdpP3LxrOknT6xXqFk0tgiR+hGRU5KdZ8dez987PkdSEJG31KJKh6WmHHdFQibKkbYqDu dYkEv9znxWw5SpkNeS/MtaJy0Ct6HXbyMuo0XaE3eiu1Fs8hY6G/jMDXLwKcHodg6SP0NOWBa UE0EPRycc2GLP9gsfG+7Mh2SSHL647wHZokHn73Ga/NKFg0YZoh0GX266ucrozVC0LfknKjT8 jYFVM7Ugg8e5+OJwfdyLbMmh3MeBOWN17r4RNsQW27RBMTQJfPAC10UyGo9rs56P+CFvfaNMZ ZfFQiLwYMy498tC/r7AZjEFSYZkR4NX+VMJkMWT8mjit1Q2hIwAhlk6uhHvmNBhNZeA9skk8k B5CfITc3noMw+oijNXb7mAO3szFt1KorOB9geVdO5L9iUhUFJiJiNEEEXaItnK3cPxGvyCqMz ZP90ukZd8iDiPgN8S8jE1SymvH1SXPL0Ro17X5e9dfjAZEMPxgquyKho71naakBvb4Szwjm/g SDvCg1d3tfsqfVV4JduLVIXIc2+NCdQCBENXpEtoF1aZQRqG6QOvc9iyU48eOytfqD8JI6hkO 5kVW1lbCGqWvm8BiQJBK7DfBwbSiMlBRrc7BkOONA5jFW1LkQG8TLR8EkD7ajqqXzwBcnXzY1 KKq5VTBlzrw+YtxlAsxy3RI6LMJ/kEqNBJglM9XP4kUMYE2nvZON/k5wuHLuvkRJEfve38W+5 jj0KgflNEkhV1zq2YVcBph6Zk7Fsck6wWGUWYtmPNQMhqbuvlZBpZ8bkWwXvPTjIy6RqO0tXB 2xPktdUdq7tPe7I6c+3tXyZeN4pJwrEklOBKioIjwZKXTrYIQoncaOTMRl2kSnKu6uERCqTfN Epd3ozVBogx1fzyEmzHyqAsgC7u257sjX5t86io8Ex+uYg5M6s4TwcYzbFGtqv45/NI/YZbcN PvomeY8YGWqb2/yOZu6fCywzIPGDyxVifypeJdGzlV7aluHiPPeVYqxBmTAWnScP8nDFSxZvO BCl/Z9wpOJaUWsy79JbtpmcsNqpFtw/nkd2GlFx0OMMg/LVqAskBqxydT36dlNOSLFYcBOBZm tLtHDPTBTP3IPm/kaCt41CP1p8SDirgeYD30MQ2pGWxLNodMxwE0R1A/8nEHdrVJNoZHYjXgP ItYiENo1tYBs4j+WMy50D9H5X9jm/6fTjdz1klxM3MeUcoWXn+c6NL810qrY6XM66Ty5kORZQ TMayTgsQWSFsUkcn37h4gBjiCi59tDgzLBjrUzApPrLJKkdZvkhNoup4JERQ93GFYHC1/vpZa emcGr5zahCqicY677GXlCFJ3JmavO+XMWuXN4koChOnX4peAjUDVlOiVFfhymn8Clq22TpOKd 2dUCxFjxP+OX31zO6+mVbJAxILTU2fUsXNQssPBXon8LkkF06LDeAGA/IPlq6GVHCzLX7R8G7 Y4Hwq1W/fODqAM9rBVoVQb9ZYO3HPn8hai1b+JBpy3ychVRQX63uwF96qXu8ORcMVulzfn8q1 FofFy0Bc5Z5coXGQ7elEV5D+E0YbUnhFa4pHd2usX7HfjWvZ/xQ+aN06rb/9hK0HXusqnAuWP eILgYsULJ2BKHAVn1pt+Ft+TWTcwO5D58Y2TCROreq0fgBDeMo2sAI6LDzL3lcPEnjEm3aLEE XbJXJDSPGJEZHQuQr9cqijJjXE8+sMh4bfebfdfDki68SCLjlNBYVxvVHk37s5Sd4Nez6NaGK w5a1eGlxA5XCevwFUvBprlXT+SJPzq6c6CV6tKo2iErTwFdDLJGPvR+pWFxNJrO/+iIstZ/vJ 4yN2hKaFaP/m/joxbshOYxNaxzanyWsMetT1qhFS0RrnErBSiZGf5Bmsao9xAb/rCicGYSgzW qat632v2Dmisgso2R9vbgMgVBHw5P9zXp+2OvbHz8RuKhsWkZ5N1P2eJtBpHUCNDeoD8I318J VAm7+8evfxzTQC1Cq/eVJhueSSYariVhKeE9wH31+Y+879uME0Rk19zdimEVDWq6JOCxzQ3iy sxkfxHab6nP4ebliAEORLdw4si83ngzbIYPDaLJOSDIB5N1tMTNJU17EGe/RV7nsDF+tD1jzE wBnAK2RcKbpWqm/PAQ1801DVag4rZX5WdbQX6L1PLstAA85izQbTkPxDEzGAOCZEJW04hXDr5 4AxKZcYoxYdPk9bWL6z6qFH9HnS470vjtXzoGBy7QOlVDDJfNHDBVmeu5ciFgxGooOtXtDufU BTiAjY78b+V8EeY8rxIIM5wKexAJ3gNjB51cytBx/f3PV7KRAw28tu6Hj3QwvFslPqxYt7tVY dM91eQAf2pSmmtRAFPSYP8nAkX1DYF+DCFGVg4bbj/eYsDz8khX1jOBqo9mcgUSMGd3ZQ9oah JH7FK1zwjnrYe2pdcgaJEvyZBXFgi/jnMXo6i3bCjr/iEoHDJfyfHtuCPeqAE1ZbhFQ3thox7 isTOAuJZlCquhMzUmrGnbgt4M0jh58m6gTQ4WOB3aT23UX4zvo7jNODZG+K/P7H79vg766pbP pi4C8SkJlqZAr/Yy2k01c9xFM+p521lF4KiWF6GhK1WPYJE5DZyClAAqsEjGvJ7MLQkoC22Ll WV2SGL++ghTRh5YxRmDYc+8LH5pUNPTnPKP00g/jggMZ97lhHyIe2uqNF834FRDc/pW1BeNEo qhYsiKiSYq8ejBXKB2gay3qAKqqvVead1tcpxNt+7ftGRXvhc1j53vPalBdCcUATXw16hzIYN lAM/visGBN1uiXjpaagdlu3kW2ToWYkq7mQwCa6LWcijyLUStomaMVPoitGMHXj+lVn+dqXwI lqWtrPuScWQtzfjw8u3BYh5f4KaRTAPhyIxSn7i9XyBQV0AJ5WjuziJHapiCKoB4be8jyrBUu aOQusz91x59hVQOh5PJyRgSZgkmUuqBnZ57pb+cdmhhWZOqJxdU89jhr0V6eWBreRAxc8Y6WP ETQSnqxMEMWWHDA5KbAblRlI+48yDKyJkM3gOud+tF2PqJEQLjdHMwYdMrPK7AVp+QoHDiNbv y7LGeRNJm4LGfHQpdshKkURinSg4FAV8KOaj4owa67rjuT3pF73CpT7tH6il+/55va+aJSTXF AofFnrWjk5dpfozkN0hTwHu75v9byx/paZnCSAJYudtSC0HpuFHGo4WJ9yj9Xnqv7gSlDmF1t 0mv/rKod345bT7NIbGnwuXX6g7qMJKd/K8QmId87AbDdBW/demaDjq7uT6VojENqjvS66+4o9 xHA85jSPDTgEZmhVAc+upDK02w44Y5u6t7ttj9dsRnLjdKAYnxncq6g5kGuXHSZjcGMOdebLZ D5Iz4f/HMYrCrhQX4nQQYwCYwqMXOA93cl4ECqelenOlfQLUgoIavMK+X8DWE0sclhGOUPW+T Eq2NJ3Zk16j5EOIGPIAZadTqHaZwiI/R33xbQQ/vswFJ+X7PsZtu2P63pLpep240mcq6zaucX KsMQDfcY+dBpdjzhkW2uPhg0qIyF6d7e2Pf+PrpRfQup6tKwseKbRtgGcwpEnxHC/sX97weNW XtOFcAGz5pkW2YFp9cxNG7PyG8ABJQnitfCvWiyPuDhESS30YMRaJVTiF1kL2QVT/XqtJId8M rHV6Y/LOmLeFHZ3a2GDwoGi6KpFF1hvfAYEcdhNOo19mxHxMBLaJrdqu6rSpAkFu26Ebjgf3y sOSSRtyGPe0DzvLQ7Qh/Cjjqv2fV+Ru7lm+dhW2mJE0FDgE5j/0jLYU1NRAWRDzMhTW6LJgGF 6Vn31f2ZizJAF6HSuWBmb8tLVG4aoNCIeBvAMG20sSi6I4a1hocSEgn0lDPmFdrkORK5NH7Ve MTNl7bPyK3fpar9u0rjXOVHmBWHv75es7vDbRTWJklpSF1yIMcoBuM78ib1YOxIesZRlHYIrk oEnKzgQ0uq/eUP6/OiYyhsFHUL7vPCURRTMEqKZpc7jS7zVPn6tQX+ncenAlI54LWUUJV4fTx OZrfNq7YDb6QvaCUau9h3bRxbRyNdi50b0upR6LX2gaTJaquCxOgaGbDT3Rxpzb1Siy+EK9ph 6AM42fOWDFN+6pEDnf7EulterunYagFNN28dlxD3vM5FmWx3mU9bf+h1bfKj+ehr+igrgI/M= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740758656158500 No need for it anymore now that x-colo capability is required on incoming side. There is also no need to send it for backwards compatibility since we only support COLO with the same version on both sides. We mark the command code as deprecated and now error out if such a unhandled command is encountered in loadvm_process_command(). Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- include/migration/colo.h | 2 -- migration/migration.c | 31 ------------------------------- migration/savevm.c | 25 +++++-------------------- migration/savevm.h | 1 - migration/trace-events | 1 - 5 files changed, 5 insertions(+), 55 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 2496a968cc1ce709f706c0efe57e4f765f163d3c..8f94054a10760d0f2598f080643= f45f9944cf051 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,8 +25,6 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(Error **errp); -void migration_incoming_disable_colo(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/migration.c b/migration/migration.c index bc8ce64ff5000b0eb634a20b22e5f3e3289b9707..5515be1bf305b40ba0b590136df= 18a53451872c5 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()); @@ -3522,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 0353ac2d0de819b6547a1f771e6a4c3b8fb1e4ef..07b26702f9102c2d93ff8745467= 2755f54c33fdc 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -90,7 +90,7 @@ enum qemu_vm_cmd { were previously sent during precopy but are dirty. */ MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream= */ - MIG_CMD_ENABLE_COLO, /* Enable COLO */ + MIG_CMD_DEPRECATED_0, /* Prior to 10.2, used as MIG_CMD_ENABLE_CO= LO */ MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */ MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */ MIG_CMD_SWITCHOVER_START, /* Switchover start notification */ @@ -1092,12 +1092,6 @@ static void qemu_savevm_command_send(QEMUFile *f, qemu_fflush(f); } =20 -void qemu_savevm_send_colo_enable(QEMUFile *f) -{ - trace_savevm_send_colo_enable(); - qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL); -} - void qemu_savevm_send_ping(QEMUFile *f, uint32_t value) { uint32_t buf; @@ -2403,13 +2397,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; @@ -2493,7 +2480,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return ret; } } - break; + return 0; =20 case MIG_CMD_PING: tmp32 =3D qemu_get_be32(f); @@ -2504,7 +2491,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return -1; } migrate_send_rp_pong(mis, tmp32); - break; + return 0; =20 case MIG_CMD_PACKAGED: return loadvm_handle_cmd_packaged(mis, errp); @@ -2528,14 +2515,12 @@ static int loadvm_process_command(QEMUFile *f, Erro= r **errp) case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len, errp); =20 - case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis, errp); - case MIG_CMD_SWITCHOVER_START: return loadvm_postcopy_handle_switchover_start(errp); } =20 - return 0; + error_setg(errp, "MIG_CMD 0x%x deprecated (len 0x%x)", cmd, len); + return -EINVAL; } =20 /* diff --git a/migration/savevm.h b/migration/savevm.h index 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 Wed Feb 11 04:20:03 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=1770740643; cv=none; d=zohomail.com; s=zohoarc; b=Bt59J+lRWe76X+NGMCKyvOOMNIuroEPT/m/50Y6bQVgJKMJydGUPNh3mGQ8LC3NiIh6LO0kgfk/1dxtCMpM1bChOPCJkEatt+zgfiAxR6JlAJL54oOXMSWo66/8E2ZMPG1SZEeWVujPVi8ZqD7UjV8B9n7hgnoXnT9Obwx7nntM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740643; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; b=P/M4P/2SBu6M0xU+WzEFEDr52YcaW75txczZ++7aAA/09MrwnmYFA5/1zms3TSag1sxUoP92MQmt73J1VWaZpr2nWnr5izqd/vvOVfBtbQ1yFdQq7XeC8fi5H56uuJhj0J3+kqbcha8FGdMRlV4DVprgt9MkZHF+STwLMQsZP+k= 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 177074064324889.38598474639105; Tue, 10 Feb 2026 08:24:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWS-0000hs-IM; Tue, 10 Feb 2026 11:23:32 -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 1vpqWQ-0000gW-Tu for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:30 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWO-0006wl-QB for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:30 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mx0Ix-1vZf6m21Bz-00yS7I; Tue, 10 Feb 2026 17:23:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740603; x=1771345403; i=lukasstraub2@web.de; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=BjDJ5Z+UCLreJLsUcQkTuq7Xslz7BIJWevG6ONPT4qxDEH+r6HXcIsNZfk5oNLnm ja3ReEwWOlnqnCUKsH/wb4nTjLn57uowFGN+tJlozC9rYhp3WcJHdkGSqvuy2ge9e e8/7Dh6uXMm21YVaNW2a3w8MFq133nlJ5uG++caGFo8TMGYQ+j+YdA2U1K8VOxvgy tB1Kwf36WGg/8d8zAD724Epq40rovgixaPxGDh9/A1Ql/vTejLejYzIinNwWuUld+ 1RLzQ7Xng2MVAjg7hAsKmUlhRJQ4Y0w/bC4GFLUQ7GOMeaxnLfbM3WXCJYbHjZHb3 IKpMUykPrGzbyJS4ew== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:04 +0100 Subject: [PATCH v8 06/17] ram: Remove colo special-casing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-6-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=lukasstraub2@web.de; h=from:subject:message-id; bh=vR/wp6SYVr5uUbTS+XPqPG4RkOoroNdE8dtNpsOBphM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3BiDi+NRtgYxyWWvnTxY0GxAP/z2tiZWWc uHLOSMVhA2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WCCgEACFRe5CJoqrsJPC7qPjT4YWkZJQ2GTo+TBilEI2OtzxkJ9aSCeh2sSPV78LMGDbL4Ok7ki 6oN/tZqcHcJeix8bQLpoRCzylpeoxkvAGkDeNpHTyxkZqi+UKHsBii/8HeCLudRIfYRn0XrilXD k73OHSZiz1JkLzcLb/rr8ABXGjCj3lKgpcTpFVyLqpJp8SDhnnjoin+jm+vbNRI+cD4+9ik1cV5 ZxK80ZL2Rrt+8am95b12JK6QJvZ1MkFIKROK9wzwg7vUJj9dJ32Y1KVyOrIc2TuCIC4f/cG3Af7 LfPBXg0bjp0PcUU7vFwAvFZatJmNojejWEusPur6jU1IhTJOKITyW0B9MEgY0Lf8UYdEI+rapWf Uf3/W2dlHZTb6qHGKmSfyACBpw+8X7kdu4kuUDm6d8S9jpnew+iMV564le+FQSuyWiIKkf1OMEY zHIPWtJ4vIdE/5E4SiMEVKrWjfMLCBlhmEt24sFQ8z2SP2qu1BdTrmaseyhFZ6Y8y3TGbB8JQNn L+yulymJmCanHbWGdimtBOM7TVK/nDk0rEK5QkgCpAv7sbxTo8S9Syga71pNE0TKX5cQW5wYhvp 6syF2F8/Ppqb67S9QnTagg567+nIcRlGN24nBMEYk9TAQRY4eD75vTACQ8K2W2g093JHO4RiXi4 ceLaDpH38fecFBg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:SBr0nSx14pxsIr/FMZ9dvV0Q7PZMhD9uf6GyjYVfayOLFeL7FCN 1iEa/WnaMvTYs26AOr6ZY+GcA/TisC75U2zgkYuUxgF5fMtXJ322mct7SDSg29rxzbHbIaO n1ZFJV9NL5yKWn8vLgPF7d/gVeUfFt9RsJ4jpHbk10zUqx3MxhIVx63S82+SBUoO9fcA5LN w4e2HpdxCuUDJDwFjhpOg== UI-OutboundReport: notjunk:1;M01:P0:nJXZ2RiYSsw=;thWb8+6SIEJ5b52mgEbATsKCYTI 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740646042154100 We only enter colo state after the precopy migration is finished so this if is always taken. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/ram.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index aebf77aa0b861e00516d6f1090aebefdd0d97e54..979751f61b30d6c4b878866b501= 1507e7c519176 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3116,12 +3116,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque= , Error **errp) RAMBlock *block; int ret, max_hg_page_size; =20 - /* migration has already setup the bitmap, reuse it. */ - if (!migration_in_colo_state()) { - if (ram_init_all(rsp, errp) !=3D 0) { - return -1; - } + assert(!migration_in_colo_state()); + + if (ram_init_all(rsp, errp) !=3D 0) { + return -1; } + (*rsp)->pss[RAM_CHANNEL_PRECOPY].pss_channel =3D f; =20 /* --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740714; cv=none; d=zohomail.com; s=zohoarc; b=aAkl2YpbrrpgXYSeRwjjv9Qsgn2Laj/HWAwCKZh2pdC6XPnU2L4toYng1AyAq7spfWAGzBtOJeHYlnzg+sLA7haohHvRK7ezkbPhcUl5VwH74J2R0VBwVBVMQvYdTKpkFsqKi4gxovRF49qGd2fzRi6exNpMm8eCG749xymptJQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740714; 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=m9jS++yDEqgI+kSdUnqnzbSCcwcupwkJOg6D9Zj4g4Y+dPhg8v6aobQfyV+55m34/OO5b6CnE+CiJMsaJQFQbIT5X4m+0ScbgEV+3JZu3pLQvOigDgWV6m7KCyRO/cxGzxhtTLrkuUelkyT9VSU2Ue6nbb8yayxvxVQohTgR9d4= 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 1770740714002839.0260765447723; Tue, 10 Feb 2026 08:25:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWc-00013u-J7; Tue, 10 Feb 2026 11:23:42 -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 1vpqWS-0000hw-Dq for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:32 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWQ-0006xj-Lr for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:32 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N2SL5-1vfDXw31vr-013yQi; Tue, 10 Feb 2026 17:23:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740603; x=1771345403; 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=EPLwTehrelpiPf6IXrMYwJmwYy0EEKVA2aCPBnb9Ru8vkH9xxmMHoq9Ip72Ui5AP PuumpljEStP2KaXRJ1ZQKtn7e6KV8FG36vC579YmB5AgsGRD4bXMNR6tBZXu7oXQw nTsa4M3Q7hZ4RJcGn8D6c+fQIJhgXgfdaTvHrzI/nOEGrnoayfyAYru1nOB97KYtt By7hlCfM1sDPS2/dWFVw0Nth/WgIxUW0UcpTmfdip6edc4iG0dmtdu8zouEOI54QT DQD06EdJElfXUjv6JdLG8h8psXmN/8ax/6dLMfG+aoaaSBo3rEQ509ks8N7Mwg+WH dlGHzX6zqs1/lZL88w== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:05 +0100 Subject: [PATCH v8 07/17] multifd: Move ram state receive into multifd_ram_state_recv() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-7-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@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/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3Sh/lwPvrWrorWUOso6xcnQ72ofazvdurA djD9CzE5haJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WHRGD/9CXMi8q78EeXn7OMn8ATLTKD60u1JmEMbMgjGySi3gRphmdnYavboCd8+80ZBZUZtOjtL D8EDIYwzkNQDtCfd+69Jw3F2mIXGDHaqpHIsTH9TSrDR64KAOWHpehL068pWw1fzTMJDYieW581 TimFapjw3ApDjuzB+2tWpbAApQ2qU8d5kDr37XQV0S8NiK3DqnHuQY6fVRPSeUfYiLDnWu0rWSb 3+94GgP1kUmjLLsjOvXFVDv2qHGq/0ylzdMpZ7msFxDNMc5EUbssPBI4XLvTYhcKZCcJli/YMZW byZxJ6pRh6WBGBmgFOF4+Pd0rCoUtmqlQGTwp9fojRn6+4IOA80uPMEAyI8qY0CqnjkJdRsjceE XDgpI/HhvI/o1jWKwaEE1o9+eAlYuSxDtgX94f/rEYapu/Kkm8+q0+T7lTFUMXgPiS4n4mB2ALW Vcg0QcSYIcPfRTQ8RVa3g2isTdvFukOyvEjhSpBCf9wmey3aUyohUKdsjk2zfPjANrG6kKpuVOG CjXPmayRn7l3z3eMlbAGb/BTGfniRee7nutmM6qs+y0BbqKrhv4lIpMptrTMUXf+nFFCtY3r1Ky azge4fPkkW3bu0ZoZqjqrLYnkTDM8+2XXpwoS/DUUfH3gFJJL3Izx2IAGBMLPUTq6Lt5Y+33t6K 1As9+28/K1tO7zA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:nf0vIrILwvaHV2V9NoTkB3q3KTIh4gKF/6SUJkGab6SKP+zO4Tj Sk1UEdqGuJicbapUgzEdFIxWiTBSSf1idV+dMYnQtRi+Vduryovv14krs4FPtmCj58eH60s f23BQLhBC+yFjji8VGZ0DrqNakuSynw/kuYO5qbAeIi1OIoAWfTo58v2ymsuElNgs5LsXkE YpWwU3RspnvOz7aCx+pDA== UI-OutboundReport: notjunk:1;M01:P0:O7c1YQvJKKc=;Hw92uIiZXKZcGmfY+r4eLxAJLtF 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740716293158500 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 Wed Feb 11 04:20:03 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=1770740661; cv=none; d=zohomail.com; s=zohoarc; b=CqlmKXy9FNg76Ms1sw+dnJWMv5W8NmoL+LvoIYtcm2VpyMhsamPA7846NVnkoV0Hs3B3hySHY3fTIT1j9t1xvyc1Mimz9Oz+LQNXv/T0OkZCY7BdleUb8OUux8Ty5hQ2oqpRdvZKsH3VrnjB+Udgrj57kh3tuirPWRga70SVXTs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740661; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EAb9TsMuWPPA3CZIfZr/ezHEKFwjsBr7eMTjDjKG9rc=; b=E58qdP+BW7iK/Uz43n6wEMhlpBcpWOPZShn9KvhZvitiUwuTVjD/dmtWF+RObQ7pFnN3i7fxKfEFoV2WEPGNxuPDL0uVvbhYxCtdvkVgB9FsIiN1vkEitwOBnSME2iP46cd/kBTtrKDMUSPTYK4krUQF5fogmd3UCK2MHAJH02g= 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 1770740661161510.5255295707011; Tue, 10 Feb 2026 08:24:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWQ-0000g2-Os; Tue, 10 Feb 2026 11:23:30 -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 1vpqWN-0000fK-Gi for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:28 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWL-0006vp-EU for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:27 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MKdLM-1w6GuN3oq4-00Kz1n; Tue, 10 Feb 2026 17:23:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740604; x=1771345404; i=lukasstraub2@web.de; bh=EAb9TsMuWPPA3CZIfZr/ezHEKFwjsBr7eMTjDjKG9rc=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=CogfOhq3nv6AHZtb6tIwsMNLbZcfH8f+57bfeVhtyPnT/tz/6ZbvmShqV18Ea+Cg 7qs8Hi/aZABYJr3I3LrHkhMtFmYohhdmLcmp0ohxYxKnpT91OEPQKppe5gEr/gNWa NGQ917IA4G++1ZdjrXdloptIep8ktsZ5+qfp8Z6d9ecXVSlZRSjIM+gyUvOCT4xuW Z24lJ7lWrLTZUswHs2qUNei00sJfVMb0jp/k01hENGaDJo0No83MghhcMRS68kumH YHNjz1+QJnlZDsy6FZkoJ5JxBo5T6qKpmKi0s51ttc5PDZemGiZ84UfETjx61MrZh XC+ysGsG+RRwmwlFSQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:06 +0100 Subject: [PATCH v8 08/17] multifd: Add COLO support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-8-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub , Juan Quintela X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7788; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Abosr+xKE1nTrw2cz/Hd1u4moj2pYzHV7m3+DIZpG0A=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3akiO4XPayVO/ZeW+Imda47QqVoZbdv4S1 Au5/P4ktwGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WO4hD/wIQ/wKugs8g7S4QjiEf+/UDTYmNf2JBVsbtsT0Rq1bTLdTfP6M+dK7AcSw6E/55+cRpkp TajilrDGRGONMy7xJQrbQeLMhmXwqFRf9kwJhXWitZZDBCQzpj+sEN5y4dG7aO7TPawP2RExj3k 5cHocQyUadW1nbv62S02cyRCmJNGX1gqpJNgTVR+4xFruM98Nvm6JJUX8DNqrLF/XXQOyTR28YF V2O7T788JrUTHdjTg9whCg2ymJ74ZR0vIlvpYobnWRQvAfmguwRfh8v6S2c2+4OAxz55E3zvAuv Dj1NqEt9DSz+knDxb+WMRPgIgemhlUPHQnNZIzDvH7apazX2KbXrJas6Q38bb5A3Bpneqh/QSsz e/7sMuiJKA9AKLIJ3fZZrXVAB7wwPnyl+wwTcGygFpK4mnlpPtK5KLN6clr4JIvzS1r5Ds8f9CY /8NgIpSD4iEAYt23tKMaxSDFYkWapEMG0ccjcUG7+ZIs3hE0h1dxXxEZpROI9UeZilrrTmWOw9m ez7ajdIyV2BeaW9vlSvNIAfgSHS3y5q2ToJqxQqaeIJQwaTdxWhcuM4QksMtkopchUGDgW+WiEt eS4p2+vRIk+VxWs8Jo9eALL9HO3WBplhNzUkz/2Mxp2pfRiSqS7plKNgWFcrM1SxUwi3eqNRKFG gXKpJPg4BnOgVNw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:UKXQebaua0HOH98GwroeqaS24abTCJXGcbFuqsGJ/Xpy3OZiZAI ntepgYU5w2fCpprUVq8p+jkSIE98NcKpPBCM90ydANPQHsGJKK+Bt8az0ATs4fdgqg6zOC9 8MkshctdpC9+xn6IybC39ETXBN5WnSaDnETVk3SKQ+x21Y0S9VECO8EIAVio8ZD0qBEitra YrtsnLVEQlol/1omdp9WA== UI-OutboundReport: notjunk:1;M01:P0:dN42Qr5TSWc=;7ONqFroKBxjr7j5WIU4jfAlBlmj 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 YwMkw9v8= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740688128158500 Like in the normal ram_load() path, put the received pages into the colo cache and mark the pages in the bitmap so that they will be flushed to the guest later. Multifd with COLO is useful to reduce the VM pause time during checkpointing for latency sensitive workloads. In such workloads the worst-case latency is especially important. Also, this is already worth it for the precopy phase as it helps with converging. Moreover, multifd migration is the preferred way to do migration nowadays and this allows to use multifd compression with COLO. Benchmark: Cluster nodes - Intel Xenon E5-2630 v3 - 48Gb RAM - 10G Ethernet Guest - Windows Server 2016 - 6Gb RAM - 4 cores Workload - Upload a file to the guest with SMB to simulate moderate memory dirtying - Measure the memory transfer time portion of each checkpoint - 600ms COLO checkpoint interval Results Plain idle mean: 4.50ms 99per: 10.33ms load mean: 24.30ms 99per: 78.05ms Multifd-4 idle mean: 6.48ms 99per: 10.41ms load mean: 14.12ms 99per: 31.27ms Evaluation While multifd has slightly higher latency when the guest idles, it is 10ms faster under load and more importantly it's worst case latency is less than 1/2 of plain under load as can be seen in the 99. Percentile. Signed-off-by: Juan Quintela Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + migration/meson.build | 2 +- migration/multifd-colo.c | 44 ++++++++++++++++++++++++++++++++++++++++++= ++ migration/multifd-colo.h | 26 ++++++++++++++++++++++++++ migration/multifd-nocomp.c | 10 +++++++++- migration/multifd.c | 8 ++++++++ migration/multifd.h | 5 ++++- 7 files changed, 93 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 356e3a7889f9ab45f002f165112322e6fb5a1967..e6e711ac8a333bb9bfa0d75c2c4= 2dbe74b8523f2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3859,6 +3859,7 @@ COLO Framework M: Lukas Straub S: Maintained F: migration/colo* +F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: docs/COLO-FT.txt diff --git a/migration/meson.build b/migration/meson.build index c7f39bdb55239ecb0e775c77b90a1aa9e6a4a9ce..c9f0f5f9f2137536497e53e960c= e70654ad1b394 100644 --- a/migration/meson.build +++ b/migration/meson.build @@ -39,7 +39,7 @@ system_ss.add(files( ), gnutls, zlib) =20 if get_option('replication').allowed() - system_ss.add(files('colo-failover.c', 'colo.c')) + system_ss.add(files('colo-failover.c', 'colo.c', 'multifd-colo.c')) else system_ss.add(files('colo-stubs.c')) endif diff --git a/migration/multifd-colo.c b/migration/multifd-colo.c new file mode 100644 index 0000000000000000000000000000000000000000..f160c6543414d3e157a444d613c= 96df4c5f0e602 --- /dev/null +++ b/migration/multifd-colo.c @@ -0,0 +1,44 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo implementation + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "multifd.h" +#include "multifd-colo.h" +#include "migration/colo.h" +#include "system/ramblock.h" + +void multifd_colo_prepare_recv(MultiFDRecvParams *p) +{ + /* + * While we're still in precopy state (not yet in colo state), we copy + * received pages to both guest and cache. No need to set dirty bits, + * since guest and cache memory are in sync. + */ + if (migration_incoming_in_colo_state()) { + colo_record_bitmap(p->block, p->normal, p->normal_num); + colo_record_bitmap(p->block, p->zero, p->zero_num); + } +} + +void multifd_colo_process_recv(MultiFDRecvParams *p) +{ + if (!migration_incoming_in_colo_state()) { + for (int i =3D 0; i < p->normal_num; i++) { + void *guest =3D p->block->host + p->normal[i]; + void *cache =3D p->host + p->normal[i]; + memcpy(guest, cache, multifd_ram_page_size()); + } + for (int i =3D 0; i < p->zero_num; i++) { + void *guest =3D p->block->host + p->zero[i]; + memset(guest, 0, multifd_ram_page_size()); + } + } +} diff --git a/migration/multifd-colo.h b/migration/multifd-colo.h new file mode 100644 index 0000000000000000000000000000000000000000..82eaf3f48c47de2f090f9de52f9= d57a337d4754a --- /dev/null +++ b/migration/multifd-colo.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo header + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef QEMU_MIGRATION_MULTIFD_COLO_H +#define QEMU_MIGRATION_MULTIFD_COLO_H + +#ifdef CONFIG_REPLICATION + +void multifd_colo_prepare_recv(MultiFDRecvParams *p); +void multifd_colo_process_recv(MultiFDRecvParams *p); + +#else + +static inline void multifd_colo_prepare_recv(MultiFDRecvParams *p) {} +static inline void multifd_colo_process_recv(MultiFDRecvParams *p) {} + +#endif +#endif diff --git a/migration/multifd-nocomp.c b/migration/multifd-nocomp.c index 9be79b3b8e00371ebff9e112766c225bec260bf7..9f7a792fa761b3bc30b971b35f4= 64103a61787f0 100644 --- a/migration/multifd-nocomp.c +++ b/migration/multifd-nocomp.c @@ -16,6 +16,7 @@ #include "file.h" #include "migration-stats.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "migration.h" #include "qapi/error.h" @@ -269,7 +270,6 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Err= or **errp) return -1; } =20 - p->host =3D p->block->host; for (i =3D 0; i < p->normal_num; i++) { uint64_t offset =3D be64_to_cpu(packet->offset[i]); =20 @@ -294,6 +294,14 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Er= ror **errp) p->zero[i] =3D offset; } =20 + if (migrate_colo()) { + multifd_colo_prepare_recv(p); + assert(p->block->colo_cache); + p->host =3D p->block->colo_cache; + } else { + p->host =3D p->block->host; + } + return 0; } =20 diff --git a/migration/multifd.c b/migration/multifd.c index 332e6fc58053462419f3171f6c320ac37648ef7b..220ed8564960fdabc58e4baa069= dd252c8ad293c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -29,6 +29,7 @@ #include "qemu-file.h" #include "trace.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "qemu/yank.h" #include "io/channel-file.h" @@ -1258,6 +1259,13 @@ static int multifd_ram_state_recv(MultiFDRecvParams = *p, Error **errp) int ret; =20 ret =3D multifd_recv_state->ops->recv(p, errp); + if (ret !=3D 0) { + return ret; + } + + if (migrate_colo()) { + multifd_colo_process_recv(p); + } =20 return ret; } diff --git a/migration/multifd.h b/migration/multifd.h index 89a395aef2b09a6762c45b5361e0ab63256feff6..fbc35702b062fdc3213ce92baed= 35994f5967c2b 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -279,7 +279,10 @@ typedef struct { uint64_t packets_recved; /* ramblock */ RAMBlock *block; - /* ramblock host address */ + /* + * Normally, it points to ramblock's host address. When COLO + * is enabled, it points to the mirror cache for the ramblock. + */ uint8_t *host; /* buffers to recv */ struct iovec *iov; --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740663; cv=none; d=zohomail.com; s=zohoarc; b=QZ28oezJP7+ESthW9RFa0zsVctvTIFhIsMt/2qCEPwmCnut8JVVKDuu0PZ6ZgqhyjX+SAr6Z7uovHLluyxeo9lw0CtJpyhZlUehg61aHpgVsRSckWO9+DewFEby1kJMbZ/+9oUxbN/uPgWHuhhns/3DsCN9Ak4Z+8L+CeUAF++g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740663; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8Sh4jCsixGU/ngEDSP7iq4j7Ehuo5ihlh5H1iguY9wY=; b=P++sPsYQ/HEi9LzG08828ixXMGYjZUQ22tbR8PuFVFyA/sP0d51HFoSktjZnxT4Xf/1aO2A4jtK8Ap0iOjZSjGkJykmsJ1WTpnWOZiqdqZqumlBA+ORWvFIR5yUjWFebPciU6Igym0K+w3SVy5c7lwpgaih1/jKQgJJGlr6iF+c= 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 1770740663260919.7330363612188; Tue, 10 Feb 2026 08:24:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWV-0000ne-Sc; Tue, 10 Feb 2026 11:23:35 -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 1vpqWR-0000hL-Ib for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:31 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWO-0006x0-Ql for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:31 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N30ZN-1vflmD0OR3-013QSw; Tue, 10 Feb 2026 17:23:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740604; x=1771345404; i=lukasstraub2@web.de; bh=8Sh4jCsixGU/ngEDSP7iq4j7Ehuo5ihlh5H1iguY9wY=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=pAOEbS+MDX6x4f5sD5f3yfdBmRkcgIkt5+6AliHfed0SUaq8IvhwpGXNalftPWIy dWQ+l4ca4jqZkIoca8q2yU/BD6rMN5NnaIFOGTcWAYGJbx4SLK4E4gkxUCctLLRF9 S+h4rg/tz3onNkpw5Ibx/a+jXdZjelxfU0/zHjGImIpG9EDuvfmlVLlfib1MyIDuf 3hoVJMp2/zePHREomRT9uXnMmf4GKc84MsBcqJ2l0ESgk6ccKlzSRh7m8+6n17GTJ Ib+wYOpRiz0683Tmes7O1isPGzGo5JuMpdA/gWB01azIomfzYuooGJa+AaFGUldnh kXB+KAG4ObUGBHmqhQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:07 +0100 Subject: [PATCH v8 09/17] Call colo_release_ram_cache() after multifd threads terminate MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-9-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1345; i=lukasstraub2@web.de; h=from:subject:message-id; bh=CrmZ30ApIHhMHmX1e6HZ1CefluvR59mmAs0+FI/64Pg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3idwnSj8UUUe71/7mcY8caWHXopw+6+2BT UxKfdtMbc+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WKYOEAC0c+Exrw6HEZw/2FCNqJTnqZoVcvh7oB+5Trkdz02+PzHDk1jJk9FQB3ldk9qlWHZ2374 iNHov0DEKgTu7P2/WPrdD+JTH6Tfprnk5fwW6cVaNUkvsRzi9xkuFpNOTcY2fPHYPgIXdNClGPH /GQfZVrfQJzK0dDwOCM6GD9cNI395HGlMsItSV6VVKY5M+gWMTmal4HHN/CefN22vCvP3BITpLo eNAUsu8mqksMQQ+fOxcuGXHL481LUEJbcKumNM1ufMAgg8jEXoWnVy0RvviRKas63MeeE8xOXv5 d42fRm4rf/MbKswbe+oPnQaZpNj0WpVxIx6wIzknAQz+5WzLpjR6GRvxdT7dqRsGDRn+FRQDKRY haBxm5e8rTQFE/e9VI/+Gk/rOSPDpLGZsnJ+Umg/SKEgoAXjjOx1Vx/K4pUqAqNCseTLEmGSM9C Oj5b3PdhNn42pHq1cbm5B00awYZS1o4jK62F75vpSrwr8sP/9QUQGJsznHn0ANB/x7zq5bkljmB ZWe7JOAGXhAb/KDbPcfm9NT/J6WU5BzZDzACpOo4JuVfhuOHMdSaHjS1BDe5h+B/oQCRNBZmf8t Y6ou52Fzs71DxRBCTHgnjeDZlwkluNry/Tgg0KtMz3ujMJTftXZjAN0G+1FEcXZWJvtFDaSpgc4 dl6WtJ+76EaEMfg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:sg56Cb/qMNzu+zFrloFUuEzYUxXzPf7ppYCfw+tZ8AoiwkCGPFU vnLTJgAq/Hd/n8mGWzjhbK6InQKF6fN9ZEaujGbd0EeppU2drdsrt9vLW1R8S21+N1t7EJo EejIEGdQ9TjWTZpstU5NTm3i+7AeBuWeypy4HfwpAEI9qgEgEbHYRVAdd3jGcvoc61kjh1f kqpTJxPXAqVZWwrlYEG+g== UI-OutboundReport: notjunk:1;M01:P0:2cyo8AYfCRI=;slx6fFF4clZiQh6qeOwVW5zW945 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 40qsl1FSQH5wgzx8v8wRbtPdUkbF2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740666111154100 The multifd threads still may access the colo cache, so release it only after they terminate. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 3 --- migration/migration.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 8dfd39b035c48590fcebeb20459f01fb37fb67d1..d3534d1a32ad82f02101ac092eb= f818a0caee6f2 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -947,7 +947,4 @@ void coroutine_fn colo_incoming_co(void) /* Wait checkpoint incoming thread exit before free resource */ qemu_thread_join(&th); bql_lock(); - - /* We hold the global BQL, so it is safe here */ - colo_release_ram_cache(); } diff --git a/migration/migration.c b/migration/migration.c index 5515be1bf305b40ba0b590136df18a53451872c5..9e3f73f27766196ea8673bf9a58= c97d5b8b1672f 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) * BQL and retake unconditionally. */ assert(bql_locked()); + if (migrate_colo()) { + colo_release_ram_cache(); + } qemu_loadvm_state_cleanup(mis); =20 if (mis->to_src_file) { --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740651; cv=none; d=zohomail.com; s=zohoarc; b=Hx+N1eYRzLuPQE0lXytduCJDptZ/fANxVxJ573iwn8fMzF+Lcfa/0HVIMkfbhWlY+QH3V0gUOzij9BU3Yjkb8c9q/ZsWU4mFtQSm0dolJqlYRc7TzJeEmtKH/mqDCV4uJBaaaZNwEOGorRpWHFuveKetRAEdNe7z16qC+iLsqaw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740651; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jJiGbc0HKecovNYE7s40yC6PTgehIGA26Ay31XHpXjE=; b=i4r4vAEizuaQta7AyyFSyWtZbWLcyhz+gYbvxwKv7joh7twKETaSlP+/lcoRQ9pt+bqwnmYiQjchKmFq07mEyeXqgRMhAXbOuthB/Qd6HEeKYxDJzlf4xsBT2/ihH1++OEQwaGpIzIy285YDExeBeKCr0noZDskvma/dOWWz/Bo= 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 1770740651446729.592041474636; Tue, 10 Feb 2026 08:24:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWU-0000ig-GF; Tue, 10 Feb 2026 11:23:35 -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 1vpqWR-0000hJ-FO for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:31 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWO-0006wu-Qi for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:31 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MeDMR-1vH3vv1B5j-00bGOW; Tue, 10 Feb 2026 17:23:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740604; x=1771345404; i=lukasstraub2@web.de; bh=jJiGbc0HKecovNYE7s40yC6PTgehIGA26Ay31XHpXjE=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=MooBmOjGYtQfvEqbm/v2YcH7mznI4S72Ikw+jPpBCA2UyBptVD5w8wopwWjWnFMX b7SKP3CF9aK7OGuMhCg+hLQZhLIkdgzEn92xrSzK/wqV4H0SMd8o6R/Rz3rFwhfCE q5YGaqbLGifzCZ1r+3got+QhWlV1Q0MCAQv9tXzdza+fv8NB8DrY0S68et5X0gPxx OaZ/H6vX9Ak3L4CoQEbdOGE8srzihF0a0LpYtE8O4zXX5xLctPLaK+06vMXjNZ7Q/ v61HUCNriRidRCaOWeOZyhiBst1yXBieQXMx9Q++tWBU+rT23YH0NGhZw02l+E7d3 9uDTmkoYJxJC19nqWA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:08 +0100 Subject: [PATCH v8 10/17] colo: Fix crash during device vmstate load MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-10-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1224; i=lukasstraub2@web.de; h=from:subject:message-id; bh=8iGx9SD/mI/gEl+YOmte9J4DH7w8mDTmFlt+tTKua3E=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3myYUAOwYYjbkbANcYKR6IUQO0oRtSmijd FPMJXHxK6mJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WNKYEAC6RTLUYGKX5L8SpVZjgKahsNoFSin4cQpcMuVnB9G7W7Tpj8nDRpFxNMGfp2AfxhcwA3t BpMniqbwdDU+OP5afJ5twm5/lt668VZ9kWRBalloM+0b6qaWHkI65KCZyC9IJnGcMrWEl517G1A CytGQkC5VloZ1mF3lfxNf/LEAwDDMljLclYkIAMJJBLzvKT23CqE1cf8ATLwA1h97hvDcreGUiJ jmcdpK2UzRps9oiHcvC2prP+jrwtCdR5eBrTnBNRgGLeP/7ETCIoi8vMBXeJJaPG83nfZIttiPJ eyBpzjqtYMLbCMVZ+PSejnpPVk86vvhBUutd61Z7sekcUGb1u2CMrLfx7SxYuzM27OY9HcGrpue 7a0fQ16t003hKJxIzqZZk7RI6SYjMqxeBA7EFSJmuwLGeg8iGSdm2chr7JQkfL34WXmR+Y+foAh xYLfUimOxgsXoCFqeaADe2Im+XNrk6BPvdM4I87if4DZG8+/iugL6qXhy48e07EtO7CGT9nMXEh IJvwi6iJPViOjoCr8tQeBBMDjSPKxy+2TVKopprXPheoMFwfSyaB5JNwJm0HVR/sC6ew5QRrt0q D5BtaYHCM+b2Dfl5dN4xhAjb3ETfdDWDKIhxvKN3ebKAYpAyyqmRuLVQ02ptqhtO6Y+JQPI3QOM keRAib6JN2dvAMg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:H9HcH0gp4Wb+Q/5kNTxloR+8Q2LZ3apacoaf3hV//ao2LiWKuRt IXLVP9Q8YOh2//flqnsH0cRRCBREVgf3RUKG40psCW2MWXzHQjud6e7dAElhQ5ZaqE1vwGJ nIyaPJfm0Jovk74D/HsbRZh1PLdkE9mCEwKfyIlomIexwH9SQ3ZCGzfnXoTqz7sNjM8Vd5U rLe7eb1Mq5Y9fFomojolw== UI-OutboundReport: notjunk:1;M01:P0:K9vctchckyc=;L4xgX0IssOWVRIVqaYVopZBU6dh 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740653932158500 With colo we load device vmstate during each checkpoint, on top of a vm that was already running. Some devices expect a reset before loading vmstate on such a previously running vm. This fixes a crash when using COLO with Q35 machine. The reset adds 10-20ms overhead to the checkpointing proces in my testing. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index d3534d1a32ad82f02101ac092ebf818a0caee6f2..afab8eeb14d09c1db9b235121c5= 845b11a80deba 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -727,6 +727,12 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, =20 bql_lock(); vmstate_loading =3D true; + /* + * With colo we load device vmstate during each checkpoint, on top of + * a vm that was already running. Some devices expect a reset before + * loading vmstate on such a previously running vm. + */ + qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740756; cv=none; d=zohomail.com; s=zohoarc; b=cSLAG7UA9+PdG1EU06wjnHGy/L8u/QwglLQ+Q1rEraPWrgx1FSEfVzXrP6Tfh57pr3GfishghAiViIBYkKOj3VumE/6sCmlBio3wSREw5dRO1MbCKWhGZnr5rbvJ4Y8jWwB1WyrWWIyVuTJrtEimOvWYZ7frf25f9DgeGtAtkzc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740756; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vDwo5voZ5MxEwVTCWV2ZsNB7oCoNMDxztsKzH90Jjok=; b=BCSKQ4/rCl3Wz3B9bGpaLeoHvOsLn18m5HSOqc1jKB2gn1SV3T8pNMotJi7X6/667SMDRnA1jBBeqlpLEHyWongsotlC4GYQrpJPvRdpVyBTf+xkleHMmuE1wqKLk5c8zkr0rrwQzL2bPWYercD1vR1Oba5ejKx0o7wnTH+PE3o= 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 1770740756680335.99916916651955; Tue, 10 Feb 2026 08:25:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWd-00014N-In; Tue, 10 Feb 2026 11:23: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 1vpqWT-0000in-9K for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:34 -0500 Received: from mout.web.de ([212.227.15.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWR-0006y6-KX for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:33 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N9cHJ-1vmMPp20Gb-015dOc; Tue, 10 Feb 2026 17:23:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740604; x=1771345404; i=lukasstraub2@web.de; bh=vDwo5voZ5MxEwVTCWV2ZsNB7oCoNMDxztsKzH90Jjok=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=eHAiYX4YOTsLTf92OKnLQPiikcEPdKKpkAoVnMug9PBtsQyknaFh+pDfLozkrL2A DiFQvhQWkcjo/YZQybKlrqdTRGM7L7+G4o/1oRr11/zE0LV0XBCeoRq/0aralYIXF a87Wrp4MOsWzSgKoNxfxCkct3DStxQyN35FyaNTTeda6K/6e9F3HzHNApttXwaWnt rDuG84iQxrZMUtizLlLpSRDQ6iALTPW1VPF1IiPYsQ/uHtGDjYAabvcOJdZYkYTpe MNtNn9xn21K6LeiEVacu3+aJG9wNobQgRxnMIDkG5yBjfXHDk2zUhcsbQvf/Wu8qW 8vkZ9cOuhB6qRmw1OQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:09 +0100 Subject: [PATCH v8 11/17] colo: Hold the BQL while sending ram state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-11-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=999; i=lukasstraub2@web.de; h=from:subject:message-id; bh=qckNqe049aOGUPLcO7lqIGw+0pvXh7cNkXCCgK3qxO4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t354snWpTaNESUlC2G7Bpnv4KFpyCMWBGCN Z8EZjkwi+uJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WJExD/9IXTmmPRtMEX0qNtXrf4T2rtbInJcTLfyL6HIHhaZLwP51bzWaf/LLVVnrA2cbPR6HnR7 fnZqTeZcp9EbspsVyT0fzEvvVXuU1kJcy7wf7qDb4YPCSrxR9/UOkaiyvs+IB0GqgHha5U+Q/J8 +LbDYKzilkdnX9cG+FmwMmk+afFRg4kjy2aEpZl0wJbXCe+0PTUKVldTrUIiyjgxapKyvfj7gYt TWbK5ualZFQ2U/7/zwcwkAmSnpPpZWkNe/xY19YD+qw74PRz4Rl65xK8j/0lvz3E+TQs5ikT6l9 NOJgiBqyUva94NhThhT88QAja3TItB+QZiAwosKU/NEC2HusdD38FkAgNfBnzrkmzrHB6sAPcN/ dK8qMRg58GeWO3h5WOiYE+KvoqyAm5BddQD5OZFLlvSfZBYKilp1IIpDutlIoOVlCbWQ5XRvifs 0nd2dkbfVjMLjqKTuNapRK8Gn50ceQxXSJKumhftdHlDcCs9yi6VBGErmcfvJJEarTghzjIamsc pAlfljqCY5+cKF6b7b9O3WkAXHTUMqc9HeRx+pkWqU41ChKnLO2ukagCZ11YDI5bdfL8fykBIBk 9mYZFILjl0KtYzS2knGHY2TIrXNAwY6rovJlor+wzPwTO0Wx6Fh9UVtNNibV4TZX38J53yoEnPL vGX7OnuEH01UVRA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:BHKGGeT5WEzqTdgFbOo5HacKP1PxMh5Cw6r6S7ilnD6fvTLVxbA ZjeWzA2RPfQDzhZK4Od6IWoBR8dMjvJuqUS4H1i8KjYiIHx0hxLhbyT+c1lgKsBJbjJc/QN 9EysFajgNS9+CAjqrzbhtP0sJGAycTWQJFj5S8a+lOe0agbARd+3x3w7IjR47w1eOM+X5dh I4/wQPcyZNkp/3wJZk1eA== UI-OutboundReport: notjunk:1;M01:P0:vsqpnc8gkD4=;Cgivt2DSb6PSz0nPEzVr2koEBmM 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 QJQCR77+esj+4Z+UtK83UOxqDahw7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740759795154100 qemu_savevm_state_complete_precopy() requires that BQL is held. This fixes a crash when running with TCG accel. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index afab8eeb14d09c1db9b235121c5845b11a80deba..74338a59b563846f45621619420= 01889dd6191bc 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -457,9 +457,8 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, =20 /* Note: device state is saved into buffer */ ret =3D qemu_save_device_state(fb); - - bql_unlock(); if (ret < 0) { + bql_unlock(); goto out; } =20 @@ -472,6 +471,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, * to be blocked here. */ qemu_savevm_live_state(s->to_dst_file); + bql_unlock(); =20 qemu_fflush(fb); =20 --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740696; cv=none; d=zohomail.com; s=zohoarc; b=YAgMT5FFO9ontQkN5DXYQW3N4zuzq6MiGN879KJYB3y87XD+cnW/9A1uY6EW1rkjlJ6ZbpL8r4X2R4F3qkqGcONQEoaaCqhHOUEEC7mHnEqj11lJkibGOGUv2PKqORJNrBr1zttDI55Wlc855QpMwfIs4Ik8N7Z7ADjJOXkm1i8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740696; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ye3cFwI/N8c6RqLVFLAQ/1UDDuW4Gp8NRD9ndorrXik=; b=AJUUs5VyOyz1K5FBtGN7ZqlzZppw6x5G2lSqabdtk3WFdXhIBfDC2UL3tRl9OfbO/lGTfiS/AqVlzi1c7X62ZumHXBW2Vx1Io7/a3wA9hnM1hXH42bkcqLJPs1Va+o8lH3EPG4VNJEyx4rYWyQFTqgXPeH+CBEoLQhTGYBl1Vaw= 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 1770740696656209.34621136458634; Tue, 10 Feb 2026 08:24:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWR-0000gu-7i; Tue, 10 Feb 2026 11:23:31 -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 1vpqWP-0000ff-2v for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:29 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWM-0006w0-7m for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:28 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N4vRY-1viFom2ync-010wYt; Tue, 10 Feb 2026 17:23:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740604; x=1771345404; i=lukasstraub2@web.de; bh=Ye3cFwI/N8c6RqLVFLAQ/1UDDuW4Gp8NRD9ndorrXik=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=GQ5nAF0Ei+uITonV7sVPiTC0CS16WwsozIUDFfesjoxPJKIBqzyp1AXXRJaAc8je GoNSZ4vDlawrWw1YzMqei9KOs3l+UHHdA72Zfh/vj6FAMhRW/yliaPSSPMcuhFbUN mvEQUgSfUFuiUR0aYXUSlP4XGaIjMzp8JAGLsuJMDAmSmanEF8H0WtiGVwjCbJGSg 4lLoP+XT9D2+sKM5zj4+MOTa3w+ZG+h0hgRos2PaazFjxdlhLHyt4Qs3ygnCXsko+ zYlYqyeIm2rnvz3j4Kt7rQGfAomxldZ5GgmzCTwZiJYz703+GO0quPwrHwtwDZmOH wFoBG3TISR1TGkmysA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:10 +0100 Subject: [PATCH v8 12/17] colo: Do not hold the BQL while receiving ram state. MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-12-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1457; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Fmqd2rrT7W38mHUZ1B3clf4lPLiROghSZwd3S2hNl+E=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3Ps1v+YjIaKakOw7ARSVm6OI4DM0KsPvlK Avg1Wb7jBCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WLWhEAC0MrCIyQ52rJUUz0nqtQe6oXTXro5I7uUBmQFGopowex/fOyVyyCsVDfdDcjQ1Z40Dt06 m7t6gZYHB0aEwfKjV8jP7zTK13yAN5yZ93tcN74Wc/X5qHdaA5cAYLUlfkOzlD7IYp08j59bZge +in2eTfdbDalMDufWwiEQLcLzjt2evOFjPF68zoxXhDxVdCGPCQtndUvFD3Z0dCVr5VmXqA0Y+8 cBhRRIDL2G9ct/U6zCXX0+CY4JOHmCpF52b12qz8aIjOIPRrLiBKYogWISmh1JeTjiR405suepj puhVoSdbm/SqaekVEDcseo/smyrqqfk9L9KY2T6goSIwGXy60/fSn4BTj58H4ZSVu53+rLytVBn 9451QL4CxmMAGiFyA/hUFXGy1WCifqQ3JCnsw+FThExRXBH69Hl4St2OqL3dBK9WK3t96wpsZCw HhT4jcGe9tGYtHFHsMmdz3HwLm2Y6XO8/GIwSWt1ctGqs6jtQH4XPB4OM7UYTb9tCgVplXQBbak XAqD+vtmfdgC8x4ZP9h1tkr/8vuPfJNBQozjKbE8Sb5CNykTiivijXTOjLzlfbyWlDpVCXTR2zP HlmupO042MphihC+7hjyQVn2N37rLWCzLyY4LJUOawbhl6WSDzGQ/DRzYH6zyMu7CJwR2kF17vo +cMC4uWs2WPxOpQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:OeIT0WskO/I2OF2Ai+9crJzonv6IDtbCdky/c8fHqDhItNdshO3 tvZerGDBO/pJtRKYwI94hfnmpaBp4RLe2FY3/j84QldT/UsQlNC1Q70LqG7jsAQqnah84Ux QLItO9VLmnReItPKPavo0iKywTC51hYQ3XAi7VHVGJjdryFkrDs8asVUUSYlVokgo8xdRPx kyeH4gULLLlp85/7xxhgg== UI-OutboundReport: notjunk:1;M01:P0:b7Tqhn9SyQM=;Ec0yLIXpqRJMGWTyYXXogLZ7zcK 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 17Q5ztU1rbBZ3896nz8k7p6s0LtGJ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740698352158500 We only receive ram into the colo cache here and don't touch anything else, so the BQL is not needed here. Move cpu_synchronize_all_states() downwards, before we apply the received checkpoint. It turns out that qemu_system_reset() already calls it for us. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 74338a59b563846f4562161942001889dd6191bc..cd1a2b94f497fcb25609bbe117f= eaa8eed1d7f50 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -684,11 +684,7 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, return; } =20 - bql_lock(); - cpu_synchronize_all_states(); ret =3D qemu_loadvm_state_main(mis->from_src_file, mis, errp); - bql_unlock(); - if (ret < 0) { return; } @@ -731,6 +727,8 @@ static void colo_incoming_process_checkpoint(MigrationI= ncomingState *mis, * With colo we load device vmstate during each checkpoint, on top of * a vm that was already running. Some devices expect a reset before * loading vmstate on such a previously running vm. + * + * NOTE: qemu_system_reset() calls cpu_synchronize_all_states() for us */ qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740696; cv=none; d=zohomail.com; s=zohoarc; b=MiJn8u4uHN6pFUFruRBv94J/8tnDbPHq636AsIR7b5LwHq+/WpCOBkwOBfz+4NUkETO7FjgyL3iniCNyn4PRNv52nFoqX4l1JkPovPSnSzuwJ2HTaNUSIFhyffXupf5YGmj942AaP3X435ILoXb+/IhSfvZb7Reujbp8QoAqzWE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740696; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zZmWjHjQ6lItQ14ur7yHrRObdhRj00cj/OHH9WFRmcQ=; b=PbNC7Snu15uGL1uHoWXeKIVYVMw0gWr4RHBbu/OOaxfvScZXpPpCRGl2rWy8MjrNaHB4GFaAVbA3jDdv6at5GRvgRVN961ProrVR4V9kl2phtw0vrDtdOkuJc+7rR19TunkpSaOmZXm59Lae5kn7OBZI3Okh5Mb+vuk5zj3vng0= 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 1770740696744544.7201421297965; Tue, 10 Feb 2026 08:24:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWe-00014i-6o; Tue, 10 Feb 2026 11:23: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 1vpqWZ-0000y0-5r for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:40 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWX-00070Q-2s for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:38 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MElVH-1w01eJ3tlL-00GHf2; Tue, 10 Feb 2026 17:23:24 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740605; x=1771345405; i=lukasstraub2@web.de; bh=zZmWjHjQ6lItQ14ur7yHrRObdhRj00cj/OHH9WFRmcQ=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=q/hbzFExpGZ98DFbvrkEZg2nqPmJDTkoJDSG6Lox3SOSGDt48AWXbjh1S6z1jT5W pa9EK7wsZxeaJy84hhg31xhnmgytZhFLeTu3uq7BZwNuNswvVkwXEntq2QOtI9i4j izQOohI/2PAiPDhlPooYWhjZPcKT2GEzFRh0vacgChbUmCAjVQ6lZDgWZR35q4O3I qUJygNNQkjba495VtBK/itaCRqgIvtyAYl9v0Eedl59ZnJEacl5PCgmSUmxAkDZPh SOCuBghlGQL3NCAs4rK5NqHyxRExvXqpRpibfj8w/R4+p7Us9j2tx6iihNDB2DTvr DW188cgdpTyVHr8Uow== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:11 +0100 Subject: [PATCH v8 13/17] migration-test: Add COLO migration unit test MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-13-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10668; i=lukasstraub2@web.de; h=from:subject:message-id; bh=l0keOMCpjfwRRBppboSoF5o5+YBX7iahZfhZmMFJqtU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3BW1PQi4NPeDo2rtsw8PdLvR/SpuP6+wbE QZn1XjoE2OJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WMKBEACbNAHAuJhPJT0o6rQ4h6kvRnC34vqXpZVu2Mhyw7VqNNBh6lJ9p5xpJAVScE6hncK+/FX 07SiiYN43fFHPTo0PUv/4Le0XQzAsjN+tBSS95Tbh3Kto1eAgZBGB/StrArXppRNSoJVh7D/rdD lQVM5pH9JCkQEAO4wE1erMXI8yyi3j0xzRyBBUJtzEiNMvuCqI44cqhukMFnryBiz0qbzana3Dd rvwv0TdxurQOi3KAUx7+Ln/9+xK/YM4HmyWsyLF5boLy9fzeIPMDSjTZqgbr1OSpqLvQIcO5Ny2 BLCpBq2D+8aA+h15XMrCMlwgog8EP7kD7v7ERxZZFdjW4DZORG7sisjP1d/t//LJ7aDZH0mNZ/u V/Ozd2Mdps6ObW8b3WDOELHp8+RD4GIapkf3YnpYAJhi2sSLotWx4BYjl626j66VC/2aUoyFmGC 2nJk+JlipZiNh40s6K5EXswCheZnntO3ZCoGjsajyqwfBKb/C8nM2Dqv11skErJpucvxOl6zHup 2hArzEv+YRNpL3neknGIYqb2C/iHUFcE/SiILLO+oxRk4W2DfoTmCt9M1Gtv3umTQf9tpoD2olf eYb2E8FeewLd2UbDo46vJ1njnvpjV2IH1ongzcmDEkV/5zKISrotX2Bzahw8N5OZTAs01wnMpLY 70efmgmnDWvJ1/g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:vDY/I0EohAW65cnDx6HCgXIKyr/U4Lf83Yazim5yGC3m8i8NUK7 LLR7XENf794sJBP9jFPa28rkdsFmrX5BGCV1GgPXAbBJT9bxMC6l5Q+UUVLg1lL/D9Q+swX r4/dQG6L+8ZOHQJy7JhNtOr+R/nj/IUFoBsiqZVmCa/I18Ws8BXKmaSJsORE9RMdNekulDe +5led9m7uywr4EhBWBhOA== UI-OutboundReport: notjunk:1;M01:P0:doUpYzZ3Pfs=;Xd1cDLKKFXjsz0EOuc8GTwoPMcM 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740700306158500 Add a COLO migration test for COLO migration and failover. Reviewed-by: Fabiano Rosas Tested-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- MAINTAINERS | 1 + tests/qtest/meson.build | 7 +- tests/qtest/migration-test.c | 1 + tests/qtest/migration/colo-tests.c | 198 +++++++++++++++++++++++++++++++++= ++++ tests/qtest/migration/framework.h | 5 + 5 files changed, 211 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index e6e711ac8a333bb9bfa0d75c2c42dbe74b8523f2..fe6010929fc4cb83bc8a7686fbe= 537f1120f1eba 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3862,6 +3862,7 @@ F: migration/colo* F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h +F: tests/qtest/migration/colo-tests.c F: docs/COLO-FT.txt =20 COLO Proxy diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index dfb83650c643d884daad53a66034ab7aa8c45509..624f7744ec9bd81c8823075b966= bc95f7750a667 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -371,6 +371,11 @@ if gnutls.found() endif endif =20 +migration_colo_files =3D [] +if get_option('replication').allowed() + migration_colo_files =3D [files('migration/colo-tests.c')] +endif + qtests =3D { 'aspeed_hace-test': files('aspeed-hace-utils.c', 'aspeed_hace-test.c'), 'aspeed_smc-test': files('aspeed-smc-utils.c', 'aspeed_smc-test.c'), @@ -382,7 +387,7 @@ qtests =3D { 'migration/migration-util.c') + dbus_vmstate1, 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], - 'migration-test': test_migration_files + migration_tls_files, + 'migration-test': test_migration_files + migration_tls_files + migration= _colo_files, 'pxe-test': files('boot-sector.c'), 'pnv-xive2-test': files('pnv-xive2-common.c', 'pnv-xive2-flush-sync.c', 'pnv-xive2-nvpg_bar.c'), diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 08936871741535c926eeac40a7d7c3f461c72fd0..e582f05c7dc2673dbd05a936df8= feb6c964b5bbc 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) migration_test_add_precopy(env); migration_test_add_cpr(env); migration_test_add_misc(env); + migration_test_add_colo(env); =20 ret =3D g_test_run(); =20 diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c new file mode 100644 index 0000000000000000000000000000000000000000..598a1d3821ed0a9031873270202= 7cebad47352fd --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * QTest testcases for COLO migration + * + * Copyright (c) 2025 Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "libqtest.h" +#include "migration/framework.h" +#include "migration/migration-qmp.h" +#include "migration/migration-util.h" +#include "qemu/module.h" + +static int test_colo_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + QTestState *from, *to; + void *data_hook =3D NULL; + + /* + * For the COLO test, both VMs will run in parallel. Thus both VMs wan= t to + * open the image read/write at the same time. Using read-only=3Don is= not + * possible here, because ide-hd does not support read-only backing im= age. + * + * So use -snapshot, where each qemu instance creates its own writable + * snapshot internally while leaving the real image read-only. + */ + args->start.opts_source =3D "-snapshot"; + args->start.opts_target =3D "-snapshot"; + + /* + * COLO migration code logs many errors when the migration socket + * is shut down, these are expected so we hide them here. + */ + args->start.hide_stderr =3D true; + + /* + * Test with yank with out of band capability since that is how it is + * used in production. + */ + args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; + + if (migrate_start(&from, &to, args->listen_uri, &args->start)) { + return -1; + } + + migrate_set_parameter_int(from, "x-checkpoint-delay", 300); + + if (args->start_hook) { + data_hook =3D args->start_hook(from, to); + } + + migrate_ensure_converge(from); + wait_for_serial("src_serial"); + + migrate_qmp(from, to, args->connect_uri, NULL, "{}"); + + wait_for_migration_status(from, "colo", NULL); + wait_for_resume(to, get_dst()); + + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + + /* wait for 3 checkpoints */ + for (int i =3D 0; i < 3; i++) { + qtest_qmp_eventwait(to, "RESUME"); + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + } + + if (failover_during_checkpoint) { + qtest_qmp_eventwait(to, "STOP"); + } + if (primary_failover) { + qtest_qmp_assert_success(from, "{'exec-oob': 'yank', 'id': 'yank-c= md', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}= "); + qtest_qmp_assert_success(from, "{'execute': 'x-colo-lost-heartbeat= '}"); + wait_for_serial("src_serial"); + } else { + qtest_qmp_assert_success(to, "{'exec-oob': 'yank', 'id': 'yank-cmd= ', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}"); + qtest_qmp_assert_success(to, "{'execute': 'x-colo-lost-heartbeat'}= "); + wait_for_serial("dest_serial"); + } + + if (args->end_hook) { + args->end_hook(from, to, data_hook); + } + + migrate_end(from, to, !primary_failover); + + return 0; +} + +static void test_colo_plain_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "tcp:127.0.0.1:0"; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void *hook_start_multifd(QTestState *from, QTestState *to) +{ + return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none"); +} + +static void test_colo_multifd_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "defer"; + args->start_hook =3D hook_start_multifd; + args->start.caps[MIGRATION_CAPABILITY_MULTIFD] =3D true; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void test_colo_plain_primary_failover(char *name, MigrateCommon *ar= gs) +{ + test_colo_plain_common(args, false, true); +} + +static void test_colo_plain_secondary_failover(char *name, MigrateCommon *= args) +{ + test_colo_plain_common(args, false, false); +} + +static void test_colo_multifd_primary_failover(char *name, MigrateCommon *= args) +{ + test_colo_multifd_common(args, false, true); +} + +static void test_colo_multifd_secondary_failover(char *name, + MigrateCommon *args) +{ + test_colo_multifd_common(args, false, false); +} + +static void test_colo_plain_primary_failover_checkpoint(char *name, + MigrateCommon *arg= s) +{ + test_colo_plain_common(args, true, true); +} + +static void test_colo_plain_secondary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_plain_common(args, true, false); +} + +static void test_colo_multifd_primary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_multifd_common(args, true, true); +} + +static void test_colo_multifd_secondary_failover_checkpoint(char *name, + MigrateCommon = *args) +{ + test_colo_multifd_common(args, true, false); +} + +void migration_test_add_colo(MigrationTestEnv *env) +{ + if (!env->full_set) { + return; + } + + migration_test_add("/migration/colo/plain/primary_failover", + test_colo_plain_primary_failover); + migration_test_add("/migration/colo/plain/secondary_failover", + test_colo_plain_secondary_failover); + + migration_test_add("/migration/colo/multifd/primary_failover", + test_colo_multifd_primary_failover); + migration_test_add("/migration/colo/multifd/secondary_failover", + test_colo_multifd_secondary_failover); + + migration_test_add("/migration/colo/plain/primary_failover_checkpoint", + test_colo_plain_primary_failover_checkpoint); + migration_test_add("/migration/colo/plain/secondary_failover_checkpoin= t", + test_colo_plain_secondary_failover_checkpoint); + + migration_test_add("/migration/colo/multifd/primary_failover_checkpoin= t", + test_colo_multifd_primary_failover_checkpoint); + migration_test_add("/migration/colo/multifd/secondary_failover_checkpo= int", + test_colo_multifd_secondary_failover_checkpoint); +} diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index 40984d04930da2d181326d9f6a742bde49018103..80eef758932ce9c301ed6c0f638= 3d18756144870 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -264,5 +264,10 @@ void migration_test_add_file(MigrationTestEnv *env); void migration_test_add_precopy(MigrationTestEnv *env); void migration_test_add_cpr(MigrationTestEnv *env); void migration_test_add_misc(MigrationTestEnv *env); +#ifdef CONFIG_REPLICATION +void migration_test_add_colo(MigrationTestEnv *env); +#else +static inline void migration_test_add_colo(MigrationTestEnv *env) {}; +#endif =20 #endif /* TEST_FRAMEWORK_H */ --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740695; cv=none; d=zohomail.com; s=zohoarc; b=FN/rm4aMJPmcGGLp2hdcvG3umI4N9hpEQiIMyI0vSih3/ivuiEkru0QzWAdWh1XLgerpdxeWHnnahF6s7sIG3nY1Ts0cbTQ1ZVUvRYfaPdVKEwMU3GJbnIDuP8O1CprqHl8QSTYqQ2oE0/uKUYIGebMJ2QiUZ4zH2jbp+Al4QDE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740695; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hGC+m0tA3M0So0oR7D2e5cbVpsMtE6mQ3ydGsBOWEV8=; b=RcgQr1k1C0sQyjkQP3wJzG4aqeyQ6Hnwlk6A/Hd5A8Xmci0SS285rufMHD4YmbFt/u5s+bPXInq2pS10UAoQc7Y7M6ZZpiHBllqafdeMTsBWN9gAqb/aoGjvBDN0xsjSHGyTHDnGJLZQ8PFXbCVHHuFvq9ZEyG4Cj13ij+3PXVE= 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 1770740695449152.5964619537741; Tue, 10 Feb 2026 08:24:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWe-00015F-Mn; Tue, 10 Feb 2026 11:23: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 1vpqWZ-0000yb-7l for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:40 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWU-0006zj-Uy for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:38 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MVacq-1wHJWL0WOK-00RboJ; Tue, 10 Feb 2026 17:23:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740605; x=1771345405; i=lukasstraub2@web.de; bh=hGC+m0tA3M0So0oR7D2e5cbVpsMtE6mQ3ydGsBOWEV8=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=JTsuWwS8ZQi9Q6l85bRF5ayJMQuf+qJqQnjx0ESqicByCUzU0Jyq3S0tXqO+KbmY IVjvrWbtHvAta1rZNmpVjW7Z/WJbC17cc87yLBpvojLpdwdVlUSf5dV8ejkvfzj/S Ldd77fiDWD/n5cLSOtB0mPGoxk5LRs5byoKWoz3MXTI5eO4ioBQ+7px5tWeu7F8pb FUeH4s/Ooz66R1MIEo5bVnvPdHVVy0SSNnIkM183SZ1Ya9yE81SnjijcZ6eKIrybx UUBo9/hjTnhIhlntO2g8kHtrZPiPVHFQMsMIgHMTod66FoGzDUCGxK3QAS2B+nR2Q Bl4Oa33SlpwmE8laiQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:12 +0100 Subject: [PATCH v8 14/17] Convert colo main documentation to restructuredText MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-14-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=41531; i=lukasstraub2@web.de; h=from:subject:message-id; bh=+Fe4mH4KK78+TLQ/FOH4wNoY+Th9EiHhTnmw9JF8BDE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t3abaXCzb5lBr6BK4xd4E7QL4nb54yq+aOH /bKGFCKRDqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbdwAKCRA1qwsonF2y WCGWEACKbgBopcDgluE2mgrZYOIuz5fop183CP7rr7t4lvBSvhZh+FcBRT/TFIkxN4OqvN06Alu UigcNwXdbTWDNBE3ghOHZCqOwyL4F0rv/RYfBTZ5fPApEqQ3/bRazZ0BjkGWqTZawkdULhUPAYd HJD2DVnYDzi1qjBmnsQO1ZYR0npYbv2Y+WRry1foiGFPEKQ8JR4Hjt0tRSKfZaV8jcY4t5TxVOY 5VoArbifObWnX1OQarhzT9k9V8HyzKzqcMD5HDWYvqNjsIm6sdwQQ9rB0vLQ97Q656Vx4StinPx hwVtoBTG71LqiMdlR5OCYFSJ0D/u0tZCvcBXcH6hvN4IFsSYzynNhf3sFYnnHulQQZvDPmKmQMI HhfZ8xmtLpLjXgliqpOXLJZmR5KEZ538FYZuiVCfwNEiAeF+wPwi03kMObJ1iAu1Z8Y40wUhfcZ E59X3N5HUYagHFFdog4TPc/44AInZ2Df/VyRCmUIpNlPU3FVrNvT6d4dNUIL6oS+wosAE4B5+g9 HqRWtthOOt59Igsr04NqUabtpX8Kdldia5nX6kwVwQM06EPH30BvtIQLxheSNVO1xdU5ipkq1eg TV4q/wjHaJK0YWBi2tYqId6SGitVtNmhBtiMJmrSrBnj9VfiX11uaWnB6dNSiSavyULjBY5eL8T RWqIG76bQ7walDA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:DkJ2nl3pzfGJpFltMpZvcXb5KImaJsaXSAy/tRtt7R+bzyEQO0X 4TYo0q7YuF3Ipe6kgVEFaO2PTs2SMqTJpbpSMMG/cX3/F5ZJzeTWyTQbkkC1Szmqzd8v2IS idGL5a6vuTJUah57HtqilwObhvzwgOjZX5N4xNaPSrLWnqIdXXZrn6smIQFnlUx2FmCFY8C 88IJrFOI/hEL6R7I6RnOA== UI-OutboundReport: notjunk:1;M01:P0:7GJT3qvMuxI=;knmRf7S73UAUAv3rQ4yNdqdGdOM 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740698603154100 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- MAINTAINERS | 2 +- docs/COLO-FT.txt | 334 ------------------------------------------ docs/system/index.rst | 1 + docs/system/qemu-colo.rst | 360 ++++++++++++++++++++++++++++++++++++++++++= ++++ 4 files changed, 362 insertions(+), 335 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index fe6010929fc4cb83bc8a7686fbe537f1120f1eba..50beba7cb105efb867c7d8cb140= 357f329241654 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3863,7 +3863,7 @@ F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: tests/qtest/migration/colo-tests.c -F: docs/COLO-FT.txt +F: docs/system/qemu-colo.rst =20 COLO Proxy M: Zhang Chen diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt deleted file mode 100644 index 2283a09c080b8996f9767eeb415e8d4fbdc940af..000000000000000000000000000= 0000000000000 --- a/docs/COLO-FT.txt +++ /dev/null @@ -1,334 +0,0 @@ -COarse-grained LOck-stepping Virtual Machines for Non-stop Service ----------------------------------------- -Copyright (c) 2016 Intel Corporation -Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - -This document gives an overview of COLO's design and how to use it. - -=3D=3D Background =3D=3D -Virtual machine (VM) replication is a well known technique for providing -application-agnostic software-implemented hardware fault tolerance, -also known as "non-stop service". - -COLO (COarse-grained LOck-stepping) is a high availability solution. -Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the -same request from client, and generate response in parallel too. -If the response packets from PVM and SVM are identical, they are released -immediately. Otherwise, a VM checkpoint (on demand) is conducted. - -=3D=3D Architecture =3D=3D - -The architecture of COLO is shown in the diagram below. -It consists of a pair of networked physical nodes: -The primary node running the PVM, and the secondary node running the SVM -to maintain a valid replica of the PVM. -PVM and SVM execute in parallel and generate output of response packets for -client requests according to the application semantics. - -The incoming packets from the client or external network are received by t= he -primary node, and then forwarded to the secondary node, so that both the P= VM -and the SVM are stimulated with the same requests. - -COLO receives the outbound packets from both the PVM and SVM and compares = them -before allowing the output to be sent to clients. - -The SVM is qualified as a valid replica of the PVM, as long as it generates -identical responses to all client requests. Once the differences in the ou= tputs -are detected between the PVM and SVM, COLO withholds transmission of the -outbound packets until it has successfully synchronized the PVM state to t= he SVM. - - Primary Node = Secondary Node -+------------+ +-----------------------+ +------------------------+= +------------+ -| | | HeartBeat +<----->+ HeartBeat |= | | -| Primary VM | +-----------+-----------+ +-----------+------------+= |Secondary VM| -| | | | = | | -| | +-----------|-----------+ +-----------|------------+= | | -| | |QEMU +---v----+ | |QEMU +----v---+ |= | | -| | | |Failover| | | |Failover| |= | | -| | | +--------+ | | +--------+ |= | | -| | | +---------------+ | | +---------------+ |= | | -| | | | VM Checkpoint +-------------->+ VM Checkpoint | |= | | -| | | +---------------+ | | +---------------+ |= | | -|Requests<--------------------------\ /-----------------\ /---------------= ------>Requests| -| | | ^ ^ | | | | |= | | -|Responses+---------------------\ /-|-|------------\ /--------------------= -----+Responses| -| | | | | | | | | | | | | |= | | -| | | +-----------+ | | | | | | | | | | +----------+ |= | | -| | | | COLO disk | | | | | | | | | | | | COLO disk| |= | | -| | | | Manager +---------------------------->| Manager | |= | | -| | | ++----------+ v v | | | | | v v | +---------++ |= | | -| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | |= | | -| | | || COLO Proxy || | | COLO Proxy | | |= | | -| | | || (compare packet || | |(adjust sequence | | |= | | -| | | ||and mirror packet)|| | | and ACK) | | |= | | -| | | |+------------+---+-+| | +-----------------+ | |= | | -+------------+ +-----------------------+ +------------------------+= +------------+ -+------------+ | | | | = +------------+ -| VM Monitor | | | | | = | VM Monitor | -+------------+ | | | | = +------------+ -+---------------------------------------+ +-------------------------= ---------------+ -| Kernel | | | | | Kernel | = | -+---------------------------------------+ +-------------------------= ---------------+ - | | | | - +--------------v+ +---------v---+--+ +------------------+ +v---= ----------+ - | Storage | |External Network| | External Network | | S= torage | - +---------------+ +----------------+ +------------------+ +----= ----------+ - - -=3D=3D Components introduction =3D=3D - -You can see there are several components in COLO's diagram of architecture. -Their functions are described below. - -HeartBeat: -Runs on both the primary and secondary nodes, to periodically check platfo= rm -availability. When the primary node suffers a hardware fail-stop failure, -the heartbeat stops responding, the secondary node will trigger a failover -as soon as it determines the absence. - -COLO disk Manager: -When primary VM writes data into image, the colo disk manager captures thi= s data -and sends it to secondary VM's which makes sure the context of secondary V= M's -image is consistent with the context of primary VM 's image. -For more details, please refer to docs/block-replication.txt. - -Checkpoint/Failover Controller: -Modifications of save/restore flow to realize continuous migration, -to make sure the state of VM in Secondary side is always consistent with V= M in -Primary side. - -COLO Proxy: -Delivers packets to Primary and Secondary, and then compare the responses = from -both side. Then decide whether to start a checkpoint according to some rul= es. -Please refer to docs/colo-proxy.txt for more information. - -Note: -HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess -by using 'x-colo-lost-heartbeat' command. - -=3D=3D COLO operation status =3D=3D - -+-----------------+ -| | -| Start COLO | -| | -+--------+--------+ - | - | Main qmp command: - | migrate-set-capabilities with x-colo - | migrate - | - v -+--------+--------+ -| | -| COLO running | -| | -+--------+--------+ - | - | Main qmp command: - | x-colo-lost-heartbeat - | or - | some error happened - v -+--------+--------+ -| | send qmp event: -| COLO failover | COLO_EXIT -| | -+-----------------+ - -COLO use the qmp command to switch and report operation status. -The diagram just shows the main qmp command, you can get the detail -in test procedure. - -=3D=3D Test procedure =3D=3D -Note: Here we are running both instances on the same host for testing, -change the IP Addresses if you want to run it on two hosts. Initially -127.0.0.1 is the Primary Host and 127.0.0.2 is the Secondary Host. - -=3D=3D Startup qemu =3D=3D -1. Primary: -Note: Initially, $imagefolder/primary.qcow2 needs to be copied to all host= s. -You don't need to change any IP's here, because 0.0.0.0 listens on any -interface. The chardev's with 127.0.0.1 IP's loopback to the local qemu -instance. - -# imagefolder=3D"/mnt/vms/colo-test-primary" - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name primary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don,wai= t=3Doff \ - -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Don,wa= it=3Don \ - -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server=3Don,= wait=3Doff \ - -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ - -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,server=3D= on,wait=3Doff \ - -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ - -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirror0 \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,indev=3D= compare_out \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outdev= =3Dcompare0 \ - -object iothread,id=3Diothread1 \ - -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_in=3D= compare1,\ -outdev=3Dcompare_out0,iothread=3Diothread1 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.driver=3D= qcow2 -S - -2. Secondary: -Note: Active and hidden images need to be created only once and the -size should be the same as primary.qcow2. Again, you don't need to change -any IP's here, except for the $primary_ip variable. - -# imagefolder=3D"/mnt/vms/colo-test-secondary" -# primary_ip=3D127.0.0.1 - -# qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G - -# qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name secondary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-ms= =3D1000 \ - -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-ms= =3D1000 \ - -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dred0 \ - -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3Dred1= \ - -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ - -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.qcow= 2,driver=3Dqcow2 \ - -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary,fil= e.driver=3Dqcow2,\ -top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active.qco= w2,\ -file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/seco= ndary-hidden.qcow2,\ -file.backing.backing=3Dparent0 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0=3Dchilds0 \ - -incoming tcp:0.0.0.0:9998 - - -3. On Secondary VM's QEMU monitor, issue command -{"execute":"qmp_capabilities"} -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "da= ta": {"host": "0.0.0.0", "port": "9999"} } } } -{"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable= ": true } } - -Note: - a. The qmp command nbd-server-start and nbd-server-add must be run - before running the qmp command migrate on primary QEMU - b. Active disk, hidden disk and nbd target's length should be the - same. - c. It is better to put active disk and hidden disk in ramdisk. They - will be merged into the parent disk on failover. - -4. On Primary VM's QEMU monitor, issue command: -{"execute":"qmp_capabilities"} -{"execute": "human-monitor-command", "arguments": {"command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", "nod= e": "replication0" } } -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } - - Note: - a. There should be only one NBD Client for each primary disk. - b. The qmp command line must be run after running qmp command line in - secondary qemu. - -5. After the above steps, you will see, whenever you make changes to PVM, = SVM will be synced. -You can issue command '{ "execute": "migrate-set-parameters" , "arguments"= :{ "x-checkpoint-delay": 2000 } }' -to change the idle checkpoint period time - -6. Failover test -You can kill one of the VMs and Failover on the surviving VM: - -If you killed the Secondary, then follow "Primary Failover". After that, -if you want to resume the replication, follow "Primary resume replication" - -If you killed the Primary, then follow "Secondary Failover". After that, -if you want to resume the replication, follow "Secondary resume replicatio= n" - -=3D=3D Primary Failover =3D=3D -The Secondary died, resume on the Primary - -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "ch= ild": "children.1"} } -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= del replication0" } } -{"execute": "object-del", "arguments":{ "id": "comp0" } } -{"execute": "object-del", "arguments":{ "id": "iothread1" } } -{"execute": "object-del", "arguments":{ "id": "m0" } } -{"execute": "object-del", "arguments":{ "id": "redire0" } } -{"execute": "object-del", "arguments":{ "id": "redire1" } } -{"execute": "x-colo-lost-heartbeat" } - -=3D=3D Secondary Failover =3D=3D -The Primary died, resume on the Secondary and prepare to become the new Pr= imary - -{"execute": "nbd-server-stop"} -{"execute": "x-colo-lost-heartbeat"} - -{"execute": "object-del", "arguments":{ "id": "f2" } } -{"execute": "object-del", "arguments":{ "id": "f1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red0" } } - -{"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {"typ= e": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.0= ", "port": "9003" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.= 0", "port": "9004" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.0.= 0.1", "port": "9001" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend": {"= type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.= 0.0.1", "port": "9001" } }, "server": false } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127= .0.0.1", "port": "9005" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9005" } }, "server": false } } } } - -=3D=3D Primary resume replication =3D=3D -Resume replication after new Secondary is up. - -Start the new Secondary (Steps 2 and 3 above), then on the Primary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync"} } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } - -Note: -If this Primary previously was a Secondary, then we need to insert the -filters before the filter-rewriter by using the -""insert": "before", "position": "id=3Drew0"" Options. See below. - -=3D=3D Secondary resume replication =3D=3D -Become Primary and resume replication after new Secondary is up. Note -that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. - -Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), -then on the old Secondary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync" } } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "queue= ": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } - -=3D=3D TODO =3D=3D -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. diff --git a/docs/system/index.rst b/docs/system/index.rst index 427b020483104f6589878bbf255a367ae114c61b..6268c41aea9c74dc3e59d896b5a= e082360bfbb1a 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -41,3 +41,4 @@ or Hypervisor.Framework. igvm vm-templating sriov + qemu-colo diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst new file mode 100644 index 0000000000000000000000000000000000000000..4b5fbbf398f8a5c4ea6baad615b= de94b2b4678d2 --- /dev/null +++ b/docs/system/qemu-colo.rst @@ -0,0 +1,360 @@ +Qemu COLO Fault Tolerance +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. + +This document gives an overview of COLO's design and how to use it. + +Background +---------- +Virtual machine (VM) replication is a well known technique for providing +application-agnostic software-implemented hardware fault tolerance, +also known as "non-stop service". + +COLO (COarse-grained LOck-stepping) is a high availability solution. +Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the +same request from client, and generate response in parallel too. +If the response packets from PVM and SVM are identical, they are released +immediately. Otherwise, a VM checkpoint (on demand) is conducted. + +Architecture +------------ +The architecture of COLO is shown in the diagram below. +It consists of a pair of networked physical nodes: +The primary node running the PVM, and the secondary node running the SVM +to maintain a valid replica of the PVM. +PVM and SVM execute in parallel and generate output of response packets for +client requests according to the application semantics. + +The incoming packets from the client or external network are received by t= he +primary node, and then forwarded to the secondary node, so that both the P= VM +and the SVM are stimulated with the same requests. + +COLO receives the outbound packets from both the PVM and SVM and compares = them +before allowing the output to be sent to clients. + +The SVM is qualified as a valid replica of the PVM, as long as it generates +identical responses to all client requests. Once the differences in the ou= tputs +are detected between the PVM and SVM, COLO withholds transmission of the +outbound packets until it has successfully synchronized the PVM state to t= he SVM. + +Overview:: + + Primary Node = Secondary Node + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + | | | HeartBeat +<----->+ HeartBeat = | | | + | Primary VM | +-----------+-----------+ +-----------+---------= ---+ |Secondary VM| + | | | | = | | + | | +-----------|-----------+ +-----------|---------= ---+ | | + | | |QEMU +---v----+ | |QEMU +----v---+ = | | | + | | | |Failover| | | |Failover| = | | | + | | | +--------+ | | +--------+ = | | | + | | | +---------------+ | | +---------------+ = | | | + | | | | VM Checkpoint +-------------->+ VM Checkpoint | = | | | + | | | +---------------+ | | +---------------+ = | | | + |Requests<--------------------------\ /-----------------\ /-----------= ---------->Requests| + | | | ^ ^ | | | | = | | | + |Responses+---------------------\ /-|-|------------\ /----------------= ---------+Responses| + | | | | | | | | | | | | | = | | | + | | | +-----------+ | | | | | | | | | | +---------= -+ | | | + | | | | COLO disk | | | | | | | | | | | | COLO dis= k| | | | + | | | | Manager +---------------------------->| Manager = | | | | + | | | ++----------+ v v | | | | | v v | +---------= ++ | | | + | | | |+-----------+-+-+-++| | ++-+--+-+---------+ = | | | | + | | | || COLO Proxy || | | COLO Proxy | = | | | | + | | | || (compare packet || | |(adjust sequence | = | | | | + | | | ||and mirror packet)|| | | and ACK) | = | | | | + | | | |+------------+---+-+| | +-----------------+ = | | | | + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + +------------+ | | | = | +------------+ + | VM Monitor | | | | = | | VM Monitor | + +------------+ | | | = | +------------+ + +---------------------------------------+ +---------------------= -------------------+ + | Kernel | | | | | Kernel = | | + +---------------------------------------+ +---------------------= -------------------+ + | | | | + +--------------v+ +---------v---+--+ +------------------+ += v-------------+ + | Storage | |External Network| | External Network | |= Storage | + +---------------+ +----------------+ +------------------+ += --------------+ + +Components introduction +^^^^^^^^^^^^^^^^^^^^^^^ +You can see there are several components in COLO's diagram of architecture. +Their functions are described below. + +HeartBeat +~~~~~~~~~ +Runs on both the primary and secondary nodes, to periodically check platfo= rm +availability. When the primary node suffers a hardware fail-stop failure, +the heartbeat stops responding, the secondary node will trigger a failover +as soon as it determines the absence. + +COLO disk Manager +~~~~~~~~~~~~~~~~~ +When primary VM writes data into image, the colo disk manager captures thi= s data +and sends it to secondary VM's which makes sure the context of secondary V= M's +image is consistent with the context of primary VM 's image. +For more details, please refer to docs/block-replication.txt. + +Checkpoint/Failover Controller +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Modifications of save/restore flow to realize continuous migration, +to make sure the state of VM in Secondary side is always consistent with V= M in +Primary side. + +COLO Proxy +~~~~~~~~~~ +Delivers packets to Primary and Secondary, and then compare the responses = from +both side. Then decide whether to start a checkpoint according to some rul= es. +Please refer to docs/colo-proxy.txt for more information. + +Note: +HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess +by using 'x-colo-lost-heartbeat' command. + +COLO operation status +^^^^^^^^^^^^^^^^^^^^^ + +Overview:: + + +-----------------+ + | | + | Start COLO | + | | + +--------+--------+ + | + | Main qmp command: + | migrate-set-capabilities with x-colo + | migrate + | + v + +--------+--------+ + | | + | COLO running | + | | + +--------+--------+ + | + | Main qmp command: + | x-colo-lost-heartbeat + | or + | some error happened + v + +--------+--------+ + | | send qmp event: + | COLO failover | COLO_EXIT + | | + +-----------------+ + + +COLO use the qmp command to switch and report operation status. +The diagram just shows the main qmp command, you can get the detail +in test procedure. + +Test procedure +-------------- +Note: Here we are running both instances on the same host for testing, +change the IP Addresses if you want to run it on two hosts. Initially +``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. + +Startup qemu +^^^^^^^^^^^^ +**1. Primary**: +Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +You don't need to change any IP's here, because ``0.0.0.0`` listens on any +interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu +instance:: + + # imagefolder=3D"/mnt/vms/colo-test-primary" + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name primary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don= ,wait=3Doff \ + -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Do= n,wait=3Don \ + -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server= =3Don,wait=3Doff \ + -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ + -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,serve= r=3Don,wait=3Doff \ + -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ + -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirr= or0 \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,inde= v=3Dcompare_out \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outd= ev=3Dcompare0 \ + -object iothread,id=3Diothread1 \ + -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_i= n=3Dcompare1,\ + outdev=3Dcompare_out0,iothread=3Diothread1 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.drive= r=3Dqcow2 -S + + +**2. Secondary**: +Note: Active and hidden images need to be created only once and the +size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge +any IP's here, except for the ``$primary_ip`` variable:: + + # imagefolder=3D"/mnt/vms/colo-test-secondary" + # primary_ip=3D127.0.0.1 + + # qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G + + # qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name secondary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-= ms=3D1000 \ + -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-= ms=3D1000 \ + -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dr= ed0 \ + -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3D= red1 \ + -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ + -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.= qcow2,driver=3Dqcow2 \ + -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary= ,file.driver=3Dqcow2,\ + top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active= .qcow2,\ + file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/= secondary-hidden.qcow2,\ + file.backing.backing=3Dparent0 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0=3Dchilds0 \ + -incoming tcp:0.0.0.0:9998 + + +**3.** On Secondary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet",= "data": {"host": "0.0.0.0", "port": "9999"} } } } + {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writ= able": true } } + +Note: + a. The qmp command ``nbd-server-start`` and ``nbd-server-add`` must be r= un + before running the qmp command migrate on primary QEMU + b. Active disk, hidden disk and nbd target's length should be the + same. + c. It is better to put active disk and hidden disk in ramdisk. They + will be merged into the parent disk on failover. + +**4.** On Primary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } + +Note: + a. There should be only one NBD Client for each primary disk. + b. The qmp command line must be run after running qmp command line in + secondary qemu. + +**5.** After the above steps, you will see, whenever you make changes to P= VM, SVM will be synced. +You can issue command ``{ "execute": "migrate-set-parameters" , "arguments= ":{ "x-checkpoint-delay": 2000 } }`` +to change the idle checkpoint period time + +Failover test +^^^^^^^^^^^^^ +You can kill one of the VMs and Failover on the surviving VM: + +If you killed the Secondary, then follow "Primary Failover". +After that, if you want to resume the replication, follow "Primary resume = replication" + +If you killed the Primary, then follow "Secondary Failover". +After that, if you want to resume the replication, follow "Secondary resum= e replication" + +Primary Failover +~~~~~~~~~~~~~~~~ +The Secondary died, resume on the Primary:: + + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "object-del", "arguments":{ "id": "comp0" } } + {"execute": "object-del", "arguments":{ "id": "iothread1" } } + {"execute": "object-del", "arguments":{ "id": "m0" } } + {"execute": "object-del", "arguments":{ "id": "redire0" } } + {"execute": "object-del", "arguments":{ "id": "redire1" } } + {"execute": "x-colo-lost-heartbeat" } + +Secondary Failover +~~~~~~~~~~~~~~~~~~ +The Primary died, resume on the Secondary and prepare to become the new Pr= imary:: + + {"execute": "nbd-server-stop"} + {"execute": "x-colo-lost-heartbeat"} + + {"execute": "object-del", "arguments":{ "id": "f2" } } + {"execute": "object-del", "arguments":{ "id": "f1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red0" } } + + {"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0= .0.0", "port": "9003" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.= 0.0.0", "port": "9004" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9001" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend"= : {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "= 127.0.0.1", "port": "9001" } }, "server": false } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend= ": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": = "127.0.0.1", "port": "9005" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backen= d": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host":= "127.0.0.1", "port": "9005" } }, "server": false } } } } + +Primary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Resume replication after new Secondary is up. + +Start the new Secondary (Steps 2 and 3 above), then on the Primary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } + +Note: +If this Primary previously was a Secondary, then we need to insert the +filters before the filter-rewriter by using the +""insert": "before", "position": "id=3Drew0"" Options. See below. + +Secondary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Become Primary and resume replication after new Secondary is up. Note +that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. + +Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), +then on the old Secondary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } + +TODO +---- +1. Support shared storage. +2. Develop the heartbeat part. +3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740643; cv=none; d=zohomail.com; s=zohoarc; b=YfcSQ6QY36XjPqNu+WY7iBrjVg5g28nleH6JZ6DQwaC+eyhi/HdEe/LknGEtTmqsDNetodpdmA2a0jWalVQ7knpfyWi90Cnc+/qBM6bXwBwUxMVg+TpkSH53SOeeLLaTbHMGZnSt4tFGKjxOJ7HGHIe3Y3AtKHzykTX/tiGAIqA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740643; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; b=jLeXpHALcwqtwwapkERn08pUo9WGNHIIl++PSVJ6/eKBWobqnRKs1bBsEkh55iSRhD4qAN7Qln4BTLt776dV7GokPfm5Qcw/v+yRiOVR64aVYoPlQMKAAmZPToXadPdonke8M6NYoniHqlkSRUEyrnEgupHkHhcPVTlyOeGdziI= 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 1770740643893586.1044505779944; Tue, 10 Feb 2026 08:24:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWY-0000pr-Ei; Tue, 10 Feb 2026 11:23:40 -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 1vpqWU-0000ix-5n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:34 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWS-0006yQ-4L for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:33 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MCXVX-1vxqrW1LBj-009et2; Tue, 10 Feb 2026 17:23:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740605; x=1771345405; i=lukasstraub2@web.de; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=kOg+qLNqs2w1p+/SBNsvvcRw78hoxojIxHMDeDgZNuZVuEZADvhuuxLVjZ179XFV DsCN5Qp/Q9EzuERtY+CZ63yfSGJ5ZKCSHCB7r40UeMinBYagf47an4GfnzFntiNsl KoPRVh080RVdpGrMxAXwBH+ejM+6RysPYxdYTRmbdHzFcB6Zj/Wmc5XgSxLiuqP8i fvo+3SZ336+zRLihdWuXQkWITP4OBD/3liG/lUWHtlQn+4zNT3KSwU+yJiecX4Gu1 NEwlN14+avFmbUPPQKlQQhUr1K0O7303lYscma7In7Sig6ahAUSuyU/He0Xgh6k5Q 37lRrwrXZ/gqM8zmYQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:13 +0100 Subject: [PATCH v8 15/17] qemu-colo.rst: Miscellaneous changes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-15-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3240; i=lukasstraub2@web.de; h=from:subject:message-id; bh=xf4Mr+LNhtrRhluncnlq21hBJuEc0CRkqsQ5PC6uWik=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t4mEmdVBGQvbIXfdi/5Vsrow+oNIkYlRHnT 00HorXqhXCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbeAAKCRA1qwsonF2y WBN1D/9w3/enyvrGZ1mGmafFgvLu9BXIjMWnjsxMGEaZQ9FBoyvlFYRBgy6LQY+nJ5O72/hNpQf CXLwxkMPk0JnPTrREEpjd43aTzRUxbqPFIsgZ0SOa8yxKQ5GyxYGlxkkRp0Rl2t6QwZoWeK7jq5 hw4z2DhNeieSzPmafj4g1c9kTIezpgwl1nxInk/KA/KWMlohrpmSUQH92Q4S6JoV5TGCgiTFhkb IR9ryowhX4LSbjv1Uo2vdlBoU5Xkk6TykqxUMQwqJiWhOQyv7VPLIpU+tVn+kf/6HFiWR34TVPd ilHYcjMLVaHlh6IeMG5vQRaqtl+PeQK9na6pD32I/4BCKZesaEdoMUURCa/czVAZZqpexev9cyB 6I/Ed/DtWIh/7NZYUKpacqpOOaMDPP8yPyZ1lgmB/fqQCtg+N2/EyRGEl0cwdfM+WEkTippEF3e FfREIFyzXXn4AfjfTSD5nLsuLVhgv23X4OR9vRKdgsvJ3WvFSY2u61x2BcFp9p5mlh2VjFnJh/D AwEaYntC6MNp8W+nUmrS4q/rh2KCfAN8hAo9TIyKTeWePTDzA4USHnPGhcku21kspHQtX8n/T+i FOBECqQCbfRXu57xN7IyTnntRjx93SQQauXi8WsB5qZQ71QnqaQ7BOaaN+ssLm3REa9KMd4OBVR 0gyxISpZrY5c1RQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:HbTs1yz6jwIEAopZNIbz1nQryUV3Q3AXlfzRfAsHRoNJFrFKHnh oWMf0XzcxU5z4sQ54sC1eeNGkV4mXD4bmOCMNgsrsuU5e+gP8D3859kaXpv4abDDdsnQqyg ywWange626l2J1MWE5AYKbS+Cee1X9JFIJ4OOUdb18e31Yo8Cq3tRaW2F9o3suyawnuFQbL HMVMUq3hXXuejRQ81/ebA== UI-OutboundReport: notjunk:1;M01:P0:gsd5TxUxFSk=;kw0lqWdtu1pa/PSd1w0EQAp7kiP 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 AtOUoxTLwinWbYtBvU7PgZF0Y3MTF Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740646282158500 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 4b5fbbf398f8a5c4ea6baad615bde94b2b4678d2..a70e61aa09391cda933031535fa= 982d27cf6654b 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -1,13 +1,6 @@ Qemu COLO Fault Tolerance =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =20 -| Copyright (c) 2016 Intel Corporation -| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -| Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - This document gives an overview of COLO's design and how to use it. =20 Background @@ -82,8 +75,8 @@ Overview:: | Storage | |External Network| | External Network | |= Storage | +---------------+ +----------------+ +------------------+ += --------------+ =20 -Components introduction -^^^^^^^^^^^^^^^^^^^^^^^ +Components +^^^^^^^^^^ You can see there are several components in COLO's diagram of architecture. Their functions are described below. =20 @@ -157,14 +150,21 @@ in test procedure. =20 Test procedure -------------- -Note: Here we are running both instances on the same host for testing, + +Setup +^^^^^ + +Here we are running both instances on the same host for testing, change the IP Addresses if you want to run it on two hosts. Initially ``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. =20 +COLO uses double the guest ram size on the secondary side. The Qemu version +should be the same on both hosts. + Startup qemu ^^^^^^^^^^^^ **1. Primary**: -Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all hosts. You don't need to change any IP's here, because ``0.0.0.0`` listens on any interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu instance:: @@ -192,7 +192,7 @@ instance:: =20 =20 **2. Secondary**: -Note: Active and hidden images need to be created only once and the +Active and hidden images need to be created only once and the size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge any IP's here, except for the ``$primary_ip`` variable:: =20 @@ -353,8 +353,9 @@ Wait until disk is synced, then:: {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } =20 -TODO ----- -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740722; cv=none; d=zohomail.com; s=zohoarc; b=CBagMQ5k6LALt+yh33K0FUMg6znrLZur7luQHl/Rj7ZF7Yt+7qqOAYGUeK28vT/OOAV1fna0FHrptnBtgb6SWMPl7FJ0L2UbptbY0R/h947NenhPNnD+d0XfLlaY3ad9I+6vjUWWtXmEJ+JTg7ZSqqzkeweCr0GqBUNHeaiDSFE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740722; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; b=lnfbafSaxBSVyS241B2c0ErMm9a8ctd34BvIB3W+Q9t+wgahjMJKcaOf9TWwvnAxAFsb6js5QA67jIzQDk5+Mte7aFF8P6sKkm0tuH2jbw39RLO1cDYT9Xvx1oGvY/6QWJZWK10i8Vosjl7PZ4iJk5LyGBrPV4pMdRm9xmwNHoY= 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 1770740722437728.6825924203279; Tue, 10 Feb 2026 08:25:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWe-00014d-5Z; Tue, 10 Feb 2026 11:23: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 1vpqWY-0000xC-Tu for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:40 -0500 Received: from mout.web.de ([212.227.15.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWX-00070W-8I for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:38 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MTvvy-1wFepT2DoY-00R3JV; Tue, 10 Feb 2026 17:23:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740605; x=1771345405; i=lukasstraub2@web.de; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=vdNJ80OJmBaDE0b5vBeMEMXp1qg90L5FjNPAtruH4+vuBEtZfxP9dLI3IOqg9Jhi p3Waj4R6jSvTe9pItiTr+vtNRdSQNrK0zvw/1GqHEwFTbVthbWHnhHacFckknWGAY 1WJC9h4goYUZux3524O+QIK4B3/d4ihyCBf54HCRx1VCBfvVAa6QHfO/cdSXw+Sl6 7HKHKDhAcsF3768IraciWthZjog/CCmlyd9rOP+TQX8HABIW/dxHtZEi2oGHbgkfV +p/eKLboyVSgJoaXjC6bT4l/RPJRrDwKAYM/eMR6iaMjVjGV8zneHxvI63blzsg47 5uAIskbIVUCo70HLRQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:14 +0100 Subject: [PATCH v8 16/17] qemu-colo.rst: Add my copyright MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-16-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=954; i=lukasstraub2@web.de; h=from:subject:message-id; bh=RBjsUyK419OI2tM2s9seVXuGPbNJkvd1FTM/9fBKVHA=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t4PaXZeLbnSem1+5F0zC8q+syhr4K26wWRu Y53U+6hk3aJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbeAAKCRA1qwsonF2y WC3kD/45Rn985rQBEsfZRy3TrNuSk6HBCC+oca6ylwtIVteoqwES8WS1rMUVDS/WCNGEvrV3XOD zHawQ2Rig5+XqahZCg8obvW4OY3+snDmPbqGzUc5VMfH4KhZevj3tFZOEYG1gI+mKRDzXNS5icm H1C5zmHvIPBLccAm5SHCjWipA0qMLymVBm0xKz8kk8hGexcxh7QTivsA8xlOdrJKvFB7Rh4G1dn TQzCmiRZp94dnMmOJohCr5ZpZ35H8MBEa40TUno4JJJV+0g/hjs40YQoCONVI1eGWCF4D50Ztry P0P6WzW5VjUIkeyiS6x6e1dEa0PXPqNqIJpiDX3FLENgszUyvMSsS7Cuf6VGCst8H5QYP0YmhTJ rXlFE+ogOSifVPrlH+ZAOovbXNWcZINoe5Lz2RS4LMcoL793vPGF3lZ0oRq7SzDpMZa1h0K2djk JIA8+O1Snm1pPqhtD3QpFxOVKaUTkBkdiiurf5173KA7VMsSJjTXX0ETjjU6vDmVrDIQzwCa+63 9TFPSWdp7CedynS8GdJpY1ET9Wd7hojx41BL6NhzT8QnQ1JNs9SwVNak1hSEw1W5Ti+ZW29u6HF JWmxXdCCLXY+N5mj2UGW2a6ExODIdikmTtsaBY4ORkORoLzcGDE4sztrRyIlOPN2BIm04r7/19D /klnOqR06W7o/AA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:JYKaU7PP834gAwl0rKmfxdOyD6w9nNQaCvHrWeyphQPbeVQGuB2 i9U7qjwksbs1+dbHBqC0wQoHjKldBBNXeBIXMxtlw30lvZoBAbtxILjss6S8v9LxlZ1ngRN 010tNyTyWqKFi9B9D2Pqc2IwKIJj/NTwVu8k47SOfVDq9KV6vCrqckAkutFPbTi78TyEheA z+4hy7wfEjP+FWYt8dGCQ== UI-OutboundReport: notjunk:1;M01:P0:xkX9hSXyLRk=;D3y5fAboE4QsSMp/UHQKHz01X/0 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 tkn/LDFxh1Z0DSPKLG5XbnLAVqLR7DXdaTYXyN Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740724902154100 I have so far contributed 61 commits to the colo project, waranting the addition of my copyright to this file. Reviewed-by: Zhang Chen Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index a70e61aa09391cda933031535fa982d27cf6654b..75abbd80298df79223cb8e70064= a5dc83d70f4eb 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -356,6 +356,7 @@ Wait until disk is synced, then:: | Copyright (c) 2016 Intel Corporation | Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. | Copyright (c) 2016 Fujitsu, Corp. +| Copyright (c) 2026 Lukas Straub =20 This work is licensed under the terms of the GNU GPL, version 2 or later. See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Wed Feb 11 04:20:03 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=1770740749; cv=none; d=zohomail.com; s=zohoarc; b=MOVThECv0toGH5I7BohtJVFdsd7swBO0xxcNnOFFGfsBm71waInn9VgNBmofU/r2cU1gA/0NVeERkb+wZ6OWyvvYPlGRaxQPwOhGsR1GDeSyhoVEAC8DdajtWBYd7zF0g3f8miA6yoN4DLvYpKs8RoowvW1KpmN6X+9ru376AQo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770740749; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5DRNtylFaST6/JPH9QU2U4TO4NvWnISJBshbkAaedFI=; b=SO9gqDFE6iMGHoK9FLyxwzqCTuJ8ShXA9M65IOanhQpaoCfPA3TvVoPGUJo9ymc3wuyVXU9Sjg7CODmn/v8bTL+I5SV6NUPmUZ1px8LgvSQNpG5aR2W2IZ8xPYbBtcWu2Zop+6TeSQKIfc/kuB/ZnBCaZcvW/rPyAVZDM6xovm4= 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 1770740749116704.3714163265377; Tue, 10 Feb 2026 08:25:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpqWd-00014Q-MS; Tue, 10 Feb 2026 11:23: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 1vpqWX-0000p7-FW for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:38 -0500 Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpqWV-0006zs-6l for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:23:37 -0500 Received: from [127.0.1.1] ([141.58.43.188]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MdwNW-1vHL35342I-00azPd; Tue, 10 Feb 2026 17:23:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1770740606; x=1771345406; i=lukasstraub2@web.de; bh=5DRNtylFaST6/JPH9QU2U4TO4NvWnISJBshbkAaedFI=; h=X-UI-Sender-Class:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=wwsS4T1yOywU173QJ0HJignKui+MYlOMOjITg1SfNlmpGsrSN0euptDGTv8XIOuz kLcHDoI3yC2GiYmLaZfy0U8cHMPxY5I4l8NDwGVPiywTQLvUr3QTQDLcD8SY6vJMH P13Z0sqKx38eYYoCUT9ztzoJ/V+96i8biVcNgrU65oSQnE15KBhr0oXHY3VINNeFB zLWRWjN+0Scc0DpaQvd371viy3iP//OLOYWuAFrzbh3Jd2XpjUwIndt1SJNQke32g rwpkukWfby0Ovtkr6LQH8JiDR6b73DGqcPGfihftKg0Ig4kp6W74pXQ0zkwGytCBQ ELvR4sGojSFbVZQXqA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub Date: Tue, 10 Feb 2026 17:23:15 +0100 Subject: [PATCH v8 17/17] qemu-colo.rst: Simplify the block replication setup MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260210-colo_unit_test_multifd-v8-17-7f9e5f7d082b@web.de> References: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> In-Reply-To: <20260210-colo_unit_test_multifd-v8-0-7f9e5f7d082b@web.de> To: qemu-devel@nongnu.org Cc: Peter Xu , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Zhang Chen , Hailiang Zhang , Markus Armbruster , Li Zhijian , "Dr. David Alan Gilbert" , Lukas Straub X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4393; i=lukasstraub2@web.de; h=from:subject:message-id; bh=TYU6TTLFHjrH9WpcMw6oVhFbPAVy0WPrt4oU9i8UKQI=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBpi1t4Vq2gZiZhBFGjkrxHckUw+eD9okSqm1SxX gNL8G0W+26JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaYtbeAAKCRA1qwsonF2y WO+4EACTDIPTkemUPnEjsv2m6m5MUMTTbJI4yaZAVLd4HZXTa97nCbUZFkQDse4MbIxsbdbFD0J c/mcz5cwCG0GGBh5gje4VlFCAXdZRXLGaPKeCsdOXyIhnBExB4I3tNYJcKCIkeGxtCqLotWvU/T XkHox+Wx244fA7JB8WPO4f3KwglQBHGYIRGCBfFWPPe9w3MCoQ7MmG17l0DEB3LWxOkfUzbzUDW fQsH34hBbgxi3s5E/m7HDp9SdEgPcs0Tv4hty/5z3hc8isFKYywfrpg+8G5bX0RcTQwn8kfRTNL OHMDCPFQvfnuksLID6Kv/+F1SOhgJlJ2EQiPHIWqsZgjdPolFFaX4ptVNtMUeyZ8b35k6X7aulT CqAALCOyRXtMO72cIqBQnXATfuxPKbCI7v9XLV+i4yZyaS6fMqVV7puOmC1L5J2tFYC+ZqnCAk2 tISgpj1pPP+1aoG7EIlGIqL4S3D/no0kBmxfRdJbmyOTRjXTmgE43enBcpVGDIwgWA3Ar5yGwRr gMxSTjp8c/m+6pTrYgKwdZLkM6ZR0WOayvzThJSawQi9UqmO3jw1C2g/v0UCqgUCZ6V3mm0gyxi 5MR+kvvTNPUqdrDKEUpyXup00yxplBBip7BOSYCFooq91A53FC0hHDUJycPyiszqya+2o6HwPOF 9Hcc1LG6rtqcFUg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 X-Provags-ID: V03:K1:rt+biBApfy17RNzSAq6EYYJ5yaapCJhlXy9GRcrLzIIutaLE6qc kBhZsqiFheyFpwsIdpw+p4Sju7Iz6+/Uu9ic8ycctZABp9HxM2KzcAZ/yqkFmJQ2ON/xcgk qZPAwfKqA3yukrhrbfC95cStcLLFj+Q15lZNFfurzSuPmS/tfzkr475poXhXg3PK0bXuaJl qgf2dwwMer7jOeM+dN81w== UI-OutboundReport: notjunk:1;M01:P0:KYRJ8io21xM=;+2Jd5U00HxJOPE1Q6z/3akyh6r5 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 n2tZnW7c= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity lukasstraub2@web.de) X-ZM-MESSAGEID: 1770740751401154100 On the primary side we don't actually need the replication block driver, since it only passes trough all IO. So simplify the setup and also use 'blockdev-add' instead of 'human-monitor-command'. This is how my clients use colo in production. Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 75abbd80298df79223cb8e70064a5dc83d70f4eb..f7d3b6439cf3401a58c41263423= 9d1a43999a10e 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -240,8 +240,8 @@ Note: **4.** On Primary VM's QEMU monitor, issue command:: =20 {"execute":"qmp_capabilities"} - {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "nbd0" } } {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } =20 @@ -269,7 +269,7 @@ Primary Failover The Secondary died, resume on the Primary:: =20 {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "blockdev-del", "arguments": {"node-name": "nbd0"} } {"execute": "object-del", "arguments":{ "id": "comp0" } } {"execute": "object-del", "arguments":{ "id": "iothread1" } } {"execute": "object-del", "arguments":{ "id": "m0" } } @@ -309,8 +309,8 @@ Wait until disk is synced, then:: {"execute": "stop"} {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } =20 - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "nbd0" } } =20 {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } @@ -341,8 +341,8 @@ Wait until disk is synced, then:: {"execute": "stop"} {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } =20 - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.1", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "nbd0" } } =20 {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } --=20 2.39.5