From nobody Sat Sep 26 21:37:19 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=reject dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1787698618; cv=none; d=zohomail.com; s=zohoarc; b=YUoEbi0GR6EFtT9HvX1WMq7RatpItM6/mVVC3k5S8Bbm4lQtFjgWs2KynyerB2FmgIEKvsSA4ow93QXy7UmpHNzH8bBTY91XcG2I6cEld4t7/4iu4eZy2vzOwOpoXZQuyqJqsF3u5mt/5CT3wjvc8r68Zv2Qgxk/OK27cRiXJAo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787698618; h=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=f/D5zoLd8scxkyf15CeOt3e/AMKPkcqJH3KtMw8u0hI=; b=PgMEuRC+wzZ2Y1wknX5Hf+nvLuQPa/hGgjLN7RPkbjnyPyLVWsqLmk3S22xP+OOq5B2Xsr0e3Fwnv9/YgrUd17G7KwMMgXoIs+p87CvYI3S1uNx+c/gOF+s1ozlv/msh1NCrYMm7Nl7p5WFCmRmbq+plx44AeVRQvoe7NudCWx8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787698618973224.24764603912968; Tue, 25 Aug 2026 15:56:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wz04S-0006X4-HM; Tue, 25 Aug 2026 18:56:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wz04Q-0006Wm-Q5 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 18:56:42 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wz04O-0004w7-Ib for qemu-devel@nongnu.org; Tue, 25 Aug 2026 18:56:42 -0400 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67PFtsjb3987883; Tue, 25 Aug 2026 22:56:36 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4g72by55c7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Aug 2026 22:56:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67PMo8Z4016683; Tue, 25 Aug 2026 22:56:36 GMT Received: from pps.reinject (localhost [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4g850vdmdr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Aug 2026 22:56:35 +0000 (GMT) Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.1.12) with ESMTP id 67PMuY4F034200; Tue, 25 Aug 2026 22:56:35 GMT Received: from localhost.localdomain (ca-dev80.us.oracle.com [10.211.9.80]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id 4g850vdmdc-2; Tue, 25 Aug 2026 22:56:35 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=corp-2025-04-25; bh=f/D5z oLd8scxkyf15CeOt3e/AMKPkcqJH3KtMw8u0hI=; b=kgfhGP7AmbAOoUkS8yt/0 FGZKtMbW5Z4ZdVkLdIF0/T8RdAtbTlstpM0D7BJiqVmjcTA3BCeC15Y1oq5kdXfj USm3KqottRBTPBUsVl8yzQZ2ME4vil+qXcpwgWdO6Jt6dtXAmMXcrB1+GeqQxNDS JUjhu2sRweEhYA4jv5L7L+gT7SERiqDmgywTD+ujDmL0nBpg2jxINsl/pX8wwo9x /twcwcvFAp1G5VQ0C0El7/ZWla/2znKXd/EHS7UNLZFDoKu45fRDnk2Fzo4Di2vo MFK8pLS6q3Y18pttHSNjdP6bCguwczgT24/x4dQWvNoGTGdQKYohQNdOe2lHEftc Q== From: Dongli Zhang To: qemu-devel@nongnu.org Cc: alex@shazbot.org, clg@redhat.com, peterx@redhat.com, farosas@suse.de, maciej.szmigiero@oracle.com, mark.kanda@oracle.com, bchaney@akamai.com, joe.jin@oracle.com Subject: [PATCH 1/2] vfio/migration: Avoid savevm_vfio_handlers for cpr-exec and cpr-transfer Date: Tue, 25 Aug 2026 15:49:40 -0700 Message-ID: <20260825225054.807116-2-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260825225054.807116-1-dongli.zhang@oracle.com> References: <20260825225054.807116-1-dongli.zhang@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-25_06,2026-08-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 adultscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608250195 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI1MDE5NSBTYWx0ZWRfX7k59G0Pq5RU+ B8sEOV0bUWBvM3AYFsWZghlHWGYCRqVWJJcJO7Dv9XsM+7PitH9CBDCebcXivmS+B9QxLpGMHvz gNaQy5le32LLg6wADGjV4tQpU3iB1UipkxXAr9d94jhdcz8hTR+vXmVr2ZYPwPITq48me7faUZl tRyZS2dp8JCEC5eY3wt3pDZFou/+wr7l1kMhZp672NI7gBp6+zTY5dFwPhZis8AKwtpL79WPLiF +1RorCRZzs9q8YNgPfIVfmvd73XpqH1aunSl7KFgIv/hZKuDz1PcG6hwdv7Bqn/XRIcNCjz1ATg 2+QBdFcJHcDKIsihK68BWCABMR3w/KNHbhNB2JlRXQ3FH6WILellvvQY4oTdfUI1KDw0NTrS+ch E6vyj3nOMcaC55VTxylYYXy2qMb0ID51G1diYwwuFjoaEAUHL4B07BjSa4OJiKzNQhIuMUdbdtb mEeU+iipk45FCs7HXYg== X-Proofpoint-GUID: L3WQQL5B0Eu4FTKW9o-n2V8TfgaRkRBL X-Proofpoint-Spam-Info: AW1haW4tMjYwODI1MDE5NSBTYWx0ZWRfX9AkWvcE0Awe0 DSyioWncCkkAze2Y9AMrX99UqlaCznggCtJMbzaBeMg+HYZ+fwE+fXVz61gQtQ6NsdrrQABCwUJ R7LLCCACT4bNPKZaWAuPwCRg7itUavpHiVZ6sGbvUOk7dzBBtfsI X-Authority-Analysis: v=2.4 cv=fqTsol4f c=1 sm=1 tr=0 ts=6a8e1da4 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=RD47p0oAkeU5bO7t-o6f:22 a=yPCof4ZbAAAA:8 a=pylPGa1hoqjualF2eaIA:9 X-Proofpoint-ORIG-GUID: L3WQQL5B0Eu4FTKW9o-n2V8TfgaRkRBL 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=dongli.zhang@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1787698621513158500 Content-Type: text/plain; charset="utf-8" When the VFIO driver is vfio-pci, vfio_migration_query_flags() returns -ENOTTY, so savevm_vfio_handlers is not registered or involved. However, VFIO drivers that support live migration, such as mlx5_vfio_pci, do support vfio_migration_query_flags(). In that case, savevm_vfio_handlers is registered and may be used to save and load the VFIO migration stream. This is expected for VFIO live migration, but not for cpr-exec or cpr-transfer. Even after migration converges with "migrate_set_parameter downtime-limit 1000000", the target still reports the following error: failed (load of migration failed: Invalid argument: Failed to load vmstate = version_id: 1, ret: -22) Skip savevm_vfio_handlers for cpr-exec and cpr-transfer. Signed-off-by: Dongli Zhang --- hw/vfio/migration.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c index 73c49d8c24..49aeaad516 100644 --- a/hw/vfio/migration.c +++ b/hw/vfio/migration.c @@ -723,6 +723,13 @@ static bool vfio_is_active_iterate(void *opaque) return vfio_device_state_is_precopy(vbasedev); } =20 +static bool vfio_is_active(void *opaque) +{ + MigMode mode =3D migrate_mode(); + + return mode !=3D MIG_MODE_CPR_EXEC && mode !=3D MIG_MODE_CPR_TRANSFER; +} + /* * Note about migration rate limiting: VFIO migration buffer size is curre= ntly * limited to 1MB, so there is no need to check if migration rate exceeded= (as @@ -951,6 +958,7 @@ static const SaveVMHandlers savevm_vfio_handlers =3D { .save_cleanup =3D vfio_save_cleanup, .save_query_pending =3D vfio_state_pending, .is_active_iterate =3D vfio_is_active_iterate, + .is_active =3D vfio_is_active, .save_live_iterate =3D vfio_save_iterate, .save_complete =3D vfio_save_complete_precopy, .save_state =3D vfio_save_state, --=20 2.43.5 From nobody Sat Sep 26 21:37:19 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=reject dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1787698643; cv=none; d=zohomail.com; s=zohoarc; b=GAXTBw0fKLmy+73X6b0Lvmrt/4mKnY4C3WmmOoWsszfeR+h2n6+BkbErllziNITWXN3JIxJLpdMN0TVNQSBniSv9z1znM7BsumWBQKZsEI6MIN0W5k8m9vFsF9k/lXgux5YbDyn3aN5qeDzb5ZwbF0Dz5Z91Kg2Ohk2TLLBrSZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787698643; h=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=144heAmGybhzbYjJ9e3+mUthBiOW81MxgO0hQrFffXA=; b=DdvS4p5mmBAZ+YpGvX8bpbcLkcQDP/oWKSk5VXeYsC8kPw4NC7cHOwv9O7Iyi5yR/UGZpVftKGvn4Mjijeoz9Wy9OhVK9mD3Q1LyEXSffSw7uTkdz/p6xwKLYM5ePQ/fRJA2RXX7FTR8N7y6Cc69FBkM/S7Fomb5zn3jJIr1GXQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787698643080281.93541659041523; Tue, 25 Aug 2026 15:57:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wz04T-0006Xl-IA; Tue, 25 Aug 2026 18:56:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wz04R-0006X2-UQ for qemu-devel@nongnu.org; Tue, 25 Aug 2026 18:56:43 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wz04P-0004wB-4f for qemu-devel@nongnu.org; Tue, 25 Aug 2026 18:56:43 -0400 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67PFtwvc3909932; Tue, 25 Aug 2026 22:56:37 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4g74as53tp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Aug 2026 22:56:37 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67PMo7wJ016551; Tue, 25 Aug 2026 22:56:36 GMT Received: from pps.reinject (localhost [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4g850vdmdx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Aug 2026 22:56:36 +0000 (GMT) Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.1.12) with ESMTP id 67PMuY4H034200; Tue, 25 Aug 2026 22:56:36 GMT Received: from localhost.localdomain (ca-dev80.us.oracle.com [10.211.9.80]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id 4g850vdmdc-3; Tue, 25 Aug 2026 22:56:36 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=corp-2025-04-25; bh=144he AmGybhzbYjJ9e3+mUthBiOW81MxgO0hQrFffXA=; b=G6zG8KWx+U1wolT6kKe/D tEBgHadGrm95tS99kEFP5OXTS1huEuT+wgtPYCbt+FVlyASU6KGyS1GoFtpifvgx jQgdbYAI02pIdVPHrB5GY5O+rBkaxOBHCNkciSxadcw75PDkAYLCnqiELcAuZc8L rTPvkyZLoDNb7ifEhXAighkxOtnaHgrSuso1IgoBBJ5/5EUxNuCvRJubKuW7EL8W UoPoVZUiFn8jGC3aGB+F9VUPuDhktLgDpaT7eyTMvRpbSvqkC19jz9rVD1/e4PjP 7R6TN5T/YQesba2MmpF3ihC1H34jL7st+75Hxobe1cxUeXgQHS+FAQrfsE0uLoI6 g== From: Dongli Zhang To: qemu-devel@nongnu.org Cc: alex@shazbot.org, clg@redhat.com, peterx@redhat.com, farosas@suse.de, maciej.szmigiero@oracle.com, mark.kanda@oracle.com, bchaney@akamai.com, joe.jin@oracle.com Subject: [PATCH 2/2] migration: Avoid inactive SaveVMHandlers in qemu_savevm_state_non_iterable() Date: Tue, 25 Aug 2026 15:49:41 -0700 Message-ID: <20260825225054.807116-3-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260825225054.807116-1-dongli.zhang@oracle.com> References: <20260825225054.807116-1-dongli.zhang@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-25_06,2026-08-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 adultscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608250195 X-Authority-Analysis: v=2.4 cv=StygLvO0 c=1 sm=1 tr=0 ts=6a8e1da5 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=7Gl3-_t3PgB9XO-mQDs3:22 a=yPCof4ZbAAAA:8 a=yh4iPBlkOydvZEHkctMA:9 X-Proofpoint-ORIG-GUID: F9muvEx12CYSRGBoDAVdoD1nHkxOIdl3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI1MDE5NSBTYWx0ZWRfX7Xib0frnsTUA mBqqkouoZLbleQJS5fyVhtJ19GmdpYpJFb4h3KTz9nSAioGKly+3gFZ/9GWCeyfI6E8U/+fYAUY mGPuBnPY2PYier1ZNBZ2ZL9/WMupvJhDZ74DLoeF/7rLJttdgKoR+qFZRvPoTAko4TbO2l48T7x 747MWFOnwe+Y7eIqneW6lYPR85lXy/EJ2LBXoLBFr9/fcUaEB6dhcUk1qLeKo9k/a/p1c4ToWdM DFOspcjgaMexVERBDWcpgzZZpTCrxIH5FYptawJHS+0njKY+GUKD7Wfyjj3pF5SdDqziw8OBDXe odZElNyh+QYWXl3orxcbs2umav5GS5yOShNGb+TMFSASRHLUYzw8/iUeZ9Kvhpl0NdPVbO5s4wp q0goAqC2G8Av5szfHVKQpD6ZVOLqBsJD6+8Bt5DbtbBuPEE1Ts9f5zKR5n5kF8R6i81R5sZNX49 OkXr7hUP/Cfj/7xFIxg== X-Proofpoint-Spam-Info: AW1haW4tMjYwODI1MDE5NSBTYWx0ZWRfXzh5NrHZNGrz6 Quc6r3MwWNyZ5w09nBoiRxHEIG/KJ4VN20Uh/n+YYkbLQYXW95nKH/YHUbvS4+UgxsVb5qYUvJo 5Hbi6wQuRReL74RcsyYwWCkn1GkBjokjwUh3jml6PnUbx03o/7Bg X-Proofpoint-GUID: F9muvEx12CYSRGBoDAVdoD1nHkxOIdl3 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=dongli.zhang@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1787698645010158500 Content-Type: text/plain; charset="utf-8" qemu_savevm_state_non_iterable() does not check qemu_savevm_state_active(), so inactive SaveVMHandlers can still be saved through the non-iterable path. With mlx5_vfio_pci, this means savevm_vfio_handlers may still call into vfio_pci_save_config() during cpr-exec or cpr-transfer. The target QEMU then tries to load that VFIO migration config state and may fail with a PCI config error. qemu-system-x86_64: get_pci_config_device: Bad config data: i=3D0x68 read: = 0 device: 40 cmask: ff wmask: 0 w1cmask:0 qemu-system-x86_64: Failed to load element of type pci config for config qemu-system-x86_64: 0000:91:00.1: Failed to load device config space Call qemu_savevm_state_active() from qemu_savevm_state_non_iterable() so inactive SaveVMHandlers, including savevm_vfio_handlers, are skipped. Neither vfio_pci_save_config() nor vfio_pci_load_config() will be involved. Signed-off-by: Dongli Zhang --- migration/savevm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/migration/savevm.c b/migration/savevm.c index 34dd06f9f7..463bffa15d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1107,7 +1107,7 @@ void qemu_savevm_state_end(QEMUFile *f) static inline bool qemu_savevm_state_active(SaveStateEntry *se) { /* When no is_active() hook, always treat it as ACTIVE */ - if (!se->ops->is_active) { + if (!se->ops || !se->ops->is_active) { return true; } =20 @@ -1753,6 +1753,10 @@ bool qemu_savevm_state_non_iterable(QEMUFile *f, Err= or **errp) continue; } =20 + if (!qemu_savevm_state_active(se)) { + continue; + } + start_ts_each =3D qemu_clock_get_us(QEMU_CLOCK_REALTIME); =20 if (vmstate_save(f, se, vmdesc, errp) < 0) { --=20 2.43.5