From nobody Sat Apr 11 23:04:28 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=1772451925; cv=none; d=zohomail.com; s=zohoarc; b=Z5mNYMJ/cpjun+nvaY5FJsVCXWQXcBic7fIDVg3PySj7pBMXhmX9l9CHRRULby856XFo6KCUR/05EKk28zicJGJynKm75+aOiIpt8cXTyQ6gjJTGvl2D/p1S4LUQ9oXFOFGAx/2Yr4hRpwDNxxhpEnOaWA4k1NgdFn6LtVxP0dk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451925; 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=HwK2p4T1L+s5e+s9n+9hT46e4+ZnKxyeq7tjYkZiYtk=; b=R2q33jwjEkCHeHrinTt8tRwA4jt035Tiqjpy25dyCbM1jCgm1g6xjLGviyDAxAYlxgVYx55OeGfX2Mxap6BkVv1K60td0rCtTnN3ogCudpd4GOjDB9BuPrSKUOC/TOuqOqqDEn/OKy2TsdKI5tveUhUTMKJ2oNyegnN5aoFS+Ck= 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 1772451925644145.4596453246245; Mon, 2 Mar 2026 03:45:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gt-00055H-BH; Mon, 02 Mar 2026 06:43:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gq-00054M-JW for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gn-0005ix-Jg for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N2BHw-1vYJUH48f0-018ENA; Mon, 02 Mar 2026 12:43:44 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451824; x=1773056624; i=lukasstraub2@web.de; bh=HwK2p4T1L+s5e+s9n+9hT46e4+ZnKxyeq7tjYkZiYtk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=D7MPjZuQAZSV0wHdGrcsYz4k8GmIYmSMrcgwO59vDnWeAcweOx3U+IWuWtb3DhoF KJazmutYkqf8BIEybtXwGHKCGiuwxJb1GwmNJUSMqFeRBNVCbapXqXB7nDjaz7lKx +06lQrL8RDiMQ0BhYBI2lkJJWSPFUj9Hd3dvbXjrb171/9TbI/D3IbW6Bq1RLG+5T XEqhxbFUm4gpozUIrMMVZbpVO1RWNu5y4fmwdEiG/zn4neZyCBrKMPFCSKeJY/xgp aTqo03YOSTq3yQu2P12/zwudj4DljZdgFqzI1z7mTBWkamybNkbLcxu8VImO6PZAF wEV1AJBXbmwDT6XYGg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 01/21] MAINTAINERS: Add myself as maintainer for COLO migration framework Date: Mon, 2 Mar 2026 12:43:31 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-1-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=1tZjB/3/ppKqe9sB1vbDXigu3FezuQVf4cS6OWdEReY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6TJtCQSUXbtZ6ZHyD7rhfw68G0yhrzK+FV+ jcB24qD9DqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WAPgEACn8QsYr1AYjFLVZ7DOgWg0T2kMegBSAU7RmF/il1TKxgI9E3/68xKVvCgUiwOKQ7R7elD NqqmuNqHn3GFZVyXy1CWBhLMjo8QjoBsi0ILZ3FglQdVBKIRHbd9+zgAdoYjf8BZkk++mCvVmZo YZgIK3XsEAZNCm2xZ1l9qBCKr2/KDDVg4phCxACmkTQv3Rsg2UqFo+9ebpImBjSP5dpp0ivv7Uf 5LQL+FdNO3bUdRTjNz/UUXEdpdaimxKdti1eTjziwilsyZ1vegNrLRwuJNga02K86SvEHdjVVH7 F9L3n5cxmTvGgwPC2i6u9n+XxqGXD3mGZJvUtqTXYwqtZZdLy3NFL/xpg1nYbZ1MvKKskvN614A FOSJb6lxLADIZpsXpmpNznDrDRtHkA/Eg6+oOTWMwpNUAp9ROuXM8az+SmYDd9l+vGhDyyZJF62 zpOYhovaQxuuH76ija53/qbc8oRrZ9MPk1iydNWNURQx8WaSIDiC+3vEZIq/+O3ZRHA5BkPtgXv 15XT4BxLLz+ONmRLWvMfg6SAveGe0pvFIhXsAKd1uI+fYiOmQyDxf/b+0jboo7+RoNi3Yll7gB/ WSA/52PFHax2VOFwsr9yUuQYBj6NYORW9tNow4bsdly36VQB3CuN1FL5DzXhV2XA1HVMBDgrgPa X86tjk/e2Smi0jA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:cBZy7pS0v75IKRZ6a+x8xUgquFybNZg80YcAY8vE5OiN9zbDsOv 9VrPJN//P2/BTDl8/CbqNqZxHOHAvFHtVzfRy1LGaoddSoPUKFPiaZMfcACA10WpuK792S/ jkMdbABmd9PSOpMNUx3jzDBCL8arW6JHUkSmwFibD5H1Pc2N2mOwNngaCJIVgj2ibDuJ8EZ Zn2POVFQ76mYjQS2p4b5g== UI-OutboundReport: notjunk:1;M01:P0:UdW1cJfn6EI=;Xff6EaEaEtpBKKuBqBFfqJILnbi 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 WMNaFw+ORHpMiNSANFgJVu4MiekOeBZkEKKx1a Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451926700158500 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 606b16762cf2ba24d6bd8bb72421db1325bb1908..ff592384b366acc823f19a6596e= a8f32446763b2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3870,6 +3870,7 @@ F: qapi/yank.json =20 COLO Framework M: Hailiang Zhang +M: Lukas Straub S: Maintained F: migration/colo* F: include/migration/colo.h --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451923; cv=none; d=zohomail.com; s=zohoarc; b=XoxeoperFbG3FgELqd9qAs1wBbMBTAoyjtUuWW4fM5KcINbEkjCZMBNAKIR7RDkPMT+HXEXBoXKM4fDWoT3GMuNG3MHuGFe3GEsSqoOPBiaCgqUoQJgmKUdUI1iVOLjmGlHguGC5we7ZS2yXKqD2Ppjbar1d65IyS4e1QCDGV5w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451923; 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=ulLSVe9J/4FxIZugf2W3Tsb5eFQh8fOd29S7Dgc9JTM=; b=KEBQes3kjmoXPFnXZz713WIHJqnl46rPj+SP56p/VDN1aHRhVF8c5nMxE8fo/lcmDM+EhOdd0G5FzAwlJXA4xFaLgtOzTntEjZtlMaaOIHF5A7zaWF5eHmvM5vq+VBxiwuFvZKC5d3fLDf2jNppz4/WfBPimtkEsFnIgZCBXnwY= 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 1772451923693193.62305646234358; Mon, 2 Mar 2026 03:45:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gx-000589-0d; Mon, 02 Mar 2026 06:44:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gu-00056i-O9 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:44:00 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gt-0005kj-5Z for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:44:00 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N3Xnl-1vWvul15O7-014ewD; Mon, 02 Mar 2026 12:43:44 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451824; x=1773056624; i=lukasstraub2@web.de; bh=ulLSVe9J/4FxIZugf2W3Tsb5eFQh8fOd29S7Dgc9JTM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=tooALIpJGKn1a6UrE/pZra3CtaTTNKq0/8rQtzv9cMZiSMVuhjoFLyg3A6yBE1yg IfS9xsjxanTh93obDpiB39MG9CEtWz85tzmY6sw7FO57UM3uSHbziZ44plMYXJDlZ E6mVKYILDV4mXFvwelgE5bjpDZ1ZW3kJZ3CFVZQF6Nwi14F2MtGCH/WwLvkNV9A1r SO6zaBTRGcHpBmhQKUvEgCGccngdJzMQdvhlZPlvtqM6YN/Xw3EuPVou9KR+Wdn0X LOGWn5xk88YQwUUpk6q99Mhj1d+mODf4nkyF1Xgx4OrF6SZ3iXwfG51Deky9mn5+7 /JUjt9RVJ4aLW2xNHg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 02/21] MAINTAINERS: Remove Hailiang Zhang from COLO migration framework Date: Mon, 2 Mar 2026 12:43:32 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-2-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=KCRVBGcCfPDGLbGpOm74X3+VG1Zpq3Yt87JPJ+cVEVQ=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6TD9BwLI6lHt8ZszMfHE7UlAELoeAAaYdY7 5oCH+dU/GqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WJusD/9Fnr9yyzj17EhYR6xs8KHiVup+Pyv1WswSxieJ0xb58Pbi9JBiDa+xv7xhzQB6jhJPe/+ RSuyxFXjcaAB901H6w1zGY99C5J3vai64KtgmxNqA6jZDZvoM2xkyB/Auy14UMe8tOM/QOhsmcV u8l4CmyW+y7gTKWFabflkMr7jvcKE5gZZTDWasQdZsXwBYtCknFDoRaCwIS7qpVE7PlIjLlf83o wOJrck1QE2Zzsx1OsZ/OAdBZfVSgxV6mBbfTn5cnXEgWuy02F+1DuSZ+YSXhCO4GUPVIYj9NdPm dHKI7rD1MBGlH9O92v1J+sSNXM86Fv72NMSV3KF8QaDdWegGDZIOom/WJ5znedUkTlU0VU+E3eO ntiyTMU5rgX9NWRq13J0c0jyjYo/OYxeKKGBfn29EDGJ0q8MV89lKFH8gN+aWM7qSb22oHZadL3 HxAj2Y3mwZXbOTicnA7XL0XzIqp3dW1pbK3/aeT2r2q0BL7MO73+ZWZPVsb+gLUfyRXjRzq/jlR z3zQ3qrnzQNR/UNeo0ni/7M9U7TKuPclErTdXG3c1CbP51A/gf8SnO37mNItatjmCsHKN5VR7k0 bMMilwDg/hYrNQvc8DDN7+YIzDpwv/2/NHO1GxkGJh4xx5pfSOvcgXbjjo294dZ+J8Z+uUio+i6 cRCs/juaU+r7EMA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2zs+Og61eTs6+OCU17bu/xA1/Ehr/edn7ge7Bni7gGqTTmgEja+ VSkpZ/QLnbWP7JfqNZyijLtZQwHyurlk3S8wOWQ9UI/93MmKsN4dOaDDqxd5aOagFjaAvld enGH1zGttqJugIncc2W6KZvbF+sXaVrjDeX1PIiDrmERFqn3Qoe85liJj6AWvvcZuh4NyNM aiXRpdODE9KMeU9nwSW4w== UI-OutboundReport: notjunk:1;M01:P0:227oQC8CBvA=;whDb1CWB+tEatmmnZtmU/OZtdg8 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 kKXEF2X4= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451924642158500 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 ff592384b366acc823f19a6596ea8f32446763b2..aa8f795783ba936ce2521e08aac= a8de4a112ed33 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3869,7 +3869,6 @@ F: include/qemu/yank.h F: qapi/yank.json =20 COLO Framework -M: Hailiang Zhang M: Lukas Straub S: Maintained F: migration/colo* --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451927; cv=none; d=zohomail.com; s=zohoarc; b=egul8ihbXYNM5ynWEVe8cQjZWIbDfS4Buusa5lvXwB0ILmKIzdcowmsjs+ZzsHFzUW7MwEUbZ2hgjTUXgMZELaYc7MzhpJrRCL12resl5sc/fVmrZvFdfp4NbbjGPGTY2vPic7kokKpe0tm+i2GyiS0CjhQtFAWrtG4II6lyVHI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451927; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=w7yoLFLxOPrYAjZU0Xno21H3kl0o95xRyRJ/F9GznRU=; b=WN/b8RDvotMHEo0JAFV1nSS3Z9qb/AeRHHV5WCN5sGA4ZHKj6pq35pfq4ZYx5CYM4aNIx8mK2EKdFRazAjYmRvYO+o6QyRfPoApqvV9lvuG9PrDbdGeCCS5RhFne3f56EGMPTs+Bh304gmPCUeU6DP/5lTjeKs4f4vuwbm/I9gk= 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 1772451927185105.92269528219958; Mon, 2 Mar 2026 03:45:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gr-00054t-4B; Mon, 02 Mar 2026 06:43:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gn-00053d-Me for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:53 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gl-0005i9-2I for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:52 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MIya8-1wHJQg2Awc-00PER6; Mon, 02 Mar 2026 12:43:44 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451824; x=1773056624; i=lukasstraub2@web.de; bh=w7yoLFLxOPrYAjZU0Xno21H3kl0o95xRyRJ/F9GznRU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=IRfBS3I0ERapwzjzQPkvECHF+JaN4uIQmNAGlpbjpAr383OKgP1tfb3GgI29DnYA WfA71TMqohEpgSu8N4ntgztIS35lhJK60NWXirxgClvqIhAhRYiLZ6vw01bysQnvP zoYIsQ/PSiQC7SpFvQ3WdFAABcaaOxM7SlRs0MkGqEynPABxgWlPlYMUTLooJ960i 7mo/lUQexgk+2idvlM/MKJKjCkucdbxS6z8SHBrCHNkp0gupDtV98b/9lnfALgY6Y SK996iU/d9kh7bKkhIlcDXc5i1MctpV6JPflDczFFjssu+P56Nh9CbXsoxFGCOWnN Sk9ukqshzmNt2Zr/9A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 03/21] colo: Setup ram cache in normal migration path Date: Mon, 2 Mar 2026 12:43:33 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-3-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2754; i=lukasstraub2@web.de; h=from:subject:message-id; bh=bZqP64D7rElL++ZH8EUI9LK8uvlG56Ai3ztis+On3P4=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6TyLNZcj5GVeeb7JlehGD/MQVlW4SXBqj+Y fESyWok7FSJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WKaSD/9bdnkKz3HkytUG400vOx9dQGn0uEaHpu5LirpfhIAS6tMkn0D6wQhu5k9Fn+NfQ/m+K/D 9KhrzXFtlJRmg/Lui9aQHCQAm0s7gTHgNVjxEPjNGOg2m6Uxc3VQsbuw6ZI0HVh5IAFTW/9fXzI +pqcFmMGPNVkCnkjuruhQZtyurP39R1+Anw4BhxkPTWio8hfHkwddu2DLgqbi9NRFa7LvfTorsD CY4mGarPpbUhP9JyYCq7hLTRmjSUKbzofLv9VexdhCRED4Cx2rQQn01YAXwFc35bdu2NjOTKe+V SrMS2HT5k7gCJz7VFHPqBI787sN3/YdV24cnzMI03o8MWo3NpnWB01diITmtTi3qGA9zZf+Rg4s QFWQNpGMaisMDh0a68ziseu9SvpAQjs7m2lQCCesB+WdDycj+FpqwgJ4m4xHWRTZD1ow9xvxerC aj60Vx8sng36y0aQ/va4A7uGI/ZBrQkizegCbaUMXcKnVU3ynhJgUarxTDIvxj5gAgvd5SE7FN+ bWLcrrCJ+DTyTSHQX9DQD0IBQOh2BMaLm4Ex9XXd5MbVR5dGtO+jOigvje+iESIhkYqAJzVcKwB bpuLuhDdCSVX6NjBHuWgaXc9Bq2+agQAdflC9zElA6l+pgTRtSZ2HP7ovNg/xoduNgSq1fnlj29 nmbnsRCZtTZ6VYQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:tye5y6Yra+23Xa6ZWFsMsDOPks0mgzdTr9/LU5ZXsuD2GFTSsJI os8wfL41f4I91l0b0kGMQehOJtoyi9Zob8Nv1mn+L6pL37Ogg8AjIJnwi6Ej/XPImWxWOC1 NX0W2KZ2KvNjdH51B5Uy/OnzZ/8IdM2Yp2+gc8aVbjLBHpruetCoFxkfsxXT9SHzKfIm9pt YYTeHDo6iVkGHEOevmQgw== UI-OutboundReport: notjunk:1;M01:P0:CI4BFATZfu8=;OZZJtxfF2NMCELWegYsDdzPahSn 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 sbJ5LDOE= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451928680158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Use migrate_colo() to initialize the ram cache in the normal migration path. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/migration.c | 18 ++++++++++++++---- migration/savevm.c | 14 +------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index a5b0465ed30cb812cb294ab901c7a37fe6157dc6..c2b9621190f8678ac6b32d6794d= 9bcb6ffa5e402 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -630,10 +630,6 @@ int migration_incoming_enable_colo(Error **errp) return -EINVAL; } =20 - if (ram_block_discard_disable(true)) { - error_setg(errp, "COLO: cannot disable RAM discard"); - return -EBUSY; - } migration_colo_enabled =3D true; return 0; } @@ -770,6 +766,20 @@ process_incoming_migration_co(void *opaque) =20 assert(mis->from_src_file); =20 + if (migrate_colo()) { + if (ram_block_discard_disable(true)) { + error_setg(&local_err, "COLO: cannot disable RAM discard"); + goto fail; + } + + ret =3D colo_init_ram_cache(&local_err); + if (ret) { + error_prepend(&local_err, "failed to init colo RAM cache: %d: = ", + ret); + goto fail; + } + } + mis->largest_page_size =3D qemu_ram_pagesize_largest(); postcopy_state_set(POSTCOPY_INCOMING_NONE); migrate_set_state(&mis->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 3a16c467b25b8d93b7d40bd0db751158e0278b4f..b88851cdb7974314b8481646a1d= d19642887f210 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2427,19 +2427,7 @@ static int loadvm_process_enable_colo(MigrationIncom= ingState *mis, Error **errp) { ERRP_GUARD(); - int ret; - - ret =3D migration_incoming_enable_colo(errp); - if (ret < 0) { - return ret; - } - - ret =3D colo_init_ram_cache(errp); - if (ret) { - error_prepend(errp, "failed to init colo RAM cache: %d: ", ret); - migration_incoming_disable_colo(); - } - return ret; + return migration_incoming_enable_colo(errp); } =20 static int loadvm_postcopy_handle_switchover_start(Error **errp) --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451922; cv=none; d=zohomail.com; s=zohoarc; b=BmR0HGvXH5cLgEgnddoYoGCsVNV7V2CLfSqmDanci6e4yGwS3NipRWbWA5yYXTVKLhdBXFR7Jjztu9AG0+c0s7ii26VhOUhtWy5Z+QF1XeBZelWen98w3UdMgsTmp0psWGGacvlHOZ9lExGGpwZ9DTR3QGkKrBlYnRBryIRa644= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451922; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=cKo1RcLXnUykLSWo5DXiqn6Y9pPE2FE/DD1aFztALAM=; b=DCYvLNVTDGZbpSuVNsq/34DmXUh3Vu1yh1Knel+9ByGwZ7uDTGkXDexfz2cXV5BcDmc5PY4qR8FblJQvGtUszX3u8imyRon4HNEZ9HA04mfnrz1MeehI7MzLZ/6GuZ+7T7/r2LSSvsuvVtvzlyGKPSoinj1ZLPCxqoLvRanXhlo= 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 1772451922492421.8978298379151; Mon, 2 Mar 2026 03:45:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gt-00055a-PU; Mon, 02 Mar 2026 06:43:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gq-00054F-0s for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gn-0005hv-D5 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:55 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M6HFy-1w3cKG3E40-002d7K; Mon, 02 Mar 2026 12:43:44 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451825; x=1773056625; i=lukasstraub2@web.de; bh=cKo1RcLXnUykLSWo5DXiqn6Y9pPE2FE/DD1aFztALAM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=iMjtV8fNyUhfSDenbvaxuKBjbmOkEQRv0zFIO66Y+UTAcYM+PRbgn6magqQHu1Tt t/hGMbZWGG31D7g2MSFSitYYlibh04ZX3qpcwoWkSKzwvwapuoS/di3KzJoLt5r8H afjqpvzXtLr0abvFqOcnTZqp1dmqZF4RLhwnwKuQql8aDrmNOCSgS5RPd1Qa9RloN OwMlQFscNNX1jtWRSLxHtgzSvq3XQCniVjQrwsWxVyKXg8fd6KUiHS/9KG3Jcp7xH rovOKVTe8KI9dYol1wTtGeoXGp62wvAnxnXVNPqLsFMeVjzUMG2qixoHPVCH0IhMQ /G0vfj0kiDlEG1/W3g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 04/21] colo: Replace migration_incoming_colo_enabled() with migrate_colo() Date: Mon, 2 Mar 2026 12:43:34 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-4-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3533; i=lukasstraub2@web.de; h=from:subject:message-id; bh=n0JNkGWwDvp69U+jS7cX+vJwFoFOUey0gb5uYJ0EtrM=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6TXNBOsu+nuQuLCOk2AbPs5VS56PbejSwK1 8tfFbgqeVWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WJXdD/wOcG0Lvh1P1TGgizn7SFDCVy31E0iu0YQsYBUTmSlZZR78bUuKof4vSt1MtAMtCEhgOY1 26evsGNyBRfU8I5VQbEOeipT6hVt/l4tVVI1rGFL6OBzHbKgqRKLGYxGyXtkVsr9WuCKFfURi9W 6ktu/S774ns9+DMdCB23aKD2TPOJ6FhP3hWFfSxMO2kI4hMbGpyVcZmny26O4Pydea92C349q2y CL2vbFI9BpVikV4SiB/I2uvR8ycjrFTpBrgDZZ05Nd68jEjhGoSIcU+VlWcrUePT7r4m38nXsd0 n60EuY49HB6xLRUc+MP0oLCIAhjawc8D1UwKXpbzCUI2LhpHt1NrBX8Gg+7Xyxxy7wWSbQqYxsZ za9a5Rh2PNfj8hBKWz4FBgzG65tmqiNH49jqcl0CbJDrO9d1DWBp/i/HVnodluJSrpwTYH3h0sC 3kSV0u0t42d3iWWIBNnOnHKceUKAGMTNC3RnqJ0Iu4wBsqD9WD3QK9UmxaSHYM1Zr1MH0KaESvq OW2FrzUu6btYfqicglCUgaBpPUjlSXQ04RFzoa7nNubJpWBZNqU3a1UcgaLBvldSWU+mWJgAugR oowXqJFtV0j+cf02DTg45nIMNBXw3sA3NohZIucEBEimTwf5R/obRQ9ju+2c43xHFXZ5IvE/F6S ILLgaCxfo91yy/Q== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:8pjiqZtEaIUL0c4hxMp03URyth2gB9FPuVTzrkx6EtQ+pWTQI+p np8Q3g1a6yQ+Bg2LO9eYIToYiPy72BGLE8x9c8xsMqSJj0BjGWXVmBGEaz6NaSvv3dbxJ1b LZiyfhSlqGmUXWeQFCFAn6q2RdFYt5T+Pn5FnqYkrqPNZZzQLa77O6c/EJW+MBN8hxh6My3 TP2FgXueZq8+4Sn31k9/w== UI-OutboundReport: notjunk:1;M01:P0:K3J83JVPXy4=;xxbQG4q6pNhlC852dzT3MP9jXxL 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 Wc7mF4tsiAf0aVDaKZxDOQP9K7n6i Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451924683158500 Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- include/migration/colo.h | 1 - migration/colo.c | 2 +- migration/migration.c | 9 ++------- migration/ram.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index d4fe422e4d335d3bef4f860f56400fcd73287a0e..2496a968cc1ce709f706c0efe57= e4f765f163d3c 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -27,7 +27,6 @@ bool migration_in_colo_state(void); /* loadvm */ int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); -bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/colo.c b/migration/colo.c index f7a5bd3619a49a3b4a8306973de7a4411cc0df58..97a224c39c49ff2269f375db471= 12458cab0b4cb 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -935,7 +935,7 @@ void coroutine_fn colo_incoming_co(void) QemuThread th; =20 assert(bql_locked()); - assert(migration_incoming_colo_enabled()); + assert(migrate_colo()); =20 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO, colo_process_incoming_thread, diff --git a/migration/migration.c b/migration/migration.c index c2b9621190f8678ac6b32d6794d9bcb6ffa5e402..ef6aac53343f2217cd1aa37e493= 483703068d1ff 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, } =20 static bool migration_colo_enabled; -bool migration_incoming_colo_enabled(void) -{ - return migration_colo_enabled; -} - void migration_incoming_disable_colo(void) { ram_block_discard_disable(false); @@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque) } else { runstate_set(RUN_STATE_PAUSED); } - } else if (migration_incoming_colo_enabled()) { + } else if (migrate_colo()) { migration_incoming_disable_colo(); vm_start(); } else { @@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque) goto fail; } =20 - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { /* yield until COLO exit */ colo_incoming_co(); } diff --git a/migration/ram.c b/migration/ram.c index fc7ece2c1a10f34aa5a91f58cbe42ea418d7c078..aebf77aa0b861e00516d6f1090a= ebefdd0d97e54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f) * speed of the migration, but it obviously reduce the downtim= e of * back-up all SVM'S memory in COLO preparing stage. */ - if (migration_incoming_colo_enabled()) { + if (migrate_colo()) { if (migration_incoming_in_colo_state()) { /* In COLO stage, put all pages into cache temporarily= */ host =3D colo_cache_from_block_offset(block, addr, tru= e); --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451878; cv=none; d=zohomail.com; s=zohoarc; b=XyArSA8kci0VAM3eGleUGXE5wlCta6OKB3EbId7StlL6JjYbTuc+grVQUSYr1EAlibUaOXOyc3kmuFYx7rDj50hUV57pLe+QjeUBPMVfKeBQunm0pc73XQIJFodbuIFufezaelLWhU0lJrRc+Kn67tg/OEmJC4cZAe/Ok6jNCGg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451878; 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=YxFt9a3Q8b3rYvpOCIGfX6fMR4sOddj7ZABbx+/ZiI4=; b=cMXo2EzICnPKbXXrmsxLxfYTK0nlUBSTRJ2cHpBaJ4dvUS/DIj57hP7jma0f7ebSpUJTNUEIaRs8mV8tsb7h9rJlDzwjW5Sr6AukyamJyWSSxWaSkI4jmL5XMKQUM6xfxN0VsBWG8v1df9u6zcECD47rIIfx+1XUbIDnUuB+DJ4= 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 1772451878863999.3020336761139; Mon, 2 Mar 2026 03:44:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gw-00057Z-GD; Mon, 02 Mar 2026 06:44:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gq-00054I-BA for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gn-0005i5-D6 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N9cLf-1vZfCW063Z-010pSR; Mon, 02 Mar 2026 12:43:45 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451825; x=1773056625; i=lukasstraub2@web.de; bh=YxFt9a3Q8b3rYvpOCIGfX6fMR4sOddj7ZABbx+/ZiI4=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=SHDEPcmusDzN4nvJWDSgAcY6p7cTllxVVYDbLnqR7/tKA161BFSRZW+ER2BqE9Pq EBRBEyaT/DtXxfVj+uxLp4B7z9AV50d3Zo8JpoFw3IpT4IJduXwGsSzZVPXjWAJYl oPINeDeP05iVAEXnNNmbAARuHRr85oF28c1tttbIUJyYAHTl0/CKGFP6uHHbDAP2K gWZAEN755NPNkTWxp4UObO1sX44o/fNoqZzgFKWAajWURlXkJ7SiUORt5jS5Qeb/w M5rKHTo27QE6CEG9/bHPREbK50t0bDg9t/M77rHsIqN0nngni5InmhAEyuIQQXhTO /Tg20FqZ5yPbVW+7yQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 05/21] colo: Remove ENABLE_COLO savevm command and mark it as deprecated Date: Mon, 2 Mar 2026 12:43:35 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-5-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7085; i=lukasstraub2@web.de; h=from:subject:message-id; bh=PhsGvkNE4e8fxdp+HIj1fvwQLxZniTkG8SQ2HFQ0rRg=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6Tah4jUCPuFM+c1ugFlqGnWNlgPjGuFXwZU io8glUm1LWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WJcMEACZc5J4D52fXycFctdBKixVCciFA6SPTtkuykteH0gjQw3Djq+/czcaL4XgZ6GVEinbklp PxgjQIUM0sPnGJk6xXEnNRTGsFMc4gx4zSuE4N9iyH2Lksq6KP0ZQAheqcCkbQCna16njyA0jqW LfefJ3o58b6ubOwAd/BtChvi8DAcRlKnf4of7Xg9l9Jr7OAgTpR2AySOw/bJ8RfC2ZRJ4BT31N6 BRVtRqXP4IpabvbdcO1yv9pa5Kv5z85TkEu+tMNXTlEi7jKD546XexyQZ6er2DGe5hcbSs95D0L 9AIROAw9Sthg3vKD1+wO8lpCL9Pn3lu3yeo8vy1yjFMEL8XnRCKzDK2QHMRWXGZmbEigt5i0b0R V1ObbaOXKvqGomko7z8dvV1JypIZ0LVeI7k6o6jhPRFxAt8X+Oem4Na//7c/yQknLBC7pd8l1Gr +1ZSCC879QJkSt2e/e1bGVR2bM0wCuiPTAwcUb/XIEU6img04khm8AK4EqicAf82YDWmeqrSIaM 3kbg48R6+inE5N3fnR1to+t2tuP/NYNo0SreV0wDqiwQ7P1RkaeiAXJKomgUG7Z5+RyfMItkjX8 NpwVM1qjhB1LCNwtv9FHOumh2IfeLKT1nQxDmKTrZJeU9jQibbyYlooVKxVVI2hYfrjPCpKwYGB b7drobtmMvJLm0g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:KTRIxFIYrSfJKPW+bbX8L+eyrlNvY1rNDxwqjcFI3ukqZv6ANIe rHaB5ESTBl6HLeGWSchUUHtXwmwwavIL3MfX3bw8fpr4e+12+IW+J2OZsTgnZqlqkTHd9Rc g7hPplfFiPci8lLceEVyf+i/1Ps6rbaON3GCcIfwaX6SIe65bGSqBUhelQgu3MniVFg23wi 1yyR59xrvLh+VDDebDevQ== UI-OutboundReport: notjunk:1;M01:P0:3IQ+EFOj2qM=;wUiCqJGdQlTjA68cQRM4T61Jc4/ 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451880566158500 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 Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- include/migration/colo.h | 2 -- migration/migration.c | 31 ------------------------------- migration/savevm.c | 25 +++++-------------------- migration/savevm.h | 1 - migration/trace-events | 1 - 5 files changed, 5 insertions(+), 55 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 2496a968cc1ce709f706c0efe57e4f765f163d3c..8f94054a10760d0f2598f080643= f45f9944cf051 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,8 +25,6 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(Error **errp); -void migration_incoming_disable_colo(void); bool migration_incoming_in_colo_state(void); =20 COLOMode get_colo_mode(void); diff --git a/migration/migration.c b/migration/migration.c index ef6aac53343f2217cd1aa37e493483703068d1ff..dba5d6ede579da42693d5270ede= 9660fb145238a 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -604,31 +604,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *= mis, return migrate_send_rp_message_req_pages(mis, rb, start); } =20 -static bool migration_colo_enabled; -void migration_incoming_disable_colo(void) -{ - ram_block_discard_disable(false); - migration_colo_enabled =3D false; -} - -int migration_incoming_enable_colo(Error **errp) -{ -#ifndef CONFIG_REPLICATION - error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " - "replication module is not built in"); - return -ENOTSUP; -#endif - - if (!migrate_colo()) { - error_setg(errp, "ENABLE_COLO command come in migration stream" - ", but x-colo capability is not set"); - return -EINVAL; - } - - migration_colo_enabled =3D true; - return 0; -} - void migrate_add_address(SocketAddress *address) { MigrationIncomingState *mis =3D migration_incoming_get_current(); @@ -735,7 +710,6 @@ static void process_incoming_migration_bh(void *opaque) runstate_set(RUN_STATE_PAUSED); } } else if (migrate_colo()) { - migration_incoming_disable_colo(); vm_start(); } else { runstate_set(global_state_get_runstate()); @@ -3534,11 +3508,6 @@ static void *migration_thread(void *opaque) qemu_savevm_send_postcopy_advise(s->to_dst_file); } =20 - if (migrate_colo()) { - /* Notify migration destination that we enable COLO */ - qemu_savevm_send_colo_enable(s->to_dst_file); - } - if (migrate_auto_converge()) { /* Start RAMBlock dirty bitmap sync timer */ cpu_throttle_dirty_sync_timer(true); diff --git a/migration/savevm.c b/migration/savevm.c index b88851cdb7974314b8481646a1dd19642887f210..197c89e0e659b889409c3dc9751= 8920ea9c1824f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -90,7 +90,7 @@ enum qemu_vm_cmd { were previously sent during precopy but are dirty. */ MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream= */ - MIG_CMD_ENABLE_COLO, /* Enable COLO */ + MIG_CMD_DEPRECATED_0, /* Prior to 10.2, used as MIG_CMD_ENABLE_CO= LO */ MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */ MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */ MIG_CMD_SWITCHOVER_START, /* Switchover start notification */ @@ -1103,12 +1103,6 @@ static void qemu_savevm_command_send(QEMUFile *f, qemu_fflush(f); } =20 -void qemu_savevm_send_colo_enable(QEMUFile *f) -{ - trace_savevm_send_colo_enable(); - qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL); -} - void qemu_savevm_send_ping(QEMUFile *f, uint32_t value) { uint32_t buf; @@ -2423,13 +2417,6 @@ static int loadvm_handle_recv_bitmap(MigrationIncomi= ngState *mis, return 0; } =20 -static int loadvm_process_enable_colo(MigrationIncomingState *mis, - Error **errp) -{ - ERRP_GUARD(); - return migration_incoming_enable_colo(errp); -} - static int loadvm_postcopy_handle_switchover_start(Error **errp) { SaveStateEntry *se; @@ -2513,7 +2500,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return ret; } } - break; + return 0; =20 case MIG_CMD_PING: tmp32 =3D qemu_get_be32(f); @@ -2524,7 +2511,7 @@ static int loadvm_process_command(QEMUFile *f, Error = **errp) return -1; } migrate_send_rp_pong(mis, tmp32); - break; + return 0; =20 case MIG_CMD_PACKAGED: return loadvm_handle_cmd_packaged(mis, errp); @@ -2548,14 +2535,12 @@ static int loadvm_process_command(QEMUFile *f, Erro= r **errp) case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len, errp); =20 - case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis, errp); - case MIG_CMD_SWITCHOVER_START: return loadvm_postcopy_handle_switchover_start(errp); } =20 - return 0; + error_setg(errp, "MIG_CMD 0x%x deprecated (len 0x%x)", cmd, len); + return -EINVAL; } =20 /* diff --git a/migration/savevm.h b/migration/savevm.h index 2ba0881f3bd28dba10e52e16657a0b67b19bb00b..b3d1e8a13ca9a535a6990560ed2= d64739ebe730e 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -65,7 +65,6 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, c= onst char *name, uint16_t len, uint64_t *start_list, uint64_t *length_list); -void qemu_savevm_send_colo_enable(QEMUFile *f); int qemu_save_device_state(QEMUFile *f, Error **errp); int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); diff --git a/migration/trace-events b/migration/trace-events index 90629f828f80b51500776ae2171724369e194573..60e5087e38beccb98588fdffec7= deff9a7f92c88 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -37,7 +37,6 @@ savevm_send_ping(uint32_t val) "0x%x" savevm_send_postcopy_listen(void) "" savevm_send_postcopy_run(void) "" savevm_send_postcopy_resume(void) "" -savevm_send_colo_enable(void) "" savevm_send_recv_bitmap(char *name) "%s" savevm_send_switchover_start(void) "" savevm_state_setup(void) "" --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451930; cv=none; d=zohomail.com; s=zohoarc; b=cJF5Z6L8qbvjN8GR9a6clGnDWkl3/B71Zlye0a9AK1rWtT2RexMJxnk/1lV3DPMMHMLa/B3UEDL/5QTsSLTGcqWvOM+Pcjav6uBlvX0W6mn3sLEUy5hLNHJbKXBtFSJ81+EeMfYernlBu5b5Iuyv732Gs3fGBtJ+YAGh7ETdr4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451930; 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=R3F9TKJrnlXTqMnFhNubxu3MTjFAgp/QYKK7nNp5pEDwdXc1j2q6tuWwXulJOqi2nrBCyLwhBb7GWnFU5TowkfYw/TtcbdhnDQ3NoDRCosC+c4ecxhopb8Ce5bZmpY3V3i6iZwXRLpPHZeSxnV1sIhwbCuUXWV9FFG1CmRPKn9E= 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 1772451930054824.6489387146258; Mon, 2 Mar 2026 03:45:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gt-00055P-Bq; Mon, 02 Mar 2026 06:43:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gp-00054A-J4 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gl-0005hm-I4 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:54 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Myf3v-1vkhpc18iT-00uBbr; Mon, 02 Mar 2026 12:43:45 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451825; x=1773056625; i=lukasstraub2@web.de; bh=f78P3av60iHXeYLfBcNIb/W7089vNVfF6LL/haLWLTM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=r1/bNWz3RlwThsfN3Oo25rOrdHk3hKezok8dISxxhKc+QiXNaRMw54IUNsOKZZGm 0nV3JRaL7iDG+BCHysmkGfU+PJY2QV2XsmoVZKX4doaIxOGV0iw32Hxy9oWMbXjFM uZjy3p88FDHCzhMpAYbcWCHsFZ3/IBkTHR75lc/S+1jZqUyPxEeb+B4cZi3to9ra2 XL8Fqqd6q0mRzHM48OGgKYRHKl1U+olyv7jokbS36c3qQBzQ9MnwvDAyoEnv8Gjc5 orBQXRRGszCo/Bos/HcchJctukoonWvCmNqwwWYJPZa6XqbMU/W0cExilVN5cm7e9 HPPTFj6zm4710J8BoQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 06/21] ram: Remove colo special-casing Date: Mon, 2 Mar 2026 12:43:36 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-6-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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/ZANAwAKATWrCyicXbJYAcsmYgBppW6Tpo1+8aH3hmLz1lRI0iQmadQ/WfnzCeJGg 9gxOvxzaBWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WD2iD/wLk7MbQ3ie23Bv4wTDfJInS8TOy1ESKRvKOJavCSZdSHXGnncVykt64BNN0ZGDVJC+MFT o1xoCCrPgACZlFpRAymtuVMNgbJjOOHCkZZF4iGSZJc15/XUg764a6ZKYSYUWKspvyp5XgVmtN6 ehlV4BfRZJD4AGZRXe3lP+wobqqKM7yIEWnaZb4Y7YVBPAp5ZTydAf4o6AMyT4eToknvEXvQxzu YHzoNGf4wMAk6eJyQ89qJKvYURvFhc1nMmLLxVOoXWTgAKQvrl2tithA+nJYOYz4xDpvuweR1PW SZqjXeMgEM2P5T09bJdef1FzKrqjYBhY20wFdL1VGKwAnTc797e2rSkvVqmM6jd6eFsa9XDhy45 F2j/RtSsaaJFJPvGakSSUny3C3VMEBFdR8xP1rFQ1WOKZ7T4TxvlS0YX4j4De2SDeML92SKl7bC tFZOrhpofJRYwfEWjT4kXdDjGqD7YCBOd5uDeg3eKF28SGo9+QMvj0Cd0n5kSqOzaw063ehY5if LtxrJqnAiXVeeMS/C5uOIwx7boX9Y9yHW13g0sCJkI0351XBrraithwhPH1ZV65tcq8MuTL6u5R LucbKsi8HT+WBdegVb0pWosuoUFz7O4b4vlJ3J5+Do6k4qsifeqvTD0Twdd89Z52jEY3vr9/GdC 1VJ051gWt6rxI6A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:gI14izy3qfdH5TYHruv26XdkrUQqL81xS5NVWvVm5ftdTMTWJDy HiSPsWZICrtDXbABxXjJ+zonhx+F+aNxxyncw4kdlMJgGjH0UGAlHHs4Et0d0u+iJY0bObz rdeuc95zqksAJ0YhrUFs9iuFqcKagLdPcX6sjAwrkRMgLcCfdyIgQIukPs1sKnNRm9G+3yH xm7iHbDiIhp2diX4Kv40A== UI-OutboundReport: notjunk:1;M01:P0:zAJUYzBskjY=;WxC6ippAVK5en//v+Ea/0W/seTL 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451930736158500 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 Sat Apr 11 23:04:28 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=1772451908; cv=none; d=zohomail.com; s=zohoarc; b=aLqmibzlu/H5icSgX7sx158G4LV8krZkoLu3E9+sTIb5Cx/kt1L7bGl9b1AquTJai+6J+xAQAT95H2tyuQiRVXcTKqO6b/0Y3UJJHmMbGrRH84fW33v+LpXg3g7Qi6igAArWJgBv17Rdg1JfkbZ5abYgHed9hzRf590x64OzY7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451908; 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=e7NqSAumNCwHnyEnby5GUkxsKmtIJUobOKYmYBDrGgA7P6ZAdbf5h6HL/vne29DF+E7B+rvjN3HE3tDmR2DhzupllJUI/X6he3y5QjJW5Si6TBnw4crcx1rZ0lLFnMf0iozrAhXS+g9xoViG8SEAJjzWYUPPyOFrsxRawggDTgg= 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 1772451908352411.742197568571; Mon, 2 Mar 2026 03:45:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gw-00057X-ET; Mon, 02 Mar 2026 06:44:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gr-000559-DF for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:57 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gp-0005jH-BE for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:56 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MiuOk-1vRFAb2BlM-00abUc; Mon, 02 Mar 2026 12:43:45 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451825; x=1773056625; i=lukasstraub2@web.de; bh=1ICvXz617I/huIhIVtPmcg6MlmFeXbl2B7uO1sTyTmw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=dX4vA/4EGmi7PKiAfCLxhs7EdwX7/soL5LpPdgphJUvK6lVPhOYPB/oHJsmcNexW LDyo3ZH8nwYuISQRbPrpKqpCr+0s3KzMmNdUC4OCwwjTXyxxm0NTVQTPFsGepx4mp ngsaO7YOHAASVYeYsJgbxQ3rLpwi7Bef6zhqERaJoxL8tBZNDoekPd13DTYfTzsxO QumWaUdtoWdtDXyZ9aUaYeYcV/aOzrJ3GUdmHLEVvQElATMZmiL8xhBX/SbpDrTiH b+v4vsqHKEtZyOSC9t1CAaTaevqTKLAWB2LwLrvqMiQzHNMZvy/EvCFnokoWBidPc GktjRo3uYyk2kxsa3A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 07/21] multifd: Move ram state receive into multifd_ram_state_recv() Date: Mon, 2 Mar 2026 12:43:37 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-7-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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/ZANAwAKATWrCyicXbJYAcsmYgBppW6TBDf5Fd70zaQkvwtaCIlrBiLswXnuoTCF3 wYO8kFUefmJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WGWcD/0Yln2kKjaEMkPqp9Jhl9aGOw52bgzfGE0CENgczzFEDZzupkop5l53Q0YdoONJ4nTQtqf DfJLbl3tSDUibqcEB/dCN6e25ahGb/2YiTcUuuJfNj5d51Mr8k43KEDmhZsxPPFOJDaedrHYbA9 pqOD3u6ul9GlHTMxc18ojhvtPVx1WFHz4Dxxrn3sm/XPM0Fb6EzpSWohyzyKFf6lmtxKHml58PC /lN3Ob96Xk+x2mmD8R6nBIf5+tYP1/5MPmMvw3SUNaxG7/GvDeeuEJqcfYFXKXJgtzcX6EcpR27 UP0rQYAUmypC3XJGvvEp03A41s4otNSUmQCq6iIhu6tP1Y52r18yWiR1P+ygdxJkV/JZnZPwvb+ 6CpJO2DLzucQhOO76Lb6KLoV17Ozbzc5AS8DePJSkIbIQS8UliKe15ZhtSZhGCQvckVUuT2oRr3 C2gmMLE/iJymJWnKntxkP2DMHkt2wh20uO7oPzvOaHYOH91Vc96wGLjKmL6HQGKmCY4UVrDcLzs 4idRV3OtIX6XGMDCwNlLJepVelRA9Uy7rA/E8IpCYsFQdLEvo0u94IH0zXv7NM8j/J6oFnwZM0o 3P9E1JS7r6jw66XKYd1dNIzjK37mcbAY9qr72+zT/q6JtZT40h4Gai9H5B2aJY8hCMMzv4sV4cx ge6hUT/yQhINzNQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:LFt9yVjrALyVVdnXs5vqLC5isVgtbXipdERd8xvRdS5EZZ8Ya9e gIZPf6RXajOiqC2KQHr1DbaIk3UR9gvcps3+q0AQOjFiPL938hG9I1bt9NgLHT/t+AsOtpM cfNk+ywF4lelE56vscjHY5pWV9bE5nW5cZNGH+r+n/dZQTYdmqLe/Zj6bCBvFG6ynE7ko2f Z2mjUOQ9rl84eFHx2TWjg== UI-OutboundReport: notjunk:1;M01:P0:bhMoehjTuqQ=;ZZYVGDEJQinSZ+QbBimCSg7pW3g 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 7+n+B0tSifCJxZFMenVk3qNXdTwmT Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451930566158500 This is in preparation for the next patch. Reviewed-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- migration/multifd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/migration/multifd.c b/migration/multifd.c index ad6261688fdf98a5c7f4ee9fb80ba2901201a33e..332e6fc58053462419f3171f6c3= 20ac37648ef7b 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -1253,6 +1253,15 @@ static int multifd_device_state_recv(MultiFDRecvPara= ms *p, Error **errp) return ret; } =20 +static int multifd_ram_state_recv(MultiFDRecvParams *p, Error **errp) +{ + int ret; + + ret =3D multifd_recv_state->ops->recv(p, errp); + + return ret; +} + static void *multifd_recv_thread(void *opaque) { MigrationState *s =3D migrate_get_current(); @@ -1387,7 +1396,7 @@ static void *multifd_recv_thread(void *opaque) assert(use_packets); ret =3D multifd_device_state_recv(p, &local_err); } else { - ret =3D multifd_recv_state->ops->recv(p, &local_err); + ret =3D multifd_ram_state_recv(p, &local_err); } if (ret !=3D 0) { break; --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451927; cv=none; d=zohomail.com; s=zohoarc; b=eVOzGsR+I1yBfPar0R5wqxroUgXVburrmQLRpsrWd4CPVnZvNA3FiSQ1a1uQO2bJruIXeDE6DF0a8jbxqYRmM8zsNJ3RVZspVDUjv+E2RLO6IOzGOOzwKGhKAkfLHHc53a4sTmXa0RVaPh2d7FMhg0k6EesCvHMKOmISsjFbEhA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451927; 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=33sel1R6xmv+QDaM+Qknckw/SZLjCwKZac5wOjHfvAQ=; b=CmwdSo/17s/w6MebR13EPUlGDpRzuofcmB/wv5NSwKN1Wf2vz6+NJEmakrsSEp8kOz7wMSLendI1yxQPMydS9b9Ov1bzNkzvLk9Z9IQ2sh/1f73v9nQ29Mf1gDdEI+URcZhQ9uuxM4JNZyxGD4trkdEjuT9AmgHJM61zrotkm/U= 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 1772451927629375.32331054598467; Mon, 2 Mar 2026 03:45:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gv-00057D-Sq; Mon, 02 Mar 2026 06:44:01 -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 1vx1gu-00055h-0y for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:44:00 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gs-0005kL-3a for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:43:59 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MTfol-1w6YBQ3LXp-00YLG3; Mon, 02 Mar 2026 12:43:45 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451826; x=1773056626; i=lukasstraub2@web.de; bh=33sel1R6xmv+QDaM+Qknckw/SZLjCwKZac5wOjHfvAQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Dv6NISzgE0BmamKiIbG5MzRqzu5hsWhbUm/5jkmICvFzWAHb+Qzjje95xSTZZJ7z ygee5XbnrYBjmkMe26B+VZtbiBi6TICT25lFn+Sd4aGtPy3ZX/g31JVGakfP7f3QV fosg08YxWYrCQicS2T6Eos+dRUL2XCGJ8H9EJvJnjq1iH3wnn1o3sxA83oRW+GtD2 ZN/GaXt7GYtPumbxP9Wt4OKPjYg/98YrTn4iLOrq+MApDtLs0rfjhDrADHu7NmMzL i1T5REuaKvtmx76yHqqLy9PeXwoMEGH5NYiA8qYAiRltA46NA5C2QW6wsmlyL2cxq 4iNyKMLLrWicAyahjA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian , Juan Quintela Subject: [PATCH v11 08/21] multifd: Add COLO support Date: Mon, 2 Mar 2026 12:43:38 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-8-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=zU0pffC07Smwy5Vv0eISnBt0LkAaS5xWcGKzaE9qTeU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6TeUIMW2gFhasIIH5MVR5aEhCTeMBOdGyJ0 Fn9FNQDUhWJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WEzjEACttPX9PYhOwvzQqybhmM1YUHnBxXBz6qxc85M3wc4bvEQOmWKxEA5NgoPjEhmkHgq1PPB kIBJoxKQoucMtWJobFBk/vTxuUYQ3dUUaxpQhRChwQZ/HHtNR9TpfJdP9jNidiRudYA+A07SaJq 5OtR1drmvIX8tGKQDxvxTtO6k+unppAQbQb3JMHZ7peSg2UZtYuV8cgDUFvNBHfcHHA/HoUUUX/ xo2o4lE4pLfTZ8Pkx6f4O5Ey6X+qwIgxJc+eK8x43+H8YDk24cBrtgt5BqNK3f2dCGD5ZNBvLRw 1MxTo4zmKSX0EtNZVob6f2pbR1LXkY8Kr6r6Jmh3QlcuOwUdJEPeIiH2SaspICGuJ1TQNd/Rqcw VsHtuOuqffol7UE65wJTfKtcZKr/XPSa7RewL4r9kxOHdZky/H254i/bHghxOG1k9joYFuwde/S w+mKYvhmFc45huokUIOvnKmVNiXSFpKBV+VstE4TiC8J7juwGSLvWiEx8kCafBuwU5lXhP6oaM+ mMecOAWQAJVMRI9T+7D1lL0kOBn74yjvP1ia+fembBfes0UbRcpaCs6obU59f8vCmv7rJo/6Wq9 eTyMrqDhyQtt12noPUZmc3yOx2ape3823Suy2/E56kZWOat4g5h1bmeFVRQ+45rfVNMJTI55J6h PkjLeF2NU/CpB9g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:4SAyOI7SmC3VjIlw6zY09aZuAejJZNbTXm2qI4+S1xCUx2lpwvP XZt7XmWPZ1UTuq3GeqFsjjevq7jTRXGOkwWX/CnuyhVtkVG2ZBDOCVJBzfOiijj2zc8oWwH wcVilGf5gA11cMQFyYK5uWgJ7y7sayoyL0/bXetypapCbUgq4yPomp+h3/wtvouuAtYoqKn lhf4J6yUg5S/RbWm288dA== UI-OutboundReport: notjunk:1;M01:P0:XUvaF1PbexA=;lwdfGyc0sZE+y/VAQ6A+q6OiUS9 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 08JOXiH1F2OAAk0AAXRosv/QVbN8Y Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451928833158500 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 aa8f795783ba936ce2521e08aaca8de4a112ed33..d2a1f4cc08223cb944b61e32a6d= 89e25bf82eacb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3872,6 +3872,7 @@ COLO Framework M: Lukas Straub S: Maintained F: migration/colo* +F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: docs/COLO-FT.txt diff --git a/migration/meson.build b/migration/meson.build index c7f39bdb55239ecb0e775c77b90a1aa9e6a4a9ce..c9f0f5f9f2137536497e53e960c= e70654ad1b394 100644 --- a/migration/meson.build +++ b/migration/meson.build @@ -39,7 +39,7 @@ system_ss.add(files( ), gnutls, zlib) =20 if get_option('replication').allowed() - system_ss.add(files('colo-failover.c', 'colo.c')) + system_ss.add(files('colo-failover.c', 'colo.c', 'multifd-colo.c')) else system_ss.add(files('colo-stubs.c')) endif diff --git a/migration/multifd-colo.c b/migration/multifd-colo.c new file mode 100644 index 0000000000000000000000000000000000000000..f160c6543414d3e157a444d613c= 96df4c5f0e602 --- /dev/null +++ b/migration/multifd-colo.c @@ -0,0 +1,44 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo implementation + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "multifd.h" +#include "multifd-colo.h" +#include "migration/colo.h" +#include "system/ramblock.h" + +void multifd_colo_prepare_recv(MultiFDRecvParams *p) +{ + /* + * While we're still in precopy state (not yet in colo state), we copy + * received pages to both guest and cache. No need to set dirty bits, + * since guest and cache memory are in sync. + */ + if (migration_incoming_in_colo_state()) { + colo_record_bitmap(p->block, p->normal, p->normal_num); + colo_record_bitmap(p->block, p->zero, p->zero_num); + } +} + +void multifd_colo_process_recv(MultiFDRecvParams *p) +{ + if (!migration_incoming_in_colo_state()) { + for (int i =3D 0; i < p->normal_num; i++) { + void *guest =3D p->block->host + p->normal[i]; + void *cache =3D p->host + p->normal[i]; + memcpy(guest, cache, multifd_ram_page_size()); + } + for (int i =3D 0; i < p->zero_num; i++) { + void *guest =3D p->block->host + p->zero[i]; + memset(guest, 0, multifd_ram_page_size()); + } + } +} diff --git a/migration/multifd-colo.h b/migration/multifd-colo.h new file mode 100644 index 0000000000000000000000000000000000000000..82eaf3f48c47de2f090f9de52f9= d57a337d4754a --- /dev/null +++ b/migration/multifd-colo.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * multifd colo header + * + * Copyright (c) Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef QEMU_MIGRATION_MULTIFD_COLO_H +#define QEMU_MIGRATION_MULTIFD_COLO_H + +#ifdef CONFIG_REPLICATION + +void multifd_colo_prepare_recv(MultiFDRecvParams *p); +void multifd_colo_process_recv(MultiFDRecvParams *p); + +#else + +static inline void multifd_colo_prepare_recv(MultiFDRecvParams *p) {} +static inline void multifd_colo_process_recv(MultiFDRecvParams *p) {} + +#endif +#endif diff --git a/migration/multifd-nocomp.c b/migration/multifd-nocomp.c index 9be79b3b8e00371ebff9e112766c225bec260bf7..9f7a792fa761b3bc30b971b35f4= 64103a61787f0 100644 --- a/migration/multifd-nocomp.c +++ b/migration/multifd-nocomp.c @@ -16,6 +16,7 @@ #include "file.h" #include "migration-stats.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "migration.h" #include "qapi/error.h" @@ -269,7 +270,6 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Err= or **errp) return -1; } =20 - p->host =3D p->block->host; for (i =3D 0; i < p->normal_num; i++) { uint64_t offset =3D be64_to_cpu(packet->offset[i]); =20 @@ -294,6 +294,14 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, Er= ror **errp) p->zero[i] =3D offset; } =20 + if (migrate_colo()) { + multifd_colo_prepare_recv(p); + assert(p->block->colo_cache); + p->host =3D p->block->colo_cache; + } else { + p->host =3D p->block->host; + } + return 0; } =20 diff --git a/migration/multifd.c b/migration/multifd.c index 332e6fc58053462419f3171f6c320ac37648ef7b..220ed8564960fdabc58e4baa069= dd252c8ad293c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -29,6 +29,7 @@ #include "qemu-file.h" #include "trace.h" #include "multifd.h" +#include "multifd-colo.h" #include "options.h" #include "qemu/yank.h" #include "io/channel-file.h" @@ -1258,6 +1259,13 @@ static int multifd_ram_state_recv(MultiFDRecvParams = *p, Error **errp) int ret; =20 ret =3D multifd_recv_state->ops->recv(p, errp); + if (ret !=3D 0) { + return ret; + } + + if (migrate_colo()) { + multifd_colo_process_recv(p); + } =20 return ret; } diff --git a/migration/multifd.h b/migration/multifd.h index 89a395aef2b09a6762c45b5361e0ab63256feff6..fbc35702b062fdc3213ce92baed= 35994f5967c2b 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -279,7 +279,10 @@ typedef struct { uint64_t packets_recved; /* ramblock */ RAMBlock *block; - /* ramblock host address */ + /* + * Normally, it points to ramblock's host address. When COLO + * is enabled, it points to the mirror cache for the ramblock. + */ uint8_t *host; /* buffers to recv */ struct iovec *iov; --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451878; cv=none; d=zohomail.com; s=zohoarc; b=KukL851A5kPlAFwWgXmV3yqodp22YzJ12c+R8o8DLB1WS5xaLLuu3YBvUSyMNbdgszeJcIOerMW+BVYVT0jnM07iHZr4uInQ2WbwzPJjAqTsKahdT+P5Dh7wSfIZ91+3pzQf0JXMawr0/QktcscybJWzqOsRJv8gejJ4/hNzuX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451878; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8hHLJHabzCk4FfrjTAJvzzHBO1OUkODVuFNUMhqME4c=; b=NQhZNHfwE7l7dhc8/e/LkLjRs7wnC8zvhzCQt/4AMgEfz3k3m43bfSMY1z7eIsY4c8JSh0TkiV2782zbaxLqklpTr2Z92eiCWmafXN3DPg+wY7zlyyek2WMMyNvCJRRxzcylWhqLEuF8XTqbhf9CBQj/5xJte2sKpH0ToA2CrqA= 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 1772451878867838.1498083371873; Mon, 2 Mar 2026 03:44:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1gz-00058X-4P; Mon, 02 Mar 2026 06:44:05 -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 1vx1gw-00057L-29 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:44:02 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1gu-0005ky-Hh for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:44:01 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MW9rM-1wCrRA0J0k-00TgQa; Mon, 02 Mar 2026 12:43:46 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451826; x=1773056626; i=lukasstraub2@web.de; bh=8hHLJHabzCk4FfrjTAJvzzHBO1OUkODVuFNUMhqME4c=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=n/OHgaqTbbtWrt9BT8WReEijrv67WOARNlXVFa+ABbakTF1+sbmjOEBN1YSn1L02 lAjuCaON+v138oQ4U8iT5EoFC+cAmQV8Wh7jxomWeJGOOmaYnM09Gbz0yJJ7iZWcL EqwXLP0oVcGTM8gRWc/74LOSDhZqxe/1Q09GO6pRgisB0nqi4CwdadvMUL3XW5X7I F3E88Y/F09vF/GkzKv67d1voEKGhRl/7Xoqk4skmcPtjTo0IPgiwOA0es646wwJmH ZXsNJIQ0ofAGm7oIjCGH9FaVhwYy0gfE7D/0slogZNZGXkkRir4jHBDyrQnk+Vme/ uvUbp99iq17CS8lUuA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 09/21] Call colo_release_ram_cache() after multifd threads terminate Date: Mon, 2 Mar 2026 12:43:39 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-9-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1345; i=lukasstraub2@web.de; h=from:subject:message-id; bh=742UeEMYZJ7tKnjG0Stx7vUAA1BGNxPixG9gIstyBU0=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6TsiDljhhIO1/nXoIUalW1egzgZro8Zcfvc +O3subRuDCJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WD/DD/9XI9mFXv61D/SBPpQx8t5Tjstk+l5sIdIbc7fDBjIMtdMhid+ew+t7BVeVpZQ/bIk9NZs OM23YVEiWcv7tj9V28Zbd69DGsMj57iAUfCm2K+NK/IMMCilr3oCKAGeUZ7PQzFphhJPi2CNYN0 SfMl4IQZVug+TkuU/hF5sWcpcXXNL6KWfWDScuX3osvJ6dG1jPm8pguodxtynVb2Tr9/K4qPg+h 3QsT9BWdYiWkgi3726RWhJE5quT+AWSTjAc4zaRIKEaRd81sQZ79x+gj1lMmcgc4LJ78wQJohU+ czsixIkVRJM9/e8OVXRizQChiRYF71GTVzqPjnldOGx/DE9G9RtvPIS4ybrsrU5zLDGk4hmdsCp Vt1lE1M9LrT8+CLlEav0Olc8pMQ+4ErRKjpha79wLs7A2R4aYUJgze4bPYvBTOjbbG2Oveu9RFP WIqV024CNFx6JLSf3Vu61IVLM+sZf/jEDO1lhFJ05aanPHCTqST60fK+Em0d50xgkg+pvUs6C62 I5p5YdPHwrUdNkDMhuusExE8Hz8o5FziQN6nCtjLr36GYIQyuQ3NcAZD1IHKR+BJdjQZSnfB3D2 K+He8GUcEtR/xkDFpfgoafyqCWSSJx2eGpbw8y1KiFPpdQB2HgIq4BA65K8crneS4sVlvmc0JNs aapC/28Yju1PGtA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:/AfVtt8L25VnVix5QmrLn2/MXTwhfjwMatadO4iH48ZsK0mtb5v pWy1ddkmdRArSwEmcrvp/fxwjgmPBg/gkA5LJMm+5NUxH5qqjFvmEmAzqJTcyBuNxicOmec PZWDVtNEYh0fsVG/LPPft6zaBI47wXNn9XenbSDihZJaIcJTX8hGYbM1ir+WvoXlEGI0DFB H121fzno6ML9cjd8g8taQ== UI-OutboundReport: notjunk:1;M01:P0:qo3rmqE9KNg=;WNa7XHT/MeE0p/3uCR36N+UHUTs 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451880486158500 The multifd threads still may access the colo cache, so release it only after they terminate. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 3 --- migration/migration.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 97a224c39c49ff2269f375db47112458cab0b4cb..96102c9d0fb3b60e063c81ce07b= 730011bc4919f 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -949,7 +949,4 @@ void coroutine_fn colo_incoming_co(void) /* Wait checkpoint incoming thread exit before free resource */ qemu_thread_join(&th); bql_lock(); - - /* We hold the global BQL, so it is safe here */ - colo_release_ram_cache(); } diff --git a/migration/migration.c b/migration/migration.c index dba5d6ede579da42693d5270ede9660fb145238a..f36d42ef657bdf26d78ca642d77= a9b76e1c0c174 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) * BQL and retake unconditionally. */ assert(bql_locked()); + if (migrate_colo()) { + colo_release_ram_cache(); + } qemu_loadvm_state_cleanup(mis); =20 if (mis->to_src_file) { --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451999; cv=none; d=zohomail.com; s=zohoarc; b=JCqZr3VMj/Gec9AK/C3VO69W8s5ZPfXuHGz/y6x7pJQJd2luYesj7b77Hm2xoKTp5ZyNuPeoCzJdhzTWqWpHZLwhd5PIdfI9Mki/I2DRbeUEBsitvV+T+rkxLmgGNKyCVfdCdeDGZVjvHqlEEzVp62xNpv43+9i0eSBmhI7nygI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451999; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=q/mNNwnaGGa47jBNu/l/VsNCmpfLA9HBEoNXzcytdkc=; b=XGy/M1d9rp5r5RByJ8K4WPz3CxbxephA58Tb5d3npFLR/qotoJ+uedkxV3sGUd3jBE/X2FkPvmE4NjnzOH66ULQ4e5cGln+eFL8ScKxxjWm+vGCdhSFsrmkAEECwJQBg3oiGEQvylrLZxdToc8DRMBhMkb7k1TStJFQGEDTqWRk= 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 1772451999235589.1220948662246; Mon, 2 Mar 2026 03:46:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1iw-0000PB-0j; Mon, 02 Mar 2026 06:46:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ic-00004q-Mw for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:49 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1iZ-0006CF-UC for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:46 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Mf3uS-1vV5pJ2UoM-00cFHo; Mon, 02 Mar 2026 12:45:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451939; x=1773056739; i=lukasstraub2@web.de; bh=q/mNNwnaGGa47jBNu/l/VsNCmpfLA9HBEoNXzcytdkc=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=qWZAFCDW5Zw9F5youFICkXpR+DNo+sDHqyMZ60MwjInWtKKSuruUJO+4lMyWvDEv uLF2GotyLYXygT3aalD8nIuuehj+a3QD99DZXN3/osFK/I8zbzYYDp0cDYDTjHZvk YjhvcwllZP63YfQ77PFkZ+jg3rBWNfTKL94wjoUsFOABkyUiHhtCQQ7n3dR59IG6+ n6zBrmx0Fv+8LNIWA5JRk1e3YL8yvKGcFVkjxOqNeOOGSqbGf5zYiAi2KCmMdAwN8 LZ1Axm03TEhKblmxtQrQJfeKy+azCBgJstkhExH0kDFhPuZVuAoVaqCw8Z8suyzd/ MSAXJOQaNpeG3x2eEw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 10/21] colo: Fix crash during device vmstate load Date: Mon, 2 Mar 2026 12:45:25 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-10-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1224; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Jo9ygbD9kqkeUyQ0JD+anPkAvVD/vEUQ7S+iY6iqDJE=; b=owEBbAKT/ZANAwAKATWrCyicXbJYAcsmYgBppW6TE4TtvACx8sPo9bkeKrkgYOi9UHywHFffo i8wmTqS9h2JAjIEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVukwAKCRA1qwsonF2y WHEzD/YiFPbg2QKyOcqwBXfjR90ystq8HMSgiWtxTTG69A0VnzwP4tcFxxSwMGVSrYoSpp2CvJ+ S+qmBYWb7HVJ8Qm3u7293sJBWk7WbPengg4RN5UTxVs7QBoMeRTm5AWJt816FC5nU6/5tpwv5ny H/MGiUkG/uMdPwUbHte/icqkDO0XHMdctkKgjCyCwieVsp4pRGmd5sWhglg6p1ONuY5jKma7zsN VrLnsDsB8W/z4X6MGi+wGDJE+iYUYbn5+tCo7ZVKjrJwWvw/Q04ffwTnCikSt9zg269K0g0b3Z5 xA78DSHy3kt03XIw3e399+mM1nkZs0gwI7HqVMGSWRzaGla7H3wD/lymHFu77zGaa9XGriXvqQF oW5mtNkROcmE9o1ZwMX9Lph7M2r7VQQsKOZiJojqhYQCM+bBaaW+SzhjvUe5nlqegeLWE+XEwJf IsWA84xFVVVL3V4Rj8xa3kk3KOSm1T0+YkGhfbH6n8OXjdALf4U2bwlKfpKnDq0SviePooMowEf 1I0lt167KCzsFN3TOabFgaHBCaHMSVFpPXNXYj++WnEBf4wwf30Uz2EJJHAQeQVl2WCywjvip2c UzO21BorGTI9j8NktQxa4ejP1LBUheOvZ74WGgY66rEXSVegHkaTKDuylLIE7GkFSwMnNKswBP3 F0Bg+VSo0TdkD X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:p3NhA2+8ZTFvWhW2HvbOvD9y9FsTa8pyxnkoGKjUfNm1EDw6Fg/ 722whGI2A+usYQDIlSQbtHmRBavlMXKVSO6KvhZqEv9ERXBnaCxF6DQxcBQNiC6lMtbZOit eInU+CiuriTOj33QGEqE/QSxHI47ZJeAN3MEt071L+rbBf+7g3tE2+Kud4Cw698oJRdBF66 NgUt8tHOykl2qwa8nrKAg== UI-OutboundReport: notjunk:1;M01:P0:WUr3+Pi+q6Q=;l2O0FcNgmlayeHQfxLvSV9jBlOI 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452001110158500 With colo we load device vmstate during each checkpoint, on top of a vm that was already running. Some devices expect a reset before loading vmstate on such a previously running vm. This fixes a crash when using COLO with Q35 machine. The reset adds 10-20ms overhead to the checkpointing proces in my testing. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index 96102c9d0fb3b60e063c81ce07b730011bc4919f..dc7cfa81ef7db78e3ee372642de= 48567c5bc06eb 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -729,6 +729,12 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, =20 bql_lock(); vmstate_loading =3D true; + /* + * With colo we load device vmstate during each checkpoint, on top of + * a vm that was already running. Some devices expect a reset before + * loading vmstate on such a previously running vm. + */ + qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452151; cv=none; d=zohomail.com; s=zohoarc; b=QndIxQrj8y0DlunURg5wCDkAtbSzS/88vb4NmD/iLOspXWd+XjkBINVG1Dt1bZufkLmIMJQ0BHyjwhnnxTXZPg7qqMDUTNyyprsefdkhCde5V4rAprS4/asIfXmlBsn7nDPVSZ5hLJDnDrvmApYdKy3UQle2GD7tlNAxb+KYQSg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452151; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YSxykUnLHj+SuX5ceNRivJWw7C8CFbfonhplWMaurEo=; b=RqbfV+cVil8RsYZM8ciOPegGlp0rFe8CV9h9daxTZiLpoad38i0sAmkwvB8AS0bKK8AevAcloXR13VUpYs7DPL2J70oeHi8e2tB0OOWdKDYy0kklvaMgzcZtxJ4mZt2NvyN4OFK1kW0TWXS149aDkFePZsO9At5MVoWwUVAvpZ0= 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 1772452151820379.55492974587753; Mon, 2 Mar 2026 03:49:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1it-0000Fq-5u; Mon, 02 Mar 2026 06:46:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ia-0008Lk-4H for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:44 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1iY-0006Bo-Ey for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:43 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MA4fI-1vqw6T3p1u-00GP08; Mon, 02 Mar 2026 12:45:39 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451940; x=1773056740; i=lukasstraub2@web.de; bh=YSxykUnLHj+SuX5ceNRivJWw7C8CFbfonhplWMaurEo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=ZLqZs6V7v8fVfT0ImbPsISdyQrsbS0kZa7TV0/RoYVMNXG5F+5GrF/p+7l9w21jr ZSMlvQ7ggO7NwiHzVB+AJaN5tst6MI1i/zqgQD3ZxiHrEkMB5j9TYGj+Noz4tNkDK U+g/3VHqty9J9bBMRHfi64CosPezm1drlPZ28NzLGwn62ALlH80+ebFd5pMGSmSA0 630MUYzMe4hShIWVWjPsMsKRTtBRX7nozCwLAPVLgdkxhgutFLobGUpryYfvFfD81 I+sVjOb4nZ7aNtUjwSEQ/eb7DT/eArCSv0hKXghjOdrq7E9+XhRQJr1vOusihlIVS 9GmYtJ2DxwAV6D38fw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 11/21] colo: Hold the BQL while sending ram state Date: Mon, 2 Mar 2026 12:45:26 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-11-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1103; i=lukasstraub2@web.de; h=from:subject:message-id; bh=RA7Q8b6eDwgtboLVRiR+7AHIKPUv7kjwK/dVBwC/CXE=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6UH347UxT0TbJUp92koPPgqwwnLOU5m0k39 AVvjU+rJJ2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WKDZD/96ISCOzA/5cIw7afVVdtbWjS3+WdEWTWPB2hDBaIzPMHRp+cfw8o+7UhDY9I+JUl+qTW9 bxifO39xFtRP82No1Iw797IOUWi0tLkqpafl3tmJCsurG3Zh1+MUQNQpKPrSwSwHMQztMjjjqaC VjEeWRPMYrLhrYm6n+Qf1olZZsBzYL6kJsivRGEylULZiQyXp4mKVVPUPo1dIQ49rwQLBwIvXZ+ qHsUXcROrLBoPKG8NDolPlWW17izNUQzn50+iiaPMsJJ0KWBrtepfM4auEX5E84GaoiNCOANLzm +zodP4jbtOl2rX3nSitneMuXPVdIN2XWAh9M2x4tcuQefxcLWWPP9BvbbEj7G/9Jw0HTQgXM863 +BWdRuNwjgUPwj6BJIRRVoavySjgp10CT4uAGeT146ZrE76V0bfHyj0ACaDC2/D7OvyChOr6lUT XCvbKAD9CwIlFnrzsyh3sPBp6kl1FXvAr4YUrO/DEQTszLFXjYzarofBjrYwPuqqVxsAP5zWALf Zf/6FhTd2+t9/sLpt8bnooQKqwQUCcIXJyFcbLSrURK1UEU8P9MlcGORNNeUNLBJHNmLokn86sP eBZiLyLxCqZ1WlJ8JtxrtUprUy0GNvSWZOTYnnpFWXgIfKk2FhuSzhNOMVKMyOJ5TZyZ4o9bXlf NlZkuDTu6iKKL8A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:hPUeje1DQ7Ce0REWq8zHr46vjw4KWh1UYSZcZVajT2fUwPkmoNS NKaXfL9RyW0dttVIvIcCF0pZ2vi8Pz4OHRDSKjfvp8VTpWcp5BtmfpyZhhnQM/aMmvl23BW oa/aG+yzDnrnAXGMGlIbQkLNFxcR/w8Pv3w84nNtpXQh4f1xWQDeWRkilvDaSczBZxTL6mj YwaJPYZIhM/IDvMMZ0wNg== UI-OutboundReport: notjunk:1;M01:P0:Cmm/Wn2e1hU=;a1+iV4KiKxstBRnM7hYIuU0C07N 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 gFviytRMP1Eq4bplE= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452154056158500 qemu_savevm_state_complete_precopy() requires that BQL is held. This fixes a crash when running with TCG accel. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index dc7cfa81ef7db78e3ee372642de48567c5bc06eb..3297aa593cd9f87bf1013598464= cc581a9d23531 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -455,9 +455,8 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, =20 /* Note: device state is saved into buffer */ ret =3D qemu_save_device_state(fb, &local_err); - - bql_unlock(); if (ret < 0) { + bql_unlock(); goto out; } =20 @@ -471,6 +470,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, */ qemu_savevm_state_complete_precopy_iterable(s->to_dst_file, false); qemu_savevm_state_end(s->to_dst_file); + bql_unlock(); =20 /* * We need the size of the VMstate data in Secondary side, --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452162; cv=none; d=zohomail.com; s=zohoarc; b=GDNFAVKGC2PK8E2iCsrqn8o4RINgeiAzJ5ADnSkZFwqR4YZnBCII5kHdt0vTFhWEYMMO92FeMNnx7ikZbhVHg/WClGj9cIOi/U+HzA4ci3vocw+v5JpIbCTShurBHCqRvzhAlA7LCdjyEY03ziweZmU3IgmW+EkQaDQLQxDSTuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452162; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QnjLUeKSVlL/TnFvcfaE/7Aufpnl6G2wkPqvyU4/A9A=; b=CZmVKndrToNmMKcW7ZGPqy8eGF07QaqGUPbVy0whAJKRx9w9OhwImiaLosbw1xTyZ2ljLtfvDKTbeUsD2mYXQrdAGPrcI///yL/prcBaGT3zZUYwhh/eJw+MejvTGBg/CNqZVKk3SEKP3xo+givGzcXq1N1E+h8N5cKFDRB4nUA= 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 1772452162214167.93568861753943; Mon, 2 Mar 2026 03:49:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1j7-0000mr-Il; Mon, 02 Mar 2026 06:46:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1io-0000Eg-6J for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:46:01 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1im-0006GS-JZ for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:57 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N0qr9-1viVft0gbt-00rzW7; Mon, 02 Mar 2026 12:45:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451940; x=1773056740; i=lukasstraub2@web.de; bh=QnjLUeKSVlL/TnFvcfaE/7Aufpnl6G2wkPqvyU4/A9A=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=CvagSwxz5asMARUn9VyHihCjhfyr1dGamrGoXaSCs3jU1zO0GthIdPmZI7pQ1/5m nZT0EpD5Qwf1oUnqcGRHZClmJ/VJFqOPwUPckn0BcYc+9q2uXEsL+U5WpfZAIn5Sp 47QFdXrKWQzxZ56wxDVndset/dH0qJwNOGy99cSTQSvceavrMmG/TeMwAmTy34nhY 1lombQIYtt4zc/wsyb5BrBVhN61CBIzuYvdM0Vron28gIhu4U5SIB3BgOu4UaANro ynGHdiGN2/2ERf2IIAml2vtpP0TCcAuhw1kqLRR1j7a4RZXjszqgCSzxTg8hb7V5r In5J67vw7l5ERbtsBw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 12/21] colo: Do not hold the BQL while receiving ram state. Date: Mon, 2 Mar 2026 12:45:27 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-12-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1457; i=lukasstraub2@web.de; h=from:subject:message-id; bh=5X2xJUQOZtX1vrH3iSE65Qld5dEQ8f6o9Mt01ciNeAY=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6UM3GbEL1JTxQTwWd0bCkjp5XF2dKHM/j2Y xY2vxpKNmSJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WCJaD/98+IZ2ZsE1qVOpXkirCkVQGeqzbkyu8nQiQ5FdhyB5lsv476oRsoBDkYVCTti9oPy7WIn XXpIsMNj4a36SHrS9XW3c7zBouLS1EdaueHK2FlaRnqxf4Ag0GTFG318bCrWwaZIel3SZTTdJKx 3ZICeAPYedNDBya6rnu2KO1FCyEIwrMtgIwjcaafMzmdifgdYdmoO0GWa57MRr/udYPX6J3FZWL iOtUIiHTKbpX7cjvFsJQHyOzcLrbjxB7/Xwdw7n9+eS6ihdHVjNepaCsRon6WQXO/qwEFAlQQa+ LeUhITFqgJy1OeawMIODhE/KK513U0OdJ9D2cLK6+MkbhN3XLYnXTKvaYcEDMJQvEJK78CF0MH/ 0HFxlbf8qUQG7o7fzzv4wjK6mJTBiSiKjp51oq4KDbfnh5T8DMcCvOsnymeohNARiMVlQdhL3Bn lF8GucPdi48X3/EaOOVXdOqU28iImPDlnGcXlV7ZqZKUfpH+N+qx87X3TgDPws9+RrppVubUP+b BhIpD2LUZ7JbgXgx1GKpOY0odiC2rj0RixzWXiQQO1XlV+YH63vYIlPNCbIqTJ8DtELXzgXuQma QUa7IbR+SBYH7pWiWsfkHuk3GxsQJe00CptSoFJQjKbgh5CF4bqpejj5fa42LIMzmySFTjSWp4d LziWeVJzbrPCc1A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:JL2tDA/QryzfxbXc0gGb19eragutbnhZXYYvzUOXG9TmzGaBZDH di5i0iZ8K9UjNfi4JLTDADCKYUkbZiaSP4X/xcp4AJLgr5hneMIbYENTSW5sGiFK9OmyFQg 4RuDCU2c0AOL/AtrmJrL+Qtyb1zlXSr/AmTQVCPs14V7yvGocwPDleuIqbpNhZh7WGVPCpG RCGMVR/BJxob73xOk3RkQ== UI-OutboundReport: notjunk:1;M01:P0:+yQFzDFNMiY=;JFr+60XdaIkS57VMnQV3O6b6U00 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452164263158501 We only receive ram into the colo cache here and don't touch anything else, so the BQL is not needed here. Move cpu_synchronize_all_states() downwards, before we apply the received checkpoint. It turns out that qemu_system_reset() already calls it for us. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/colo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 3297aa593cd9f87bf1013598464cc581a9d23531..ce02c71d8857d470be434bdf3a9= cacad3baab0d5 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -686,11 +686,7 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *mis, return; } =20 - bql_lock(); - cpu_synchronize_all_states(); ret =3D qemu_loadvm_state_main(mis->from_src_file, mis, errp); - bql_unlock(); - if (ret < 0) { return; } @@ -733,6 +729,8 @@ static void colo_incoming_process_checkpoint(MigrationI= ncomingState *mis, * With colo we load device vmstate during each checkpoint, on top of * a vm that was already running. Some devices expect a reset before * loading vmstate on such a previously running vm. + * + * NOTE: qemu_system_reset() calls cpu_synchronize_all_states() for us */ qemu_system_reset(SHUTDOWN_CAUSE_SNAPSHOT_LOAD); colo_flush_ram_cache(); --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452116; cv=none; d=zohomail.com; s=zohoarc; b=LuufV3ilJKo9tB7SWmntvcjNWlke1IrzozQpKnGCdAzSGNfwBELqWgtmxrDWIOXqQ1D1n9FnZKs0pvnrbswSKjVkDd4AmkHEmrkmSvA1UxCWlRtGqsKo6klvqwGz+NdQOE9f68vBpXTVLPybVZ/7gJ+l1N4rKzrlD0xvYMyNpU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452116; 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=HxiDYFgacPvgSqtV2BRTOBlRJCdeGvyIqxMJefcSLYA=; b=NM0xpj7mHWtZdCWq/UCbqZz6yN0CjtNrYuZNDgWKofXX9/xzdPCHrUb0yBfcFrULewOLmyrXS3h69lQo9d1D5r4FdIOhyIW1vYOveerHBWGBs9iO+7jQ1x9Z7JsUy/Hn0fyAkwty0xZJrmvgQNVVIaiJRJCZkhoC2GidIjdBw7c= 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 1772452116852799.2649839485598; Mon, 2 Mar 2026 03:48:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1j7-0000mt-Hy; Mon, 02 Mar 2026 06:46:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ic-0008W8-57 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:49 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1iZ-0006CB-PA for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:45 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MidDR-1vRX3T1lBv-00asN7; Mon, 02 Mar 2026 12:45:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451940; x=1773056740; i=lukasstraub2@web.de; bh=HxiDYFgacPvgSqtV2BRTOBlRJCdeGvyIqxMJefcSLYA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=K/mjSlZVEjTu/SufI1FNFBM+4UB2CQC/buvkE85n4saYdJBXgWEolWhwXJ7IFscn qF7JvPJRARHXtHoir3auuAtp90yMAdz6FZ+7zdPMv8/GMflM+7rQuvs2pmp9zuITU F3PdkTD9BtRBKImirLylqYqja16Z1iPoWlZevs6nCa+EHjP56wVoLRUoqsGZkrzfF DexxVxfJrnUnI5OMFlaP0bOGkM7WEnn76S+L8rjbXaxXwPko6LO956Nhtaasz2tcC 1mwJPLB8PC43a++eScR3CjnsLQ4Iv4LUuVhkHd4Ga0anz1Cp41iy/PI0SDUXAw4mh mGkWqN0eBAPclJdxmw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 13/21] migration-test: Add COLO migration unit test Date: Mon, 2 Mar 2026 12:45:28 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-13-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=VhVWaFr02/WFdhcd119EsGPo60ArzchyNKMe18f0Kks=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6U/F3qUHj8768f/VCsn46FkFqmNXzgxUsue jcbQDcJzF6JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WJ38D/0aWxqzkE/VoFkvdy06/ay7yo1JZfUvi/2JoqkSJgXbOdr4IRHynrol3/SR/Rl/swSkfrg 0ZIHjSg837VOu2xw9K7AdWd4cjf8hhzR0KGlKW/eR7oiGTARo6yjlbePB3Saxca/cP/ID5jOUP/ 4qEcnFSqLPzyUObfDiMXg0mZ51dcynX0hMVCtcF7aYaHzgBZIPwWc5hkHhZkcg4tQ32ok7XQA0v WHHxS87vOPPEQBXKynO/OWgcJtX9g3qDsLpt5R26mcEgrUFZlsH1w4xRnA11v93K6mGPYBhOWFu 1hWaZxu9QTdJV+emO84noF7wdBdnuu9RtrY0ulN01XEuW8ik5aFdRaIgdHbk25Ovom0nerYze+5 Os1KXbF4o5mu3iZGtjPT+8Aj+Nh/fiiPPkmisOsLWiCL57NTY9a4bwv8oZdW98es4SF+QfdJvUF VgEO9oa63UWldK8uJgBZ3ypNw480kAbFwW6IHJwlXcOEs1aUZwZLu6ivqhUm3XXHSMICZ2VKWxc MLexlHFyMSWzwIGELLnuRIRyzEVYQgoU1bprH7I40IzcSpP44XCAse9Vrnhfg+XCOH7+a9SbDq/ Kh2TEe+isqds1Fl4Br4LotvjN8D63xvvdkN5yRlU61Ehdy82hoQopV7SGStQCOHdDh6AhHUyPn9 Jd4hS95V3DIx6gQ== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:fo1EZXsM47r4O0a27HeV5cXpcSCGt1RDU6wnR8S7y98JiCWc85E AL3hO9j6/HIklL+KVyTvtaK4rzcLjHxiXBXRnQMQgzXRkNTOlSkGdUnyfnIL5xbz7xDXnlO 399/HbX4aPVcB+WKJMKw3+iTOhIoT+cpEXhqnCPXpoSsZXQcDiFBG6nagQPNbtGr+4LTfrT UOVEXfTlHk3pPEpcOvWkQ== UI-OutboundReport: notjunk:1;M01:P0:jDq+ozn5N7g=;2m1RzGjVSzuWTVQu4Dn3lQve0J7 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 W4dLydZieOOS8u8aLMQo1XrKhNCgj Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452117942158500 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 d2a1f4cc08223cb944b61e32a6d89e25bf82eacb..1b0ae10750036be00571b7104ad= 8426c071bb54c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3875,6 +3875,7 @@ F: migration/colo* F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h +F: tests/qtest/migration/colo-tests.c F: docs/COLO-FT.txt =20 COLO Proxy diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 25fdbc798010b19e8ec9b6ab55e02d3fb5741398..6a46e2a767de12d978d910ddb6d= e175bce9810b8 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -374,6 +374,11 @@ if gnutls.found() endif endif =20 +migration_colo_files =3D [] +if get_option('replication').allowed() + migration_colo_files =3D [files('migration/colo-tests.c')] +endif + qtests =3D { 'aspeed_hace-test': files('aspeed-hace-utils.c', 'aspeed_hace-test.c'), 'aspeed_smc-test': files('aspeed-smc-utils.c', 'aspeed_smc-test.c'), @@ -385,7 +390,7 @@ qtests =3D { 'migration/migration-util.c') + dbus_vmstate1, 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], - 'migration-test': test_migration_files + migration_tls_files, + 'migration-test': test_migration_files + migration_tls_files + migration= _colo_files, 'pxe-test': files('boot-sector.c'), 'pnv-xive2-test': files('pnv-xive2-common.c', 'pnv-xive2-flush-sync.c', 'pnv-xive2-nvpg_bar.c'), diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 08936871741535c926eeac40a7d7c3f461c72fd0..e582f05c7dc2673dbd05a936df8= feb6c964b5bbc 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) migration_test_add_precopy(env); migration_test_add_cpr(env); migration_test_add_misc(env); + migration_test_add_colo(env); =20 ret =3D g_test_run(); =20 diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c new file mode 100644 index 0000000000000000000000000000000000000000..598a1d3821ed0a9031873270202= 7cebad47352fd --- /dev/null +++ b/tests/qtest/migration/colo-tests.c @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * QTest testcases for COLO migration + * + * Copyright (c) 2025 Lukas Straub + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "libqtest.h" +#include "migration/framework.h" +#include "migration/migration-qmp.h" +#include "migration/migration-util.h" +#include "qemu/module.h" + +static int test_colo_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + QTestState *from, *to; + void *data_hook =3D NULL; + + /* + * For the COLO test, both VMs will run in parallel. Thus both VMs wan= t to + * open the image read/write at the same time. Using read-only=3Don is= not + * possible here, because ide-hd does not support read-only backing im= age. + * + * So use -snapshot, where each qemu instance creates its own writable + * snapshot internally while leaving the real image read-only. + */ + args->start.opts_source =3D "-snapshot"; + args->start.opts_target =3D "-snapshot"; + + /* + * COLO migration code logs many errors when the migration socket + * is shut down, these are expected so we hide them here. + */ + args->start.hide_stderr =3D true; + + /* + * Test with yank with out of band capability since that is how it is + * used in production. + */ + args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; + + if (migrate_start(&from, &to, args->listen_uri, &args->start)) { + return -1; + } + + migrate_set_parameter_int(from, "x-checkpoint-delay", 300); + + if (args->start_hook) { + data_hook =3D args->start_hook(from, to); + } + + migrate_ensure_converge(from); + wait_for_serial("src_serial"); + + migrate_qmp(from, to, args->connect_uri, NULL, "{}"); + + wait_for_migration_status(from, "colo", NULL); + wait_for_resume(to, get_dst()); + + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + + /* wait for 3 checkpoints */ + for (int i =3D 0; i < 3; i++) { + qtest_qmp_eventwait(to, "RESUME"); + wait_for_serial("src_serial"); + wait_for_serial("dest_serial"); + } + + if (failover_during_checkpoint) { + qtest_qmp_eventwait(to, "STOP"); + } + if (primary_failover) { + qtest_qmp_assert_success(from, "{'exec-oob': 'yank', 'id': 'yank-c= md', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}= "); + qtest_qmp_assert_success(from, "{'execute': 'x-colo-lost-heartbeat= '}"); + wait_for_serial("src_serial"); + } else { + qtest_qmp_assert_success(to, "{'exec-oob': 'yank', 'id': 'yank-cmd= ', " + "'arguments': {'instances':" + "[{'type': 'migration'}]}}"); + qtest_qmp_assert_success(to, "{'execute': 'x-colo-lost-heartbeat'}= "); + wait_for_serial("dest_serial"); + } + + if (args->end_hook) { + args->end_hook(from, to, data_hook); + } + + migrate_end(from, to, !primary_failover); + + return 0; +} + +static void test_colo_plain_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "tcp:127.0.0.1:0"; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void *hook_start_multifd(QTestState *from, QTestState *to) +{ + return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none"); +} + +static void test_colo_multifd_common(MigrateCommon *args, + bool failover_during_checkpoint, + bool primary_failover) +{ + args->listen_uri =3D "defer"; + args->start_hook =3D hook_start_multifd; + args->start.caps[MIGRATION_CAPABILITY_MULTIFD] =3D true; + test_colo_common(args, failover_during_checkpoint, primary_failover); +} + +static void test_colo_plain_primary_failover(char *name, MigrateCommon *ar= gs) +{ + test_colo_plain_common(args, false, true); +} + +static void test_colo_plain_secondary_failover(char *name, MigrateCommon *= args) +{ + test_colo_plain_common(args, false, false); +} + +static void test_colo_multifd_primary_failover(char *name, MigrateCommon *= args) +{ + test_colo_multifd_common(args, false, true); +} + +static void test_colo_multifd_secondary_failover(char *name, + MigrateCommon *args) +{ + test_colo_multifd_common(args, false, false); +} + +static void test_colo_plain_primary_failover_checkpoint(char *name, + MigrateCommon *arg= s) +{ + test_colo_plain_common(args, true, true); +} + +static void test_colo_plain_secondary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_plain_common(args, true, false); +} + +static void test_colo_multifd_primary_failover_checkpoint(char *name, + MigrateCommon *a= rgs) +{ + test_colo_multifd_common(args, true, true); +} + +static void test_colo_multifd_secondary_failover_checkpoint(char *name, + MigrateCommon = *args) +{ + test_colo_multifd_common(args, true, false); +} + +void migration_test_add_colo(MigrationTestEnv *env) +{ + if (!env->full_set) { + return; + } + + migration_test_add("/migration/colo/plain/primary_failover", + test_colo_plain_primary_failover); + migration_test_add("/migration/colo/plain/secondary_failover", + test_colo_plain_secondary_failover); + + migration_test_add("/migration/colo/multifd/primary_failover", + test_colo_multifd_primary_failover); + migration_test_add("/migration/colo/multifd/secondary_failover", + test_colo_multifd_secondary_failover); + + migration_test_add("/migration/colo/plain/primary_failover_checkpoint", + test_colo_plain_primary_failover_checkpoint); + migration_test_add("/migration/colo/plain/secondary_failover_checkpoin= t", + test_colo_plain_secondary_failover_checkpoint); + + migration_test_add("/migration/colo/multifd/primary_failover_checkpoin= t", + test_colo_multifd_primary_failover_checkpoint); + migration_test_add("/migration/colo/multifd/secondary_failover_checkpo= int", + test_colo_multifd_secondary_failover_checkpoint); +} diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index 40984d04930da2d181326d9f6a742bde49018103..80eef758932ce9c301ed6c0f638= 3d18756144870 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -264,5 +264,10 @@ void migration_test_add_file(MigrationTestEnv *env); void migration_test_add_precopy(MigrationTestEnv *env); void migration_test_add_cpr(MigrationTestEnv *env); void migration_test_add_misc(MigrationTestEnv *env); +#ifdef CONFIG_REPLICATION +void migration_test_add_colo(MigrationTestEnv *env); +#else +static inline void migration_test_add_colo(MigrationTestEnv *env) {}; +#endif =20 #endif /* TEST_FRAMEWORK_H */ --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452056; cv=none; d=zohomail.com; s=zohoarc; b=eQJ6HVtta3FPdZs/DcNHA0PjjhXFF93ywlBnwZ5kOGelDvjo4sKBdL3WEPAF3qAAfNNTEHVlWlPGmu+EbWcYmgszHBtxqdBXdb4FuSW35jjR+Hy6iSo5r3+TnVvg9IlbaTN0xerbzdqby/5vwVCFpN062+DbIm2BuMTcDr71W00= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452056; 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=5ZMxuZledCNhBkww1q32JXmc44pD1RwIeIS5m+4DSPs=; b=bZs0GiUbjsIUG1FIrv7f4rKP10hL4PQqYRRX5fj+AhUseoVm86uoWxdoqZagEd4tRuwkKq9m1xzaMYOMW8povKfrvJZBTSWUy672IKuQBHkpvz+EITiIegEEL0fRJaku2jLC8n363LH4F1azutfEvnRSY4GyZJuq3sbuc/HVERI= 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 1772452056279578.3587568095786; Mon, 2 Mar 2026 03:47:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1jC-00015F-EK; Mon, 02 Mar 2026 06:46:22 -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 1vx1iq-0000Fx-Mk for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:46:01 -0500 Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1im-0006GL-JB for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:46:00 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M4KJX-1vwkjd2rLd-004YDv; Mon, 02 Mar 2026 12:45:40 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451940; x=1773056740; i=lukasstraub2@web.de; bh=5ZMxuZledCNhBkww1q32JXmc44pD1RwIeIS5m+4DSPs=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=tcQoTbZ7POLaAzVgcCJ17dTCbVCP2vED/mKrx+qyprGGDIBH/hlPmXLUrgeSTpOy VTL+bOrYEfs/YrG3AeI9e5g+59G2M5UzMzCPooz/8vs7Eoi4SR2fDfnXz3B8pCxQb oYBRedJ2D3F8Uzmu3G0gJC1U9j7II6f0ykc0DWhmbc1o2CsGcZDZ69DSwjmOhFnE/ /gj0xcznrgd0njaT5KrVs3ky1mzEnHOk9iTe2ibNqom2PrOtrLGR4VRf5y/npXm09 +owuaLYIkzPAmosgVWGxkRrSO06QSXMBbeA022TH2A1lQtJ5WpFmAaa+iNOGDPokb Cl5qCPbKLBb1idAKIA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 14/21] Convert colo main documentation to restructuredText Date: Mon, 2 Mar 2026 12:45:29 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-14-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=ifBF4hUr+Rs6qxvXE1tWijcBFlkplxnUJNPDi8Qzm/k=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6UlMBjzlDDSLnDstQVR5uxsJpTmD5IuuyXG RdXvPaYWSGJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WPSNEACgTB2fYyHdI7LChS+5uPCjG9sfYrlOsj5D/1FUCufTNNoTE2hzC70kT05s85FcKCk5WLg uLGa+W3sJsiBEQ91jmOBbHfAn7BC1JfueBteWqP0cK4cRqJNfYE1pXQAsT9yAO/MyiOaveUOuLF NaCNrExooqt8YuYFmsuFpKASVVd/rncX+fgxiV4xcRKYkNkLobsUvSBNm5fARwzPdWU7ulUFzLS Md0Dhp2IToBbx8aJCrrZknBOmjHDeimcpGdrq4SROW0Yx5Hmfm3mQnT3znEMjELzkMgCYZLwpVM gJUGJpcYxx1/ud0GX0oQijVwwk6u2RKl3p5jlI357aldlIJ7SDvKNeFV8GOgXAQcoScHfPf8Rif qciIEItEtGd7I5oQV1zE8EiLxf+z1jPC8uKbby2QbaBjJzLkpunG5xBJX9b+o71ZplIr/GxWYh/ WuPD+n0+S1aji+0G0AvFJTq2a6Uq6VU/hvOmLa/q0uIkXdcS/Lp6IbN8Gl/iprNiy7faNyzQ9EV wxPTwujPYMDTekWIWQdNiAhTfhkNEUDJMa+3StWpj4d+p5VAuO65DKm6Kli6My/jzFqFNk6aUOi D+ByC5zZVrqTKVMspQSh+uQOoV7d2XVH+WPGXf8mEH6QKLoNsYTg5rzRrY5ohBr8YA27i5ZJjQE 2Wqs3SGYU66x2uw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:hQJ4msaJCsbLF0I3K574W4tcw+zk/owL7QMkKu47s3th1N6mVNs uyniVN5qy//lOvyxkmxlASRddZ1v5M5PNMYdl+pgyxTey9Lv8oCMeKQXogLD4yQq88A7QPl EVjPQxfPKM2OuGmEBGN0HYxLsxBK51bzHVsm/SeNzHWqQ5GrNh+JrF0v4p0wCpIAlsK9fS1 0VjVdc53q59bqyKsPfNLw== UI-OutboundReport: notjunk:1;M01:P0:g+j8C0BaWOI=;MVi2D5c9alJY7k7tKaZpGcRh+7P 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452057539158500 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 1b0ae10750036be00571b7104ad8426c071bb54c..32ab4b1faa29499ae9067088ae1= 739e52680cbb4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3876,7 +3876,7 @@ F: migration/multifd-colo.* F: include/migration/colo.h F: include/migration/failover.h F: tests/qtest/migration/colo-tests.c -F: docs/COLO-FT.txt +F: docs/system/qemu-colo.rst =20 COLO Proxy M: Zhang Chen diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt deleted file mode 100644 index 2283a09c080b8996f9767eeb415e8d4fbdc940af..000000000000000000000000000= 0000000000000 --- a/docs/COLO-FT.txt +++ /dev/null @@ -1,334 +0,0 @@ -COarse-grained LOck-stepping Virtual Machines for Non-stop Service ----------------------------------------- -Copyright (c) 2016 Intel Corporation -Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - -This document gives an overview of COLO's design and how to use it. - -=3D=3D Background =3D=3D -Virtual machine (VM) replication is a well known technique for providing -application-agnostic software-implemented hardware fault tolerance, -also known as "non-stop service". - -COLO (COarse-grained LOck-stepping) is a high availability solution. -Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the -same request from client, and generate response in parallel too. -If the response packets from PVM and SVM are identical, they are released -immediately. Otherwise, a VM checkpoint (on demand) is conducted. - -=3D=3D Architecture =3D=3D - -The architecture of COLO is shown in the diagram below. -It consists of a pair of networked physical nodes: -The primary node running the PVM, and the secondary node running the SVM -to maintain a valid replica of the PVM. -PVM and SVM execute in parallel and generate output of response packets for -client requests according to the application semantics. - -The incoming packets from the client or external network are received by t= he -primary node, and then forwarded to the secondary node, so that both the P= VM -and the SVM are stimulated with the same requests. - -COLO receives the outbound packets from both the PVM and SVM and compares = them -before allowing the output to be sent to clients. - -The SVM is qualified as a valid replica of the PVM, as long as it generates -identical responses to all client requests. Once the differences in the ou= tputs -are detected between the PVM and SVM, COLO withholds transmission of the -outbound packets until it has successfully synchronized the PVM state to t= he SVM. - - Primary Node = Secondary Node -+------------+ +-----------------------+ +------------------------+= +------------+ -| | | HeartBeat +<----->+ HeartBeat |= | | -| Primary VM | +-----------+-----------+ +-----------+------------+= |Secondary VM| -| | | | = | | -| | +-----------|-----------+ +-----------|------------+= | | -| | |QEMU +---v----+ | |QEMU +----v---+ |= | | -| | | |Failover| | | |Failover| |= | | -| | | +--------+ | | +--------+ |= | | -| | | +---------------+ | | +---------------+ |= | | -| | | | VM Checkpoint +-------------->+ VM Checkpoint | |= | | -| | | +---------------+ | | +---------------+ |= | | -|Requests<--------------------------\ /-----------------\ /---------------= ------>Requests| -| | | ^ ^ | | | | |= | | -|Responses+---------------------\ /-|-|------------\ /--------------------= -----+Responses| -| | | | | | | | | | | | | |= | | -| | | +-----------+ | | | | | | | | | | +----------+ |= | | -| | | | COLO disk | | | | | | | | | | | | COLO disk| |= | | -| | | | Manager +---------------------------->| Manager | |= | | -| | | ++----------+ v v | | | | | v v | +---------++ |= | | -| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | |= | | -| | | || COLO Proxy || | | COLO Proxy | | |= | | -| | | || (compare packet || | |(adjust sequence | | |= | | -| | | ||and mirror packet)|| | | and ACK) | | |= | | -| | | |+------------+---+-+| | +-----------------+ | |= | | -+------------+ +-----------------------+ +------------------------+= +------------+ -+------------+ | | | | = +------------+ -| VM Monitor | | | | | = | VM Monitor | -+------------+ | | | | = +------------+ -+---------------------------------------+ +-------------------------= ---------------+ -| Kernel | | | | | Kernel | = | -+---------------------------------------+ +-------------------------= ---------------+ - | | | | - +--------------v+ +---------v---+--+ +------------------+ +v---= ----------+ - | Storage | |External Network| | External Network | | S= torage | - +---------------+ +----------------+ +------------------+ +----= ----------+ - - -=3D=3D Components introduction =3D=3D - -You can see there are several components in COLO's diagram of architecture. -Their functions are described below. - -HeartBeat: -Runs on both the primary and secondary nodes, to periodically check platfo= rm -availability. When the primary node suffers a hardware fail-stop failure, -the heartbeat stops responding, the secondary node will trigger a failover -as soon as it determines the absence. - -COLO disk Manager: -When primary VM writes data into image, the colo disk manager captures thi= s data -and sends it to secondary VM's which makes sure the context of secondary V= M's -image is consistent with the context of primary VM 's image. -For more details, please refer to docs/block-replication.txt. - -Checkpoint/Failover Controller: -Modifications of save/restore flow to realize continuous migration, -to make sure the state of VM in Secondary side is always consistent with V= M in -Primary side. - -COLO Proxy: -Delivers packets to Primary and Secondary, and then compare the responses = from -both side. Then decide whether to start a checkpoint according to some rul= es. -Please refer to docs/colo-proxy.txt for more information. - -Note: -HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess -by using 'x-colo-lost-heartbeat' command. - -=3D=3D COLO operation status =3D=3D - -+-----------------+ -| | -| Start COLO | -| | -+--------+--------+ - | - | Main qmp command: - | migrate-set-capabilities with x-colo - | migrate - | - v -+--------+--------+ -| | -| COLO running | -| | -+--------+--------+ - | - | Main qmp command: - | x-colo-lost-heartbeat - | or - | some error happened - v -+--------+--------+ -| | send qmp event: -| COLO failover | COLO_EXIT -| | -+-----------------+ - -COLO use the qmp command to switch and report operation status. -The diagram just shows the main qmp command, you can get the detail -in test procedure. - -=3D=3D Test procedure =3D=3D -Note: Here we are running both instances on the same host for testing, -change the IP Addresses if you want to run it on two hosts. Initially -127.0.0.1 is the Primary Host and 127.0.0.2 is the Secondary Host. - -=3D=3D Startup qemu =3D=3D -1. Primary: -Note: Initially, $imagefolder/primary.qcow2 needs to be copied to all host= s. -You don't need to change any IP's here, because 0.0.0.0 listens on any -interface. The chardev's with 127.0.0.1 IP's loopback to the local qemu -instance. - -# imagefolder=3D"/mnt/vms/colo-test-primary" - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name primary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don,wai= t=3Doff \ - -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Don,wa= it=3Don \ - -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server=3Don,= wait=3Doff \ - -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ - -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,server=3D= on,wait=3Doff \ - -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ - -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirror0 \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,indev=3D= compare_out \ - -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outdev= =3Dcompare0 \ - -object iothread,id=3Diothread1 \ - -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_in=3D= compare1,\ -outdev=3Dcompare_out0,iothread=3Diothread1 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.driver=3D= qcow2 -S - -2. Secondary: -Note: Active and hidden images need to be created only once and the -size should be the same as primary.qcow2. Again, you don't need to change -any IP's here, except for the $primary_ip variable. - -# imagefolder=3D"/mnt/vms/colo-test-secondary" -# primary_ip=3D127.0.0.1 - -# qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G - -# qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G - -# qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp 1 -= qmp stdio \ - -device piix3-usb-uhci -device usb-tablet -name secondary \ - -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge-hel= per \ - -device rtl8139,id=3De0,netdev=3Dhn0 \ - -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-ms= =3D1000 \ - -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-ms= =3D1000 \ - -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dred0 \ - -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3Dred1= \ - -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ - -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.qcow= 2,driver=3Dqcow2 \ - -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary,fil= e.driver=3Dqcow2,\ -top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active.qco= w2,\ -file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/seco= ndary-hidden.qcow2,\ -file.backing.backing=3Dparent0 \ - -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo,vot= e-threshold=3D1,\ -children.0=3Dchilds0 \ - -incoming tcp:0.0.0.0:9998 - - -3. On Secondary VM's QEMU monitor, issue command -{"execute":"qmp_capabilities"} -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "da= ta": {"host": "0.0.0.0", "port": "9999"} } } } -{"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable= ": true } } - -Note: - a. The qmp command nbd-server-start and nbd-server-add must be run - before running the qmp command migrate on primary QEMU - b. Active disk, hidden disk and nbd target's length should be the - same. - c. It is better to put active disk and hidden disk in ramdisk. They - will be merged into the parent disk on failover. - -4. On Primary VM's QEMU monitor, issue command: -{"execute":"qmp_capabilities"} -{"execute": "human-monitor-command", "arguments": {"command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", "nod= e": "replication0" } } -{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } - - Note: - a. There should be only one NBD Client for each primary disk. - b. The qmp command line must be run after running qmp command line in - secondary qemu. - -5. After the above steps, you will see, whenever you make changes to PVM, = SVM will be synced. -You can issue command '{ "execute": "migrate-set-parameters" , "arguments"= :{ "x-checkpoint-delay": 2000 } }' -to change the idle checkpoint period time - -6. Failover test -You can kill one of the VMs and Failover on the surviving VM: - -If you killed the Secondary, then follow "Primary Failover". After that, -if you want to resume the replication, follow "Primary resume replication" - -If you killed the Primary, then follow "Secondary Failover". After that, -if you want to resume the replication, follow "Secondary resume replicatio= n" - -=3D=3D Primary Failover =3D=3D -The Secondary died, resume on the Primary - -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "ch= ild": "children.1"} } -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= del replication0" } } -{"execute": "object-del", "arguments":{ "id": "comp0" } } -{"execute": "object-del", "arguments":{ "id": "iothread1" } } -{"execute": "object-del", "arguments":{ "id": "m0" } } -{"execute": "object-del", "arguments":{ "id": "redire0" } } -{"execute": "object-del", "arguments":{ "id": "redire1" } } -{"execute": "x-colo-lost-heartbeat" } - -=3D=3D Secondary Failover =3D=3D -The Primary died, resume on the Secondary and prepare to become the new Pr= imary - -{"execute": "nbd-server-stop"} -{"execute": "x-colo-lost-heartbeat"} - -{"execute": "object-del", "arguments":{ "id": "f2" } } -{"execute": "object-del", "arguments":{ "id": "f1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red1" } } -{"execute": "chardev-remove", "arguments":{ "id": "red0" } } - -{"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {"typ= e": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.0= ", "port": "9003" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0.0.= 0", "port": "9004" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": {"ty= pe": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.0.= 0.1", "port": "9001" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend": {"= type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127.= 0.0.1", "port": "9001" } }, "server": false } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "127= .0.0.1", "port": "9005" } }, "server": true } } } } -{"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9005" } }, "server": false } } } } - -=3D=3D Primary resume replication =3D=3D -Resume replication after new Secondary is up. - -Start the new Secondary (Steps 2 and 3 above), then on the Primary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync"} } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } - -Note: -If this Primary previously was a Secondary, then we need to insert the -filters before the filter-rewriter by using the -""insert": "before", "position": "id=3Drew0"" Options. See below. - -=3D=3D Secondary resume replication =3D=3D -Become Primary and resume replication after new Secondary is up. Note -that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. - -Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), -then on the old Secondary: -{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id"= : "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing", "= format": "raw", "sync": "full"} } - -Wait until disk is synced, then: -{"execute": "stop"} -{"execute": "block-job-cancel", "arguments":{ "device": "resync" } } - -{"execute": "human-monitor-command", "arguments":{ "command-line": "drive_= add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file.hos= t=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplicatio= n0"}} -{"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0", "no= de": "replication0" } } - -{"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "id":= "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "queue= ": "tx", "outdev": "mirror0" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "indev": "compare_out" } } -{"execute": "object-add", "arguments":{ "qom-type": "filter-redirector", "= id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": "hn0= ", "queue": "rx", "outdev": "compare0" } } -{"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": "iot= hread1" } } -{"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "id": = "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outdev": = "compare_out0", "iothread": "iothread1" } } - -{"execute": "migrate-set-capabilities", "arguments":{ "capabilities": [ {"= capability": "x-colo", "state": true } ] } } -{"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } - -=3D=3D TODO =3D=3D -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. diff --git a/docs/system/index.rst b/docs/system/index.rst index 427b020483104f6589878bbf255a367ae114c61b..6268c41aea9c74dc3e59d896b5a= e082360bfbb1a 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -41,3 +41,4 @@ or Hypervisor.Framework. igvm vm-templating sriov + qemu-colo diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst new file mode 100644 index 0000000000000000000000000000000000000000..4b5fbbf398f8a5c4ea6baad615b= de94b2b4678d2 --- /dev/null +++ b/docs/system/qemu-colo.rst @@ -0,0 +1,360 @@ +Qemu COLO Fault Tolerance +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. + +This document gives an overview of COLO's design and how to use it. + +Background +---------- +Virtual machine (VM) replication is a well known technique for providing +application-agnostic software-implemented hardware fault tolerance, +also known as "non-stop service". + +COLO (COarse-grained LOck-stepping) is a high availability solution. +Both primary VM (PVM) and secondary VM (SVM) run in parallel. They receive= the +same request from client, and generate response in parallel too. +If the response packets from PVM and SVM are identical, they are released +immediately. Otherwise, a VM checkpoint (on demand) is conducted. + +Architecture +------------ +The architecture of COLO is shown in the diagram below. +It consists of a pair of networked physical nodes: +The primary node running the PVM, and the secondary node running the SVM +to maintain a valid replica of the PVM. +PVM and SVM execute in parallel and generate output of response packets for +client requests according to the application semantics. + +The incoming packets from the client or external network are received by t= he +primary node, and then forwarded to the secondary node, so that both the P= VM +and the SVM are stimulated with the same requests. + +COLO receives the outbound packets from both the PVM and SVM and compares = them +before allowing the output to be sent to clients. + +The SVM is qualified as a valid replica of the PVM, as long as it generates +identical responses to all client requests. Once the differences in the ou= tputs +are detected between the PVM and SVM, COLO withholds transmission of the +outbound packets until it has successfully synchronized the PVM state to t= he SVM. + +Overview:: + + Primary Node = Secondary Node + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + | | | HeartBeat +<----->+ HeartBeat = | | | + | Primary VM | +-----------+-----------+ +-----------+---------= ---+ |Secondary VM| + | | | | = | | + | | +-----------|-----------+ +-----------|---------= ---+ | | + | | |QEMU +---v----+ | |QEMU +----v---+ = | | | + | | | |Failover| | | |Failover| = | | | + | | | +--------+ | | +--------+ = | | | + | | | +---------------+ | | +---------------+ = | | | + | | | | VM Checkpoint +-------------->+ VM Checkpoint | = | | | + | | | +---------------+ | | +---------------+ = | | | + |Requests<--------------------------\ /-----------------\ /-----------= ---------->Requests| + | | | ^ ^ | | | | = | | | + |Responses+---------------------\ /-|-|------------\ /----------------= ---------+Responses| + | | | | | | | | | | | | | = | | | + | | | +-----------+ | | | | | | | | | | +---------= -+ | | | + | | | | COLO disk | | | | | | | | | | | | COLO dis= k| | | | + | | | | Manager +---------------------------->| Manager = | | | | + | | | ++----------+ v v | | | | | v v | +---------= ++ | | | + | | | |+-----------+-+-+-++| | ++-+--+-+---------+ = | | | | + | | | || COLO Proxy || | | COLO Proxy | = | | | | + | | | || (compare packet || | |(adjust sequence | = | | | | + | | | ||and mirror packet)|| | | and ACK) | = | | | | + | | | |+------------+---+-+| | +-----------------+ = | | | | + +------------+ +-----------------------+ +---------------------= ---+ +------------+ + +------------+ | | | = | +------------+ + | VM Monitor | | | | = | | VM Monitor | + +------------+ | | | = | +------------+ + +---------------------------------------+ +---------------------= -------------------+ + | Kernel | | | | | Kernel = | | + +---------------------------------------+ +---------------------= -------------------+ + | | | | + +--------------v+ +---------v---+--+ +------------------+ += v-------------+ + | Storage | |External Network| | External Network | |= Storage | + +---------------+ +----------------+ +------------------+ += --------------+ + +Components introduction +^^^^^^^^^^^^^^^^^^^^^^^ +You can see there are several components in COLO's diagram of architecture. +Their functions are described below. + +HeartBeat +~~~~~~~~~ +Runs on both the primary and secondary nodes, to periodically check platfo= rm +availability. When the primary node suffers a hardware fail-stop failure, +the heartbeat stops responding, the secondary node will trigger a failover +as soon as it determines the absence. + +COLO disk Manager +~~~~~~~~~~~~~~~~~ +When primary VM writes data into image, the colo disk manager captures thi= s data +and sends it to secondary VM's which makes sure the context of secondary V= M's +image is consistent with the context of primary VM 's image. +For more details, please refer to docs/block-replication.txt. + +Checkpoint/Failover Controller +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Modifications of save/restore flow to realize continuous migration, +to make sure the state of VM in Secondary side is always consistent with V= M in +Primary side. + +COLO Proxy +~~~~~~~~~~ +Delivers packets to Primary and Secondary, and then compare the responses = from +both side. Then decide whether to start a checkpoint according to some rul= es. +Please refer to docs/colo-proxy.txt for more information. + +Note: +HeartBeat has not been implemented yet, so you need to trigger failover pr= ocess +by using 'x-colo-lost-heartbeat' command. + +COLO operation status +^^^^^^^^^^^^^^^^^^^^^ + +Overview:: + + +-----------------+ + | | + | Start COLO | + | | + +--------+--------+ + | + | Main qmp command: + | migrate-set-capabilities with x-colo + | migrate + | + v + +--------+--------+ + | | + | COLO running | + | | + +--------+--------+ + | + | Main qmp command: + | x-colo-lost-heartbeat + | or + | some error happened + v + +--------+--------+ + | | send qmp event: + | COLO failover | COLO_EXIT + | | + +-----------------+ + + +COLO use the qmp command to switch and report operation status. +The diagram just shows the main qmp command, you can get the detail +in test procedure. + +Test procedure +-------------- +Note: Here we are running both instances on the same host for testing, +change the IP Addresses if you want to run it on two hosts. Initially +``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. + +Startup qemu +^^^^^^^^^^^^ +**1. Primary**: +Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +You don't need to change any IP's here, because ``0.0.0.0`` listens on any +interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu +instance:: + + # imagefolder=3D"/mnt/vms/colo-test-primary" + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name primary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dmirror0,host=3D0.0.0.0,port=3D9003,server=3Don= ,wait=3Doff \ + -chardev socket,id=3Dcompare1,host=3D0.0.0.0,port=3D9004,server=3Do= n,wait=3Don \ + -chardev socket,id=3Dcompare0,host=3D127.0.0.1,port=3D9001,server= =3Don,wait=3Doff \ + -chardev socket,id=3Dcompare0-0,host=3D127.0.0.1,port=3D9001 \ + -chardev socket,id=3Dcompare_out,host=3D127.0.0.1,port=3D9005,serve= r=3Don,wait=3Doff \ + -chardev socket,id=3Dcompare_out0,host=3D127.0.0.1,port=3D9005 \ + -object filter-mirror,id=3Dm0,netdev=3Dhn0,queue=3Dtx,outdev=3Dmirr= or0 \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire0,queue=3Drx,inde= v=3Dcompare_out \ + -object filter-redirector,netdev=3Dhn0,id=3Dredire1,queue=3Drx,outd= ev=3Dcompare0 \ + -object iothread,id=3Diothread1 \ + -object colo-compare,id=3Dcomp0,primary_in=3Dcompare0-0,secondary_i= n=3Dcompare1,\ + outdev=3Dcompare_out0,iothread=3Diothread1 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0.file.filename=3D$imagefolder/primary.qcow2,children.0.drive= r=3Dqcow2 -S + + +**2. Secondary**: +Note: Active and hidden images need to be created only once and the +size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge +any IP's here, except for the ``$primary_ip`` variable:: + + # imagefolder=3D"/mnt/vms/colo-test-secondary" + # primary_ip=3D127.0.0.1 + + # qemu-img create -f qcow2 $imagefolder/secondary-active.qcow2 10G + + # qemu-img create -f qcow2 $imagefolder/secondary-hidden.qcow2 10G + + # qemu-system-x86_64 -enable-kvm -cpu qemu64,kvmclock=3Don -m 512 -smp= 1 -qmp stdio \ + -device piix3-usb-uhci -device usb-tablet -name secondary \ + -netdev tap,id=3Dhn0,vhost=3Doff,helper=3D/usr/lib/qemu/qemu-bridge= -helper \ + -device rtl8139,id=3De0,netdev=3Dhn0 \ + -chardev socket,id=3Dred0,host=3D$primary_ip,port=3D9003,reconnect-= ms=3D1000 \ + -chardev socket,id=3Dred1,host=3D$primary_ip,port=3D9004,reconnect-= ms=3D1000 \ + -object filter-redirector,id=3Df1,netdev=3Dhn0,queue=3Dtx,indev=3Dr= ed0 \ + -object filter-redirector,id=3Df2,netdev=3Dhn0,queue=3Drx,outdev=3D= red1 \ + -object filter-rewriter,id=3Drew0,netdev=3Dhn0,queue=3Dall \ + -drive if=3Dnone,id=3Dparent0,file.filename=3D$imagefolder/primary.= qcow2,driver=3Dqcow2 \ + -drive if=3Dnone,id=3Dchilds0,driver=3Dreplication,mode=3Dsecondary= ,file.driver=3Dqcow2,\ + top-id=3Dcolo-disk0,file.file.filename=3D$imagefolder/secondary-active= .qcow2,\ + file.backing.driver=3Dqcow2,file.backing.file.filename=3D$imagefolder/= secondary-hidden.qcow2,\ + file.backing.backing=3Dparent0 \ + -drive if=3Dide,id=3Dcolo-disk0,driver=3Dquorum,read-pattern=3Dfifo= ,vote-threshold=3D1,\ + children.0=3Dchilds0 \ + -incoming tcp:0.0.0.0:9998 + + +**3.** On Secondary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet",= "data": {"host": "0.0.0.0", "port": "9999"} } } } + {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writ= able": true } } + +Note: + a. The qmp command ``nbd-server-start`` and ``nbd-server-add`` must be r= un + before running the qmp command migrate on primary QEMU + b. Active disk, hidden disk and nbd target's length should be the + same. + c. It is better to put active disk and hidden disk in ramdisk. They + will be merged into the parent disk on failover. + +**4.** On Primary VM's QEMU monitor, issue command:: + + {"execute":"qmp_capabilities"} + {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } + +Note: + a. There should be only one NBD Client for each primary disk. + b. The qmp command line must be run after running qmp command line in + secondary qemu. + +**5.** After the above steps, you will see, whenever you make changes to P= VM, SVM will be synced. +You can issue command ``{ "execute": "migrate-set-parameters" , "arguments= ":{ "x-checkpoint-delay": 2000 } }`` +to change the idle checkpoint period time + +Failover test +^^^^^^^^^^^^^ +You can kill one of the VMs and Failover on the surviving VM: + +If you killed the Secondary, then follow "Primary Failover". +After that, if you want to resume the replication, follow "Primary resume = replication" + +If you killed the Primary, then follow "Secondary Failover". +After that, if you want to resume the replication, follow "Secondary resum= e replication" + +Primary Failover +~~~~~~~~~~~~~~~~ +The Secondary died, resume on the Primary:: + + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "object-del", "arguments":{ "id": "comp0" } } + {"execute": "object-del", "arguments":{ "id": "iothread1" } } + {"execute": "object-del", "arguments":{ "id": "m0" } } + {"execute": "object-del", "arguments":{ "id": "redire0" } } + {"execute": "object-del", "arguments":{ "id": "redire1" } } + {"execute": "x-colo-lost-heartbeat" } + +Secondary Failover +~~~~~~~~~~~~~~~~~~ +The Primary died, resume on the Secondary and prepare to become the new Pr= imary:: + + {"execute": "nbd-server-stop"} + {"execute": "x-colo-lost-heartbeat"} + + {"execute": "object-del", "arguments":{ "id": "f2" } } + {"execute": "object-del", "arguments":{ "id": "f1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red1" } } + {"execute": "chardev-remove", "arguments":{ "id": "red0" } } + + {"execute": "chardev-add", "arguments":{ "id": "mirror0", "backend": {= "type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.0= .0.0", "port": "9003" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare1", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "0.= 0.0.0", "port": "9004" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0", "backend": = {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "12= 7.0.0.1", "port": "9001" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare0-0", "backend"= : {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": "= 127.0.0.1", "port": "9001" } }, "server": false } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out", "backend= ": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host": = "127.0.0.1", "port": "9005" } }, "server": true } } } } + {"execute": "chardev-add", "arguments":{ "id": "compare_out0", "backen= d": {"type": "socket", "data": {"addr": { "type": "inet", "data": { "host":= "127.0.0.1", "port": "9005" } }, "server": false } } } } + +Primary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Resume replication after new Secondary is up. + +Start the new Secondary (Steps 2 and 3 above), then on the Primary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.2:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "netdev": "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.2:9998" } } + +Note: +If this Primary previously was a Secondary, then we need to insert the +filters before the filter-rewriter by using the +""insert": "before", "position": "id=3Drew0"" Options. See below. + +Secondary resume replication +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Become Primary and resume replication after new Secondary is up. Note +that now 127.0.0.1 is the Secondary and 127.0.0.2 is the Primary. + +Start the new Secondary (Steps 2 and 3 above, but with primary_ip=3D127.0.= 0.2), +then on the old Secondary:: + + {"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job= -id": "resync", "target": "nbd://127.0.0.1:9999/parent0", "mode": "existing= ", "format": "raw", "sync": "full"} } + +Wait until disk is synced, then:: + + {"execute": "stop"} + {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } + + {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + + {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } + {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire1", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "outdev": "compare0" } } + {"execute": "object-add", "arguments":{ "qom-type": "iothread", "id": = "iothread1" } } + {"execute": "object-add", "arguments":{ "qom-type": "colo-compare", "i= d": "comp0", "primary_in": "compare0-0", "secondary_in": "compare1", "outde= v": "compare_out0", "iothread": "iothread1" } } + + {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } + +TODO +---- +1. Support shared storage. +2. Develop the heartbeat part. +3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451965; cv=none; d=zohomail.com; s=zohoarc; b=kw5AmJZd2RexiU+mSge58V5at4/TX5Zx+OpdMIblTl/m/7pFKj1uZ88mYYRpAW8W4Q/vmLJyDMgh6nYp470mxXQLcbuAYsEx8Vdd6Y3YBHjtEaRWdHa38lkBPuD1540QIdSYm8IEqHxgS243lE6qBzALCVUP/xCMm/IMKRKVvAc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451965; 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=VwqYUbTs/eqfI5dGS9qVQB2T7kMAiOkbopch2ek/NN81fZN6a+p/ce8qsw10u9EI9ewiwqGElaqSuBOiHc0EmVPsIvkfI1popXjq26Lg5iHtSERECEZnutsFXlaHeB0gjiC2y8YPDkH2HfClyh/ZQAH5OuL9yL9fAGe9gq4AGoA= 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 1772451965449716.9561094444161; Mon, 2 Mar 2026 03:46:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1il-00008m-81; Mon, 02 Mar 2026 06:45:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ia-0008MG-76 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:44 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1iY-0006Bi-CS for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:43 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M7elj-1w2EO140HV-003SId; Mon, 02 Mar 2026 12:45:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451941; x=1773056741; i=lukasstraub2@web.de; bh=7na/cU/5mF9ehdTeY4EL5tJl/nkO7neQy2zDMuNSRZI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=deyGyv4ncziBytd+ZPGh+twcXTgq9mqj30PHMNgL0tqDUMV7TDPRXyn/kzcdtwZ7 OYZuBd8ARI0MfYrs6AI/90iZfvTfP5ZdXDpSvak3WkVS7bafyZV9dl5dcMab4knSE oepAloTJhqTxROet8QDjSpwh1mhz/y5tIWBvllMGaj/ae+Ciq72vYLcC5cmk4puI/ imXpT8jQAK07ByRf6VlnW6mAA9RW1olZqpUhpHBjmLG30W2BSTt4cXCymBbvO7k+O Pw39sRfAAeBR4yCKzdmhc70AGxgeYI8l7DBQx233s0i4iMKLiFQ3C05rsAyAb4WD6 0XM4elXEUjfZyMGonQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 15/21] qemu-colo.rst: Miscellaneous changes Date: Mon, 2 Mar 2026 12:45:30 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-15-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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/ZANAwAKATWrCyicXbJYAcsmYgBppW6UJE/5SgkuLLmtGEOEpo8ZXNiIm8TNXbNRL WXCUBvTjf2JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WKQLD/9afZL2+/FncrBiCrud8iDiH4lKqj4f1P2oinsX9NgdIki9M8DPr6VzJ7q/7DBPwcOduJ6 D8/KsxeERgPvcZ+/Xgp4kfnL2cU7iyLjSTG6wMrDtjpHxBg55xCaUvZK+hhSA4bd4ySwjystRdH Q/y2shprXtUd591fduUI62MmkIajBAUhvSyOr79ZFkLpAnaSv9yoPbhhv7MqV5PQy3XDKAIznL3 L0ZRkgtXU0Ug8qg27AlT8F0gqxuFd4B2y9IRSlT/JW6N0N1ky1lI5aJfb01gxnrvVxf91VA/HxS 84sMwyHOlj94w3fD0lbTF6JtplBUwIAUOXGFSi6DMkDXDxCq5nEue/2AFIeeF6/GrnwZDJQrZ4N VkrnTjwlX+ZNGuA3YC7v4qBcppIErs8ogHWmYFp8Tllh3DLRkUoEu7uHBLddwvH2w5VlBgD1kHh sya4QTSl/fyIa7BGrwbIB2DwLZQ7HMWgMoi2yfE5bpDfraqHW6wUWzmVK2lArY0i3OjCN1qYWZA JUSDkJLoCK5CcYLLuVJIO2fwrhjY/uLy+XpuoSzqAbk+8UTBmXhr9Cg/Czm24oqHOywrtW2YhLO H9+KiZpSbUVBr6+k0eOBp9+J203i5EVLwWuLwoKB7R/ZHSwT92c7e88x6/CGkpyJpCKjSgbr8+X uEH0KFvARCAhedw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:voU0pbWXeUBpKgcjeDndTjbjxGEmw+cZfSxvMCZr+OL+N8y9lfO 7xHfLuGQpDLe/hsrMvGQMTDQoSPnbqb5UYJ+RLCuTQeU2vTRFXZahtX8beLzD+o3NrYtE8w pNmqPe2M6PJwTArlJE5k2+lEZ2PFBrn8hU3GJuyLc7CIx7O+VhrlZyfwBiCXB8ir8uz0xkA lQ18PtEpLUPHJ295cRnmA== UI-OutboundReport: notjunk:1;M01:P0:0VbGo9TOl4w=;W/IBQKHgYI9KDvb9k+WZtOVSKw3 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451966987158500 Reviewed-by: Fabiano Rosas Reviewed-by: Zhang Chen Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 4b5fbbf398f8a5c4ea6baad615bde94b2b4678d2..a70e61aa09391cda933031535fa= 982d27cf6654b 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -1,13 +1,6 @@ Qemu COLO Fault Tolerance =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =20 -| Copyright (c) 2016 Intel Corporation -| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. -| Copyright (c) 2016 Fujitsu, Corp. - -This work is licensed under the terms of the GNU GPL, version 2 or later. -See the COPYING file in the top-level directory. - This document gives an overview of COLO's design and how to use it. =20 Background @@ -82,8 +75,8 @@ Overview:: | Storage | |External Network| | External Network | |= Storage | +---------------+ +----------------+ +------------------+ += --------------+ =20 -Components introduction -^^^^^^^^^^^^^^^^^^^^^^^ +Components +^^^^^^^^^^ You can see there are several components in COLO's diagram of architecture. Their functions are described below. =20 @@ -157,14 +150,21 @@ in test procedure. =20 Test procedure -------------- -Note: Here we are running both instances on the same host for testing, + +Setup +^^^^^ + +Here we are running both instances on the same host for testing, change the IP Addresses if you want to run it on two hosts. Initially ``127.0.0.1`` is the Primary Host and ``127.0.0.2`` is the Secondary Host. =20 +COLO uses double the guest ram size on the secondary side. The Qemu version +should be the same on both hosts. + Startup qemu ^^^^^^^^^^^^ **1. Primary**: -Note: Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all = hosts. +Initially, ``$imagefolder/primary.qcow2`` needs to be copied to all hosts. You don't need to change any IP's here, because ``0.0.0.0`` listens on any interface. The chardev's with ``127.0.0.1`` IP's loopback to the local qemu instance:: @@ -192,7 +192,7 @@ instance:: =20 =20 **2. Secondary**: -Note: Active and hidden images need to be created only once and the +Active and hidden images need to be created only once and the size should be the same as ``primary.qcow2``. Again, you don't need to cha= nge any IP's here, except for the ``$primary_ip`` variable:: =20 @@ -353,8 +353,9 @@ Wait until disk is synced, then:: {"execute": "migrate-set-capabilities", "arguments":{ "capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments":{ "uri": "tcp:127.0.0.1:9998" } } =20 -TODO ----- -1. Support shared storage. -2. Develop the heartbeat part. -3. Reduce checkpoint VM=E2=80=99s downtime while doing checkpoint. +| Copyright (c) 2016 Intel Corporation +| Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. +| Copyright (c) 2016 Fujitsu, Corp. + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452124; cv=none; d=zohomail.com; s=zohoarc; b=Uup9F76xhzAy91Mqik/TR9fWYnvrcedaeijjnSPOQ+IGYABwS334ReijkVx7VsPglyRKBRXsqxDtRsCiIHhjSbjFW6jeZCjCmP/SU2pFbpWBAbNI4JgQER3Y6odOyXFChmbom0AMdnOzudwdYU/01kHclazKK2y7OFpY9W4OUPI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452124; 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=W28bST7/CM84HM+PCKf22uvf/aUhWoh/snfdvFHQJuTJe3v+9iwoIumiM6Ic94ScTGK1DVY4JpiyBWzhMeWAt2pM2hV/fLaWgxwvB307L9VfhZxX/90geNpz/a6v9yDAlQtk4ETFTAd9QG8KhFTHIgwvGM3Va7RYYeQQ3vdomZE= 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 1772452123955267.4390058956301; Mon, 2 Mar 2026 03:48:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1jD-00019F-3r; Mon, 02 Mar 2026 06:46:23 -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 1vx1ie-000074-FR for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:51 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ic-0006DH-Rn for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:48 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MlsKH-1vFPYk0sS3-00mzrR; Mon, 02 Mar 2026 12:45:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451941; x=1773056741; i=lukasstraub2@web.de; bh=M4oN3ce3lEdgtN7JBdV1BpBJqmDTcNHIBAHkYu1vDHI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=hGdB5Bk9ZjNYJ7t5t8turdQ0GSyx6NCt3flaE3Xn6e6pb9c2VPsCgpc4zRiZYcDI NIWV5Z/HCUGqA3jWFQfoubS8ScWOebcjYKDLR06u3HBALlQasKkx9ZKNkZO2JMqQP hnDQsCHnDgN5o/SEVn4SiibSx1oBNkremT/qNBsYAS+7G7L89Esv3tK5NeZd2U/pA yoaYPf6mHmQD3Z/k7XIXNtIt9fMS4y6YJjeO1sgQBI24ZI+vRHIALuw4CPA7niaUt jWrQLpIdM2KrLCKjwO+ZjplPSEr0XWwZqPmxDBd8qEaafOOrw758fiDL4aL7D6qxH CloriI2fNlaFMkT/MQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 16/21] qemu-colo.rst: Add my copyright Date: Mon, 2 Mar 2026 12:45:31 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-16-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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/ZANAwAKATWrCyicXbJYAcsmYgBppW6U5ZlaV99eJwVc83J1mGqzUFvz9/2/TKb40 y4NLJ/RhMqJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WI0kD/99NHnY4UqUUVg0pPaZ5G5CDlerRCmPCTlwGTawtLNtsHL08LMegkU5+alUKjtbcR7Bzc8 azP/DNonuSQo182LxdjEmF/xkb4pmjwakYN5D80ZqlTc/9AJICWraS1wLLlQ7yIx4kdX8wP+C7+ 4aez5Jdr25Zga05O0B4n+3Y1jiT6NvOFJ+V4ivCD5fOZi8lpeQPfL9OF1gYS9RecMyBm2sHkEGC UByJ6dV0jOTAwQOHO9dWVhPHMKATIpZLcgptOTiPJYJ/VNALZIX9PtzE/scDKeQteyNWQfsPk/n igIhGNNYAgOfp9UlILX6mY+gvOPDtuSZt/fxvtyjpbMCxPgGTIK6KdCiWsM/pWIjZ0esEygu3mG iYLFcWLQQro/NmdSCtjiTUmSze7aCDyV+tGoCcV6aoYbTpjAGPTuHfcroXLBaYuKWxx1SIBVCME 1ECfsnYN4F996c66pAwPUGt1vWFAHBVVJ2VwGvDahAXfKcC9zEK4pEsVOvvc+fTJa2vWFnjZTni hFnfHkyxKpWUXkZsUMQuc2k2Hc54YnkDj2TYr+c4tY/dbf3Z3zytr6DlTfcSTckpP1kMJ5f6302 fByit3VIHq74kpfI+RlP//zXFXeGLWx6hZLBJrnttuQt3K7vcowETos3/SF4xnGn5zGciSrP0tc kp7p7Oxelq2MKBg== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:6WDC3vwM7L7NG+fVdtWpELsAaN3SEZjnfl9kVFCHVkancn91Spv +NDeQkVW77er64TVz+13ypPv7gR8JhL3wUL0G3NfMvaZGvZq2V/3vYOvmBL7cyJLiZ+ox8A nmZSyAKnjOo0OmZ/vDQGg+DG8eB7I19v/pgu6nXYeqdy1OkzKfb9sc9gqMwc66IUJSdpn1v py1MHJ6Irn2Okq1LA8U+Q== UI-OutboundReport: notjunk:1;M01:P0:ylYIbzxe2po=;DYW9ytI+iMc78q6p22GJO4FxqTk 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 0SWbAzDyEUEku+gAQ= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452125856158500 I have so far contributed 61 commits to the colo project, waranting the addition of my copyright to this file. Reviewed-by: Zhang Chen Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index a70e61aa09391cda933031535fa982d27cf6654b..75abbd80298df79223cb8e70064= a5dc83d70f4eb 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -356,6 +356,7 @@ Wait until disk is synced, then:: | Copyright (c) 2016 Intel Corporation | Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. | Copyright (c) 2016 Fujitsu, Corp. +| Copyright (c) 2026 Lukas Straub =20 This work is licensed under the terms of the GNU GPL, version 2 or later. See the COPYING file in the top-level directory. --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452027; cv=none; d=zohomail.com; s=zohoarc; b=cfsX6JKMtW/JYqlMi5ouTzDbqXVQK4X67Bat+HtFxTcXN5nZzkeoaA4qZBpn0gHnzSdwrLg6og7YvjQ+eUahd+Ao6vZp0EqLU8Hp5DpgqeMrn8Vtoq8JJ8p3zwkM4RQki9mN21Hb3YdE4z/znXBkWLSYJDfc74DfjtVOgv2oVsI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452027; 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=E8fQx4IKgnAm6YubDXuh85OWLGDWOvvXmk2YMWUkr38=; b=YTHJ+4blt6QkN/8GZa77dX/UhkmCHc++mn27I2m8wCaFYX+C61QwtEG2HtYBQsZp0IWQEPyKnHl2WX2kSTruIv24p5ZUoka3MhJcnlwyHGdnm5erH+pnQvt8+PTSkjhZ/4vIM3j+Q5WMVrlX1yTc4OBYXsqAWJWTbXfi01TiY7I= 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 1772452027878307.4374791920802; Mon, 2 Mar 2026 03:47:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1j5-0000kk-Dz; Mon, 02 Mar 2026 06:46:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ih-00008v-9x for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:52 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ie-0006E4-O3 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:51 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M76XN-1w2mcM1w59-0040Wv; Mon, 02 Mar 2026 12:45:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451941; x=1773056741; i=lukasstraub2@web.de; bh=E8fQx4IKgnAm6YubDXuh85OWLGDWOvvXmk2YMWUkr38=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Iu41AY1qIchLkKUHZr0p/MYYrv6pHNJUI3BHvfCDvTtcq4G6tBCDTpbngaQxxt6v iLGHzrha6hUTy1eFNCZeWmVsFRdT04UCuuk5KlmwE+pjZO48deJh3zkm2QbuTUYbr xS4zGjoOvEtIj/4CuYIKBE33j3ONzztzdROUrUc1ef9sglV5dfC4wxW2zoC22FRqq 9CGXjYOJiDhbWXwgKDv7I8AIgn5Te8HFaphTcid7DajtlwGaCs1WoZE65f9LqAB86 w+rRv83gRm5qA81z3EffXDki1sM8PY8TdjF1sa3x031X0oU1K2dCVFAt0V5jpO3FY TjrWEV8Z4HzKHtyASg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 17/21] qemu-colo.rst: Simplify the block replication setup Date: Mon, 2 Mar 2026 12:45:32 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-17-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4439; i=lukasstraub2@web.de; h=from:subject:message-id; bh=pUq20iNV0WnXQSUmrEA2fewmY1+dKjnmaS5gYKFAorU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6UgUVTyaWsV9E3eX0szbzm0Vmt4eu18rKQZ CenyhwAA82JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WIgpD/wPH191x3ozTOJzk+MZwvP4AyiVSfZ34bcOLjBITGwaHjWEc81ZVFPoLvK48DEiD8pdC2S ziam/gnbpfncn0SbGn7+Vb4iUsiOdq1YXCMhsCnmqD9Dt6QJYqOeVTdKG0Th+5mJC0t6BqkmZY8 4j9uMvujcRpRz8F9NJ9gXNsbCA5bphxL0UGBc7qSnRZVx2/soaf6QaPNe7K0vrWj779nzV6Kvhq WG7Wdzagiu74ZX8MDRJPRWGvg4iH0DXVCX3GvO/3GYCVrRHV0P6xDqJ9ziwz51N+RUgZQcUfD9d gBLLakofBlxItYMQ4HMp7MZjhnOdB/B3DqpsSR8uCJNLUbn+57hbA8CXHkQ5eU0ZZ8n5GZsCEo0 67g6yzxa4fSCb7LfpQBh1ey3s3Bl2rwuHqdyl3ilcjkFQ/alwK/rhcgwCIdK2Fgauq/1hCXAbm4 QRmqIOYBK50QkKxculFroWaNR9T7DtBH/YlXzGcQ1dy/7GvLVhTX6HlM0eshXgdwezyaraTNFq1 ym46H3hYoj7A/3Hmfcp8e3jcaIavoDNbAj/RO5o41n4LQikbLdZ7dpP1IBWxwaaNy6/m648CeoI K8YuHDRV9ddPiUt2wsG2JP/RYkrnQHyTE7osZAJKH1EV+p1wg9QVIBSxd9etdAWrS3bdzFyqAF7 DSwG69nf994CQjw== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:ocvfgv7txDgukRWqwL6zj/MyaTWVOHVrf/ZbE0JVTUGWTUXi93/ poD0fwZm5T+UMRgmwlJJyrHGa/nfkfm6RV4mHcMA9u8fnDqByfIOACCGutcFWQOi820s/YK VPBWpXKEotbc31hB3OMhsDFTgS8wxTq7PdJkv1JW0iTR2mZD3sXsDRtB8ybBbPy7sR+WEJP iHIMrkFqnRjsrA+PBZfWQ== UI-OutboundReport: notjunk:1;M01:P0:NB4I+zkyytU=;Ai9coA6Xpf1ZFju3zhxpD12GGNq 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 81CkyH6dcuVPFQXl+xUTR92Lfi13b Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452029354158500 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. Reviewed-by: Fabiano Rosas Signed-off-by: Lukas Straub --- docs/system/qemu-colo.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index 75abbd80298df79223cb8e70064a5dc83d70f4eb..f7d3b6439cf3401a58c41263423= 9d1a43999a10e 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -240,8 +240,8 @@ Note: **4.** On Primary VM's QEMU monitor, issue command:: =20 {"execute":"qmp_capabilities"} - {"execute": "human-monitor-command", "arguments": {"command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{"parent": "colo-disk0", = "node": "nbd0" } } {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } =20 @@ -269,7 +269,7 @@ Primary Failover The Secondary died, resume on the Primary:: =20 {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "child": "children.1"} } - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_del replication0" } } + {"execute": "blockdev-del", "arguments": {"node-name": "nbd0"} } {"execute": "object-del", "arguments":{ "id": "comp0" } } {"execute": "object-del", "arguments":{ "id": "iothread1" } } {"execute": "object-del", "arguments":{ "id": "m0" } } @@ -309,8 +309,8 @@ Wait until disk is synced, then:: {"execute": "stop"} {"execute": "block-job-cancel", "arguments":{ "device": "resync"} } =20 - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.2,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.2", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "nbd0" } } =20 {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "netdev": "hn0", "queue": "tx", "outdev": "mirror0" } } {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "netdev": "hn0", "queue": "rx", "indev": "compare_out" = } } @@ -341,8 +341,8 @@ Wait until disk is synced, then:: {"execute": "stop"} {"execute": "block-job-cancel", "arguments":{ "device": "resync" } } =20 - {"execute": "human-monitor-command", "arguments":{ "command-line": "dr= ive_add -n buddy driver=3Dreplication,mode=3Dprimary,file.driver=3Dnbd,file= .host=3D127.0.0.1,file.port=3D9999,file.export=3Dparent0,node-name=3Dreplic= ation0"}} - {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "replication0" } } + {"execute": "blockdev-add", "arguments": {"driver": "nbd", "node-name"= : "nbd0", "server": {"type": "inet", "host": "127.0.0.1", "port": "9999"}, = "export": "parent0", "detect-zeroes": "on"} } + {"execute": "x-blockdev-change", "arguments":{ "parent": "colo-disk0",= "node": "nbd0" } } =20 {"execute": "object-add", "arguments":{ "qom-type": "filter-mirror", "= id": "m0", "insert": "before", "position": "id=3Drew0", "netdev": "hn0", "q= ueue": "tx", "outdev": "mirror0" } } {"execute": "object-add", "arguments":{ "qom-type": "filter-redirector= ", "id": "redire0", "insert": "before", "position": "id=3Drew0", "netdev": = "hn0", "queue": "rx", "indev": "compare_out" } } --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451979; cv=none; d=zohomail.com; s=zohoarc; b=UE0v9xKeB+xC/EpgLOpbp5ODMsFQOmHynigi9BSaEv533b2R2gXQQ+dhZiNFEFfYzrIw74kZ2vPWhxIGH1mgBEZb5D2wueKcDcMzrlSxLYFAHdBZSWkRTaUBS7Pt73WMQMaZ7Fs2QUACvL0LycwyuJMZ/2F3KE7wAdlfd7bOb+E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451979; 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=1wB4PGSEbATkgykqfYbhMdJ4xkZ6sROXVEk3Mx6V42s=; b=PPMUnAefaM1+CCascUBt74YiPM5DOI6r9yiZdYJYJl5EmXsCpSF7UOxJAveRX73DB5S+IiATg97cODdBYY7OB5wViyt7L2fkKM83zPBSGhyBJixeh8B/FlZS28Gkbfpfpc00Ql4F9vpcKEvgMxPMpEVJI4ntbWjDSeepzKf0u5k= 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 17724519798831020.761084377823; Mon, 2 Mar 2026 03:46:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1iw-0000R5-8g; Mon, 02 Mar 2026 06:46:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ib-0008UR-I1 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:45 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1iZ-0006CD-T6 for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:45 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MnX1L-1vDlOi35dt-00nXYh; Mon, 02 Mar 2026 12:45:41 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451941; x=1773056741; i=lukasstraub2@web.de; bh=1wB4PGSEbATkgykqfYbhMdJ4xkZ6sROXVEk3Mx6V42s=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=ON3UuZD8HelPprVhB7dvtqQ8puoRvqS9ye/A4uvL0cUB0Bb5H3Oq/pszIqbyyzo1 SHrG0Vk7ejDVxL/WEJYA6LuQ9nD/WcUyQWoCbUrervT/Wzv2HOWnMKFZIMU9CjyEB qe6933FpouZbb8T2/iAqqp7bZT5IepcERnULHZqs2be74blEBAfzHlQRMbDau7w38 OTvR31NvsE+PQe/CzMsnIDXJ8QMsUeeoyLinW82kyD88SvbzV+wD4Q8V3IGTdQeXl qLNPPVe13tE5JnLBI8t6tznWMo/rmaTebIlehx2dJTiAmBmpzR7fkkDaN8Rqkc7L9 Gc5lseVdXFIesciZtw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 18/21] multifd: Fix hang if send thread errors during sync Date: Mon, 2 Mar 2026 12:45:33 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-18-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1431; i=lukasstraub2@web.de; h=from:subject:message-id; bh=Di3bviqJ1tNSV+njROs9ZVoxf8DQzRNWY6OcVfgFrAU=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6Uq3YJDRxEXAx4yod3RvkzBXk6rOgx3O7mo Sm82ZTWq2+JAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WOCNEACxPunzlFrLKgv2fgaGjDvS/6TR+sKnIWSuVVHtJvWrskEkQsJysyf8t1vA2tK+i4X3eVd XuMTCtIAL3yOQGG/KjKFb+/lym0z+g5gdBNVX16RZhlnywYF7rtxCK1y6ZtcmYpL6IRvFw5hvT0 phSj7QxCUYbe0uQDn7EB03bZViIxilUzaA7xXfTpfttsIgP2HCjqJm63l4zEZ70wZQfy2SABTR3 maSZKplTHcmXaxJJ9IQKIkqNpTlm42qr7o1wfa2O9JHUqwGHIlljF0lFL+ZzUp/ObgSyyjyAIpm W5+glJKOMw899uscUQU7kALP4Tp54aVjv6PfiTXvKxh5Q4OhNE/1HdNSUwAhy43QYieSsIeaM4h 6HF57pFCNQXRtzjuVg3ol+kJPgT7L/Yy7vk5gVIhQzLrMostVpKhYjELKugRdjwIadUGH4RUJe1 HZUu2H+Cv3xEJVJjB4LWtht9lX5rGKFbfV4zjlz6kmpNDccCVl/yRJUpOaqwqIj7wbaNS8Xv53W 8R4BDJUD61bi0TNmsoeIYFxvrcNDCQ5YG3F3VKTE/dmNdZpV2nVhp5Sk6BU5MNftz+9EkLy+INa 2qRT9eQ7XAeCigUlxtinB50gHKKukbE+8Bhwrc4hlVZozBTJaK7GWqyzngwd5L82cM9nhHOh2oh 58akAqjhecATcDA== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:TrYYIUsK+tsckehEzcsidSyNDkrQ3UYPayA8dqaBUNaSOoE35LU t6WvMVJlOY1aZEHZNHoXOhNq0Tg0fPZ6iOGfG8hNzLIdlEI75XgpQ3Su0cyqxHlmQn62KJN qeoo99gbXGm2bHhEbgmrzTRt/SO0kxys50CsTqMVzQeYf3Z2164WPoSI72TGghmcAmz5+ve Hzy8PIINSrw2gt1EYcl8A== UI-OutboundReport: notjunk:1;M01:P0:Fzy8jB0T4qU=;njgzmWq7wbGkEQJ20vCDRz5ZViD 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 SUrud0H2dZlQ9fUYCTeJbvTrr6ytN Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451980995158500 When a send thread encounters an error (as is the case with yank), it sets multifd_send_state->exiting and the other threads exit too. This races with multifd_send_sync_main() which now hangs at qemu_sem_wait(&p->sem_sync) in multifd_send_sync_main() line 647 as it waits for threads that have exited. Fix this by kicking the semaphores when exiting the send threads. I encountered this hang when stress testing the colo unit test, though I was unable to write a migration test to reliably hit this. Reviewed-by: Peter Xu Signed-off-by: Lukas Straub --- migration/multifd.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/migration/multifd.c b/migration/multifd.c index 220ed8564960fdabc58e4baa069dd252c8ad293c..7762aab8e0702672d3730f27e9c= 9ee3b86500f0c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -772,9 +772,14 @@ out: assert(local_err); trace_multifd_send_error(p->id); multifd_send_error_propagate(local_err); - multifd_send_kick_main(p); } =20 + /* + * Always kick the main thread: The main thread might wait on this thr= ead + * while another thread encounters an error and signals this thread to= exit. + */ + multifd_send_kick_main(p); + rcu_unregister_thread(); trace_multifd_send_thread_end(p->id, p->packets_sent); =20 --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772452038; cv=none; d=zohomail.com; s=zohoarc; b=NoI+YQcnBWtg7VMM6e5M5Jg89B01BnGf3h498itfk1Fu+cUZMjLyDjGZ/1mOyVXqX3xsqN4n6LhS6dRMPGIvPkZosbVNB5wnBu3M43tlJn35AAZTgeLY/QVt050PWK8FSFULNObnCLBfl+7rUo8KJg+EbHjlohTlvayKS7a3U0E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772452038; 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=lcGEXTcmjSwo1uIOCMzYBcGqppfFNt21+FB9vZyidNs=; b=d3XdR18+5yYIl0W5hy4Z3OcD9kmAeZ07SIDoyB1NOrQkx35edjBBQLwBRS1hXcMNnMayL+SPTfoPaMG/vqyvdneCGNhfwfT9pu4G0Isblg4CQR6ZitTUaFwl4Ty632g+3CfAF7Hp0Ls3Bh7Wvl8z1zhw33el5BPlNKQqUY7kNyM= 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 1772452038843264.8628796719705; Mon, 2 Mar 2026 03:47:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1j4-0000fs-7k; Mon, 02 Mar 2026 06:46:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ih-00009N-MD for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:53 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1if-0006EZ-OG for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:51 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M59nK-1vvvms0004-005v8M; Mon, 02 Mar 2026 12:45:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451942; x=1773056742; i=lukasstraub2@web.de; bh=lcGEXTcmjSwo1uIOCMzYBcGqppfFNt21+FB9vZyidNs=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=WhNG9+vrR5Rq62GlvsTvYcozPs/bo+q7VHKWZ0w5ukzyArwM9d/nAWsIbT9QMYig fiV8ifEKsTXtu4PzDvX80NWsR02d8VwyLlzguI5L+GSQcGDHiaZ1oLPkSbcp6044q 0lDEmhy8iq5GgK0bS7F10cteIQpLKhyPrhLa2GuneOJW3KYbE6yHi8WKSweB2ONJU OKkywnk8NzNO6nJ0CYhArIeUErEIQFXoZEH1+/QKvzMEESYryFoP6Hg7NAuTJw8/d lYX6NYoct8dQQvId/VGzxVKeSXzKEAbngLRUL2OIXAbABAfw3VfrlSo/7PQR4vxA2 P9KQD8fZ7PCNdflJNQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 19/21] colo: Use file lock in primary_vm_do_failover() Date: Mon, 2 Mar 2026 12:45:34 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-19-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1196; i=lukasstraub2@web.de; h=from:subject:message-id; bh=REq8s1GLond4/LcE4TppwatMZ1netju7z89n3hnA2Mc=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6UPR6KYAFCkgGs33nSeSHaK1bCGvu2p4x3i btdhY94edeJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WKxAEACfpTiR4IZjGQPhB/dXHOk7DOcprg9Y6JNVcIrybefSsmskcthY8VVqP1/360cuL1S0QbF zSh/LyvJqf5rY35p3T3U+0X4Qcr5blc+vd995kJXzoWvoATivgf9dZj/jdnELHLdnRM8hUPEP+z qi0b3ddl3hsonSu9cHXlVyjB9u8acDw30gJ+ypm2KOVese56UX2KIkpQLnfOyJMyOrqK0Jq+rGs O3b8BdERpRAYPolnlRCqkwQe/CCVvwfzrTyOPJe9ADnqFyk6gk+KD1EMKkbjoRPhFqKo8+BsMSH 7qgZtEe6eWgfmGdTgIPllAJNPknhWm4sluSEPRpxBBeFubn+x0OUKBT4xoe+Q7gDXG1KL5T82Jm 3nIeUfQQ48MhC+pB8GZiLbExk5x3oj0AEJNtk+iUs9V2Dbit0DpQMHd6AU7rpFr/MuWF8iVdQuV 2dcObTpPaWtQMvQVdUJANEdaMwETcqjbd/RD9G6iUyKu6Nl3t0KMt2Nn8wQPBx151IWUIYvPg/P /4mWpdzSSq+NAqhfsde0ViTX5Eu3mn7xlv73mFisrgbj7chSF6LYNBW957KlT/ure+L95lqkKO3 Aw1CL/SxaZcuHBsZDqSIsLEOwEzmToIhuwxnsKQV4f/rv9d5ICHx+hpHKT56XDXjVBrXCIOUyyn lHK1IWP9rItW7Ng== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:IHfOAmMes8zA6VyoI3rOazCBFKj33ZqmM8bSorzp0ohW8bFZrwR 2M7GjMBRIKQXQ5VypLROkJ78N9gm7AsmrCc97Yuu5c2icDSIeEyDMc/sFEe8zLJ19aQH1rY ZnE5LqBO8d+oN6DOmglyMQqlYFrrcK8J9sWUyiGDSTGdj6m41TiMtWCLCIJBv24qj8TpR8b AK1r4JWIZxVoya9lJvP0w== UI-OutboundReport: notjunk:1;M01:P0:GG55q8yd8bs=;/enacubCTEJaDR3/3GwZR4I5RJt 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 9/8pAU7vN9Cs8akfwf/ZokfHi1o+vYnru3SSG6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772452041518158500 Take the file lock since s->to_dst_file and s->rp_state.from_dst_file may be changed in the migration thread. Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- migration/colo.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index ce02c71d8857d470be434bdf3a9cacad3baab0d5..dc47d03874039b686d2a4072ac4= e6c77e4ff1f87 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -173,11 +173,13 @@ static void primary_vm_do_failover(void) * The s->rp_state.from_dst_file and s->to_dst_file may use the * same fd, but we still shutdown the fd for twice, it is harmless. */ - if (s->to_dst_file) { - qemu_file_shutdown(s->to_dst_file); - } - if (s->rp_state.from_dst_file) { - qemu_file_shutdown(s->rp_state.from_dst_file); + WITH_QEMU_LOCK_GUARD(&s->qemu_file_lock) { + if (s->to_dst_file) { + qemu_file_shutdown(s->to_dst_file); + } + if (s->rp_state.from_dst_file) { + qemu_file_shutdown(s->rp_state.from_dst_file); + } } =20 old_state =3D failover_set_state(FAILOVER_STATUS_ACTIVE, --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451995; cv=none; d=zohomail.com; s=zohoarc; b=MTy5evAclBygzT1c8DfsjyM+V+mw1ClND04swdva7Bn7KX+Vp0t5462a89JtF1lufr1sjkUYf8pmhpk3LVDEWOc/W4T3yPk1j2w9yjUJT8geAsp0SfDJLHK5JoBRI1q4ylQoIyAhBGpIfWYjGIYTPKt26LF01xvPzPkUy6Fgf8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451995; 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=fwN66lijnmy4XUhK1dx7MdgKeJg4XbhuRV10AZhs3cw=; b=ZPGKVsTcsBuiZGruI1nuadUYv9a+1cTQOl6/fkbLiZNvlXqULSerJP/yVo+HHvjaxl1sD+JamOh3PbO3SQkbdtdP7equfTPPJQwTUsaYsBDMIri6xnoXz6mEuFzUOvvGNvVaL7sIQaLxQjH/1XFVoIaRmD5u1MDBGBgWU8T7QFQ= 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 1772451995940919.1707378323836; Mon, 2 Mar 2026 03:46:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1iy-0000ZB-Vm; Mon, 02 Mar 2026 06:46:09 -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 1vx1id-00004t-2t for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:51 -0500 Received: from mout.web.de ([212.227.17.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ia-0006CO-Eu for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:46 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MActe-1vqNsE144e-00Fqlq; Mon, 02 Mar 2026 12:45:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451942; x=1773056742; i=lukasstraub2@web.de; bh=fwN66lijnmy4XUhK1dx7MdgKeJg4XbhuRV10AZhs3cw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=p5rJtIpylTp0W4xDFy2RzA1Q7FH4VTX3ZnytBRi1W3TIT6zHlLuK2zD+3FroQt6p 462WMqAm/ikrNtdeK2TVY3NUofMZPhyM1+BChcGwuzPKDqF8jNMgCb7Yw41AoYWYK r4pHQ3VFZV3Qc2vs8ko41ztx7f2M2yTqUFz+dXLXl8zyPWgw/R/QHKhxcXydF/NBP kh/hdcO+AexSPee8qYp1Mn5nb9M0txZycKpvisXwIgcQIe6EPomunmI6zb1D32YBL /lU3MBgk+xLpwn2fECv6v7o2WvOT248NMysNQCUJ2aMxDeQ94WLy1uwgpepAgZcQv r3uVDjWydW0OE7tpkw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 20/21] migration: Keep s->rp_state.from_dst_file open until migration ends Date: Mon, 2 Mar 2026 12:45:35 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-20-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3325; i=lukasstraub2@web.de; h=from:subject:message-id; bh=ZLSzyW+Kbq+8BxGOT8Uq9Q6npx3OKDjaFrVvo16lwno=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6UNp9EbHFamN0HwJO3wdQMQzNJ6EHhT9Eyl EHjAIvFp0mJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulAAKCRA1qwsonF2y WONAEACcWAKeiVTJKUgf41163Ehip3G2QVRWpqEOpNjLex1x/7ggh+IpdcjQYTK13MyhTD7rsCj GAYLFMrzGLUcwdOtVGNvULwqzGr0L1x05qJbmNfOiXKdEEbDW0PeynIzbrJdLjItivQ8+30dxHU OJstTv9+TtUdwZSMTegF8CSVp1UzNdMKEML3elfE5VyGSg8hE+JIEJ7PqjsPs3gbjvsnecE7wjk xQgpvBAWtU+bcS71wi2ongD6cu3w3IU6zLDYmcDJ0wosFjV7E8RbScQw7xqMtCSlm6uO2PMxN0+ wkbKecfkyB+Wvc2GUlgz3Mn60y8A4q/NGFT4ATabFjmWb97it6dfDp092gRknwXVh0WUjNOhrdF nMh+g0rBKnXhWFpnuoiNdDQBuXMdic2oJN+Rqp8tH1h1YBQcJsWtR3oJG5OVbA6EE8VLkdOnz9r d0fFO1fK4bSEeUTXfoW8ETiriMPsZki2Mn5VmehzU7FXnCaxMzt6RxWgP+c/W4lR2knpLsXnU5t O2qHBJcARGaBOg5h4qwVeo6SiE5yojTh/ObjIkyiYnKNnqIEtxlqX/hBeP3W9mO8ZKBr7yO6RPm Gb64j4uPp9amuBw3YXiW/x2x/KqBtBFRgWxU3o1dQm8Qbz3o6NhAeSwEGzLATN6QT7we7W9j0nP MtvqKNHoSznC2+A== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:zHOI9iQ5pE8bJBOZTwrd6C5rA364hBCHtMefg9uw/Dfy3Hz1l/K NeC9Bho62vlnZaTmGz8bOhKn4jZ3pOASwtvO2jAbZwSQ33obzOyyeFgLkh4gBwTCSpXjyZo kvBS/VkOBOXq7ruBgNbTlUf7fKnbgJ99fQf5KjUV1HEvrunyiU1gA7gQL9ZEagghAgqvUWl JNeObMMLFrCjvfFLHMt6w== UI-OutboundReport: notjunk:1;M01:P0:smdkbBJidXQ=;e15zbcqMrsLKaagyCNMpP1B6rDG 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 KUzj17OvEVjAdV+kZOgCUP4titn01 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451997134158500 This will be used in the next patch to allow COLO to reuse the return path. Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- migration/migration.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index f36d42ef657bdf26d78ca642d77a9b76e1c0c174..74f5c314ff62333f6c9dd8bbd09= afdfaf84a41c2 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -97,7 +97,8 @@ static GSList *migration_blockers[MIG_MODE__MAX]; =20 static bool migration_object_check(MigrationState *ms, Error **errp); static bool migration_switchover_start(MigrationState *s, Error **errp); -static bool close_return_path_on_source(MigrationState *s); +static bool stop_return_path_thread_on_source(MigrationState *s); +static void migration_release_dst_files(MigrationState *ms); static void migration_completion_end(MigrationState *s); =20 static void migration_downtime_start(MigrationState *s) @@ -1278,7 +1279,8 @@ static void migration_cleanup(MigrationState *s) cpr_state_close(); cpr_transfer_source_destroy(s); =20 - close_return_path_on_source(s); + stop_return_path_thread_on_source(s); + migration_release_dst_files(s); =20 if (s->migration_thread_running) { bql_unlock(); @@ -2209,6 +2211,7 @@ static void migration_release_dst_files(MigrationStat= e *ms) * locking needed because this qemufile should only be managed by * return path thread. */ + assert(!ms->rp_state.rp_thread_created); if (ms->postcopy_qemufile_src) { migration_ioc_unregister_yank_from_file(ms->postcopy_qemufile_src); qemu_file_shutdown(ms->postcopy_qemufile_src); @@ -2216,7 +2219,9 @@ static void migration_release_dst_files(MigrationStat= e *ms) ms->postcopy_qemufile_src =3D NULL; } =20 - qemu_fclose(file); + if (file) { + qemu_fclose(file); + } } =20 /* @@ -2402,7 +2407,7 @@ static void open_return_path_on_source(MigrationState= *ms) } =20 /* Return true if error detected, or false otherwise */ -static bool close_return_path_on_source(MigrationState *ms) +static bool stop_return_path_thread_on_source(MigrationState *ms) { if (!ms->rp_state.rp_thread_created) { return false; @@ -2424,7 +2429,6 @@ static bool close_return_path_on_source(MigrationStat= e *ms) =20 qemu_thread_join(&ms->rp_state.rp_thread); ms->rp_state.rp_thread_created =3D false; - migration_release_dst_files(ms); trace_migration_return_path_end_after(); =20 /* Return path will persist the error in MigrationState when quit */ @@ -2787,7 +2791,7 @@ static void migration_completion(MigrationState *s) goto fail; } =20 - if (close_return_path_on_source(s)) { + if (stop_return_path_thread_on_source(s)) { goto fail; } =20 @@ -2941,7 +2945,8 @@ static MigThrError postcopy_pause(MigrationState *s) * path and just wait for the thread to finish. It will be * re-created when we resume. */ - close_return_path_on_source(s); + stop_return_path_thread_on_source(s); + migration_release_dst_files(s); =20 /* * Current channel is possibly broken. Release it. Note that this= is --=20 2.39.5 From nobody Sat Apr 11 23:04:28 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=1772451984; cv=none; d=zohomail.com; s=zohoarc; b=QkWd6U/9sKmn5mG7eChby+RSEoclkpy4Tl9EkGLb4+GUrZKpYUR6EJYoi4MRCZu7J/U8QGLq3tonBzDQNjTZkmzfhmRSGCZi4iJoye0VTseemCHbkf4uN2RdmuAmOhmZPS9wELyHUWcO32KUtjEF6cvGlDJgPLNUGIZTAkBhZ/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772451984; 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=ITqpwwsSvHY6NBo/kS+QmQ39G/KVmJBMgSxNnkvOzu4=; b=TSTYNLEhvSZq4/q98ssjbR0Hd2MnZOqQEBkejvm6snBJSEApsyu9WBK/GKf7hf0Xu1TDXHylJChkju4279zS/vfn+8zjgUjsnbfrur0tgtwhoaOHI/q7MNQILGV41Rwh49LTa6rlb+OP2KhjIL5Aq0WNhkNR1ebd55mzD6zVrXs= 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 1772451984492545.1547466008225; Mon, 2 Mar 2026 03:46:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vx1jC-000139-0l; Mon, 02 Mar 2026 06:46:22 -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 1vx1id-00006r-Lg for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:51 -0500 Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vx1ib-0006Cx-Pf for qemu-devel@nongnu.org; Mon, 02 Mar 2026 06:45:47 -0500 Received: from client.hidden.invalid by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N62yY-1vdEkA2EzA-012C8U; Mon, 02 Mar 2026 12:45:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1772451942; x=1773056742; i=lukasstraub2@web.de; bh=ITqpwwsSvHY6NBo/kS+QmQ39G/KVmJBMgSxNnkvOzu4=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=wVjMc5YI6eJxRYXxCtH3fVyVJ4cuWX5WgGisFV1pL/hfEL30t5LFxt990FTimb1E uIWy5Ens9/OayLehMv/0sUzKprdvQ0zccVyyyAIX612KPlEwKMWyoO3i3vRw9PIax gxsPz2OMwpbiCBGeF65GJjxM9VvcC9OelbATit6EkeijfNPbfuhczzsDv0oqOQBLX ltdHJv3UX4fPc9N+XwbplrXenhPFAtN76f8/4bhJf/l5GKfmEKEg4pYF9NrznwVK2 JYWz539fp0nMbclO1JjtNlO5TmUBVqauX/yR5bDM7c1EqojV0e9FEyhh6VBMImrBr Er2VCC0sh14O2RTnAg== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 From: Lukas Straub To: qemu-devel@nongnu.org Cc: Lukas Straub , Peter Xu , Fabiano Rosas , Zhang Chen , Hailiang Zhang , Li Zhijian Subject: [PATCH v11 21/21] colo: Reuse the return path from migration on primary and secondary side Date: Mon, 2 Mar 2026 12:45:36 +0100 Message-Id: <20260302-colo_unit_test_multifd-v11-21-d653fb3b1d80@web.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> References: <20260302-colo_unit_test_multifd-v11-0-d653fb3b1d80@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7407; i=lukasstraub2@web.de; h=from:subject:message-id; bh=xW8DcPv/c60MIhaTk/f+XYB6rFvpT/HXqTmPuiv92Mk=; b=owEBbQKS/ZANAwAKATWrCyicXbJYAcsmYgBppW6VIrBfG7LpEGf+SAUGAmrzzBf7zgFKa/cUt M6m2SC1p/aJAjMEAAEKAB0WIQSD+rFYoNm4+3Jij6Q1qwsonF2yWAUCaaVulQAKCRA1qwsonF2y WDK/EACAICAwrPB7bGGOCR5Ja+v+bhMANmaepVg6IIZa664E+xFbtmK3nO1b1r/C4LAFLns562b 63r5LJNDJbctJT88P1FUOPAsbNljidAQ8EBdeq8lh/vaoC7ib8rmeDplhySE/nJOoCdUph6QbaU UmdmkU3HgIaEOzW2QhZcyM2c0jjTnXIdrokb8e0iUF+WAisgpd4T2BFm9Ax2mpKyV/MKWTq1nlI wZwz2Ji7wQGi8s5qihzrnr9491QednVCh7q/PUJqUUhrgkLgLm/Ziam9gIkoFUyKEdhQlY6hEiO KdjeWyAJfz+iylBAgcmIbVnqMO2irZzEwci+6bdePISSoB4u1Bi9Bo4znT8byK9dABMGSK34akN 6/HDeIpIeV/PzCrisVe09uYbPF0RHdpIWx3oeWl/ZnXaC1xDcqJvVuNYBf0syyzg7HJoSeIP3BA ivcnHE9PcSpCH9ScABepmvpogfkt48OCAMjMLniKDDXRiE+U1sb1Ny0nvnUvBa6Oly//NAj1Vwa 42SCKYzbfXTulQcVXVXHqIFF06L8s3LVT2TdHcNodSP6FnoLrOXfdn5GvRAf4llOxz1Pim9GeOn hjrMPuXy8bnBi0/muego5eJ1xrP6bFiYDl9+ep9ytNshb6jQ8FREdxHk5KkWjCHeQk4mrBfq/Co p9gokIRSGbQRM9g== X-Developer-Key: i=lukasstraub2@web.de; a=openpgp; fpr=83FAB158A0D9B8FB72628FA435AB0B289C5DB258 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:ddC/OlYtxDD8dXCATvBdqapc76U0kEtJqxdsyhJEAkhhDGCd8cg PM2fvG30vnktjfoBfe9eMZbjw8gjr3AGGfbdDeSodBcvjZwJx0P5r/oiu+wQnVBeGhhUosG ByKnhEuZ/dJYNXJs2Vql86020Gyb/7R4CcSj2xMwE505uvcO0V+SF3HrTlI7CLGKdZ7qqcm c9S5udowXUDxBsnupRpcA== UI-OutboundReport: notjunk:1;M01:P0:1qDYW5phugk=;e1A4rHX2uMcjbO44NxyrAqiB/tM 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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 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.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.012, RCVD_IN_VALIDITY_RPBL_BLOCKED=1.188, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: 1772451985130158500 Use the return-path capability with colo and reuse the opened return path file on both primary and secondary side. This fixes a crash in colo where migration_cancel() races with colo closing s->rp_state.from_dst_file. Signed-off-by: Lukas Straub Reviewed-by: Peter Xu --- docs/system/qemu-colo.rst | 4 ++-- migration/colo.c | 26 +++++++++----------------- migration/options.c | 10 +++++++++- tests/qtest/migration/colo-tests.c | 1 + tests/qtest/migration/framework.c | 13 +++++++++++++ 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/docs/system/qemu-colo.rst b/docs/system/qemu-colo.rst index f7d3b6439cf3401a58c412634239d1a43999a10e..9ec3eb79b006a24e0d3a360f1c8= f49a68f4d8086 100644 --- a/docs/system/qemu-colo.rst +++ b/docs/system/qemu-colo.rst @@ -225,7 +225,7 @@ any IP's here, except for the ``$primary_ip`` variable:: **3.** On Secondary VM's QEMU monitor, issue command:: =20 {"execute":"qmp_capabilities"} - {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "x-colo", "state": true } ] } } + {"execute": "migrate-set-capabilities", "arguments": {"capabilities": = [ {"capability": "return-path", "state": true }, {"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 } } =20 @@ -242,7 +242,7 @@ Note: {"execute":"qmp_capabilities"} {"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-set-capabilities", "arguments": {"capabilities": = [ {"capability": "return-path", "state": true }, {"capability": "x-colo", "= state": true } ] } } {"execute": "migrate", "arguments": {"uri": "tcp:127.0.0.2:9998" } } =20 Note: diff --git a/migration/colo.c b/migration/colo.c index dc47d03874039b686d2a4072ac4e6c77e4ff1f87..2d36f933cf155c1084565162294= a61d32e28fe86 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -539,6 +539,8 @@ static void colo_process_checkpoint(MigrationState *s) Error *local_err =3D NULL; int ret; =20 + assert(s->rp_state.from_dst_file); + assert(!s->rp_state.rp_thread_created); if (get_colo_mode() !=3D COLO_MODE_PRIMARY) { error_report("COLO mode must be COLO_MODE_PRIMARY"); return; @@ -546,12 +548,6 @@ static void colo_process_checkpoint(MigrationState *s) =20 failover_init_state(); =20 - s->rp_state.from_dst_file =3D qemu_file_get_return_path(s->to_dst_file= ); - if (!s->rp_state.from_dst_file) { - error_report("Open QEMUFile from_dst_file failed"); - goto out; - } - packets_compare_notifier.notify =3D colo_compare_notify_checkpoint; colo_compare_register_notifier(&packets_compare_notifier); =20 @@ -636,16 +632,6 @@ out: colo_compare_unregister_notifier(&packets_compare_notifier); timer_free(s->colo_delay_timer); qemu_event_destroy(&s->colo_checkpoint_event); - - /* - * Must be called after failover BH is completed, - * Or the failover BH may shutdown the wrong fd that - * re-used by other threads after we release here. - */ - if (s->rp_state.from_dst_file) { - qemu_fclose(s->rp_state.from_dst_file); - s->rp_state.from_dst_file =3D NULL; - } } =20 void migrate_start_colo_process(MigrationState *s) @@ -838,6 +824,7 @@ static void *colo_process_incoming_thread(void *opaque) migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE, MIGRATION_STATUS_COLO); =20 + assert(mis->to_src_file); if (get_colo_mode() !=3D COLO_MODE_SECONDARY) { error_report("COLO mode must be COLO_MODE_SECONDARY"); return NULL; @@ -854,7 +841,6 @@ static void *colo_process_incoming_thread(void *opaque) =20 failover_init_state(); =20 - mis->to_src_file =3D qemu_file_get_return_path(mis->from_src_file); /* * Note: the communication between Primary side and Secondary side * should be sequential, we set the fd to unblocked in migration incom= ing @@ -866,6 +852,12 @@ static void *colo_process_incoming_thread(void *opaque) goto out; } =20 + /* + * rp thread still running on primary side, shut it down to go into + * colo state. + */ + migrate_send_rp_shut(mis, 0); + colo_incoming_start_dirty_log(); =20 bioc =3D qio_channel_buffer_new(COLO_BUFFER_BASE_SIZE); diff --git a/migration/options.c b/migration/options.c index 1ffe85a2d8ccc8de9cc04d3c12293538a367abf7..f33b2979290f30ecfd0ffc46544= 98f25750f6720 100644 --- a/migration/options.c +++ b/migration/options.c @@ -575,7 +575,15 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps= , Error **errp) ERRP_GUARD(); MigrationIncomingState *mis =3D migration_incoming_get_current(); =20 -#ifndef CONFIG_REPLICATION +#ifdef CONFIG_REPLICATION + if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { + if (!new_caps[MIGRATION_CAPABILITY_RETURN_PATH]) { + error_setg(errp, "Capability 'x-colo' requires capability " + "'return-path'"); + return false; + } + } +#else if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { error_setg(errp, "QEMU compiled without replication module" " can't enable COLO"); diff --git a/tests/qtest/migration/colo-tests.c b/tests/qtest/migration/col= o-tests.c index 598a1d3821ed0a90318732702027cebad47352fd..366b9f7ac6d56a6e74a29d3e062= 124ad4234608e 100644 --- a/tests/qtest/migration/colo-tests.c +++ b/tests/qtest/migration/colo-tests.c @@ -46,6 +46,7 @@ static int test_colo_common(MigrateCommon *args, * used in production. */ args->start.oob =3D true; + args->start.caps[MIGRATION_CAPABILITY_RETURN_PATH] =3D true; args->start.caps[MIGRATION_CAPABILITY_X_COLO] =3D true; =20 if (migrate_start(&from, &to, args->listen_uri, &args->start)) { diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/fram= ework.c index 2a3efeb80740cbfe876f649f0af685c5839e00a2..0bfc241914462c023ceab2fab03= 86009dc5a4320 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -216,6 +216,19 @@ static void migrate_start_set_capabilities(QTestState = *from, QTestState *to, * MigrationCapability_lookup and MIGRATION_CAPABILITY_ constants * are from qapi-types-migration.h. */ + + /* + * Enable return path first, since other features depend on it. + */ + if (args->caps[MIGRATION_CAPABILITY_RETURN_PATH]) { + if (from) { + migrate_set_capability(from, "return-path", true); + } + if (to) { + migrate_set_capability(to, "return-path", true); + } + } + for (uint8_t i =3D 0; i < MIGRATION_CAPABILITY__MAX; i++) { if (!args->caps[i]) { continue; --=20 2.39.5