From nobody Sun Sep 28 14:52:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1759049827; cv=none; d=zohomail.com; s=zohoarc; b=e4tk9F6V/TWwUJLGqV68y2dm+NlechCO3H2oy8s8XeDpayxjgR0QETnia478h3TFhRyJVfbxXyI+Jgj7xmwhs5rJlYWC02b6r0VuwhjcZinTpAhDY4eMqjhbMC6Ke7xEL8ReCIJDf3l/w/1qsq6KTRjZ4EBgnujqR9e2buefbng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759049827; 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=FZP89ow6Eb78Jm0grnyFXhqkEXmEueOw+OjDOhRNyKc=; b=DBtx3fJVC0zcOZi2XSjq0/lQd0/Mm4KU+26dZclist0EEdDBau239X9F5ytTo05ZH+eNGC+jALXzGOYNU0ZJnOANeQ2zxj87r1x17YCxgrhxleKIqQ6fSlzQCGTRp/iriil5UqgixnFWRMfcbdPg6yIvPpHrg6sa6TqFad1Tg8A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759049827841314.25777694392775; Sun, 28 Sep 2025 01:57:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2nC5-0006SE-QG; Sun, 28 Sep 2025 04:55:45 -0400 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 1v2nC3-0006RN-1z for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:43 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2nBo-00044v-4v for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:40 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:18 -0700 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759049728; x=1790585728; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=UIx34YIzlFINwWTFJwGZ4PbgVaTVtQLZb+iSo6vAuUY=; b=jmjJ+4NdiCnYhvHkB2beNFA8vl3h3JbRm/4l9RmqiHLgMRCc0pWbneJW IXHu74F+Wl33PAugAK1/6CflInHZyxptZ3QIwCwAM0AVEjeoUXWWzUJFM m2NDx170In2m7g/5/CX5yg6C7TLwZlaV9heAneiT6nZLWcNDQ3eaNdJGg CaTAcn7Sk5Q0d5L9G3fR/TNzQVHOX8asYh9++9Bq2YLzNVqv1kREntPJD pskUk/rsSLlsnWymDL3+FMCKyZcovAjlvIY6+U7uz9kyHGqZo7iGoJNVV wT36uRwQOL6UfbFeXsUYAJn+94df9HuQreLzznCffXhJITRcVsPkYj4TC A==; X-CSE-ConnectionGUID: vuQHoRlMRv2/kUXX3cm5BA== X-CSE-MsgGUID: ULeKB+42Syaq41mh7L2hiA== X-IronPort-AV: E=McAfee;i="6800,10657,11566"; a="65167428" X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="65167428" X-CSE-ConnectionGUID: p4czyY+1S12c4QaXq/DZNA== X-CSE-MsgGUID: nV8iaFQMSkqZGeyH+Vducw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="177810798" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, steven.sistare@oracle.com, Zhenzhong Duan , David Hildenbrand Subject: [PATCH v2 1/6] vfio/container: Remap only populated parts in a section Date: Sun, 28 Sep 2025 04:54:27 -0400 Message-ID: <20250928085432.40107-2-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250928085432.40107-1-zhenzhong.duan@intel.com> References: <20250928085432.40107-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=192.198.163.12; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -39 X-Spam_score: -4.0 X-Spam_bar: ---- X-Spam_report: (-4.0 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @intel.com) X-ZM-MESSAGEID: 1759049830598116600 Content-Type: text/plain; charset="utf-8" If there are multiple containers and unmap-all fails for some of them, we need to remap vaddr for the other containers for which unmap-all succeeded. When ram discard is enabled, we should only remap populated parts in a section instead of the whole section. Fixes: eba1f657cbb1 ("vfio/container: recover from unmap-all-vaddr failure") Signed-off-by: Zhenzhong Duan Reviewed-by: Steven Sistare Reviewed-by: David Hildenbrand --- include/hw/vfio/vfio-cpr.h | 2 +- hw/vfio/cpr-legacy.c | 20 +++++++++++++++----- hw/vfio/listener.c | 4 ++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/include/hw/vfio/vfio-cpr.h b/include/hw/vfio/vfio-cpr.h index 26ee0c4fe1..56fa226f35 100644 --- a/include/hw/vfio/vfio-cpr.h +++ b/include/hw/vfio/vfio-cpr.h @@ -68,7 +68,7 @@ bool vfio_cpr_container_match(struct VFIOLegacyContainer = *container, void vfio_cpr_giommu_remap(struct VFIOContainer *bcontainer, MemoryRegionSection *section); =20 -bool vfio_cpr_ram_discard_register_listener( +bool vfio_cpr_ram_discard_replay_populated( struct VFIOContainer *bcontainer, MemoryRegionSection *section); =20 void vfio_cpr_save_vector_fd(struct VFIOPCIDevice *vdev, const char *name, diff --git a/hw/vfio/cpr-legacy.c b/hw/vfio/cpr-legacy.c index bbf7a0d35f..9a37e8c604 100644 --- a/hw/vfio/cpr-legacy.c +++ b/hw/vfio/cpr-legacy.c @@ -227,22 +227,32 @@ void vfio_cpr_giommu_remap(VFIOContainer *bcontainer, memory_region_iommu_replay(giommu->iommu_mr, &giommu->n); } =20 +static int vfio_cpr_rdm_remap(MemoryRegionSection *section, void *opaque) +{ + RamDiscardListener *rdl =3D opaque; + + return rdl->notify_populate(rdl, section); +} + /* * In old QEMU, VFIO_DMA_UNMAP_FLAG_VADDR may fail on some mapping after * succeeding for others, so the latter have lost their vaddr. Call this - * to restore vaddr for a section with a RamDiscardManager. + * to restore vaddr for populated parts in a section with a RamDiscardMana= ger. * - * The ram discard listener already exists. Call its populate function + * The ram discard listener already exists. Call its replay_populated fun= ction * directly, which calls vfio_legacy_cpr_dma_map. */ -bool vfio_cpr_ram_discard_register_listener(VFIOContainer *bcontainer, - MemoryRegionSection *section) +bool vfio_cpr_ram_discard_replay_populated(VFIOContainer *bcontainer, + MemoryRegionSection *section) { + RamDiscardManager *rdm =3D memory_region_get_ram_discard_manager(secti= on->mr); VFIORamDiscardListener *vrdl =3D vfio_find_ram_discard_listener(bcontainer, section); =20 g_assert(vrdl); - return vrdl->listener.notify_populate(&vrdl->listener, section) =3D=3D= 0; + return ram_discard_manager_replay_populated(rdm, section, + vfio_cpr_rdm_remap, + &vrdl->listener) =3D=3D 0; } =20 int vfio_cpr_group_get_device_fd(int d, const char *name) diff --git a/hw/vfio/listener.c b/hw/vfio/listener.c index 3b6f17f0c3..04c64874fa 100644 --- a/hw/vfio/listener.c +++ b/hw/vfio/listener.c @@ -577,8 +577,8 @@ void vfio_container_region_add(VFIOContainer *bcontaine= r, if (!vfio_ram_discard_register_listener(bcontainer, section, &= err)) { goto fail; } - } else if (!vfio_cpr_ram_discard_register_listener(bcontainer, - section)) { + } else if (!vfio_cpr_ram_discard_replay_populated(bcontainer, + section)) { error_setg(&err, "vfio_cpr_ram_discard_register_listener for %s fail= ed", memory_region_name(section->mr)); --=20 2.47.1 From nobody Sun Sep 28 14:52:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1759049813; cv=none; d=zohomail.com; s=zohoarc; b=kIpVvJowICyLskIsTRD44fiuB9nWWgu9X0ezyoon35n9JRotYYdxCpE39FKcnIgh6fh6+wAqTjkUSV30+428bEtxO4Dtc4jrENXduhnYt1ap5mGn8NyziN+TNLcZIPcSOBxkXamEGTyPcIcrgbFtVlgyeWBS2HqSQE6mr+LuQG4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759049813; 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=JJgDRg/qY6KbH78bXm9CCvJPA6fsm980NVa1KiLt4Uk=; b=c8N7y+j1bNoXPmNJVper6L6fLv/zl5jJ/33axVn+XRaPAFo07tgCsZSkNTvIKUGDkAB/WMeU3tNxiY0nae06FRj3Lo98Wwy8PRH1UdDNjBG11i6aKqaydxyeKh/DGG6XVoKWlliYhrkBRIQazU3DVwW/UQs5xfKqeMXzwWMPs3E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759049812816616.8237177915463; Sun, 28 Sep 2025 01:56:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2nC2-0006Ri-90; Sun, 28 Sep 2025 04:55:42 -0400 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 1v2nC0-0006RJ-ST for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:40 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2nBm-00045O-Lh for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:39 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:20 -0700 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:19 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759049727; x=1790585727; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1bPMtFRL3YYOPfBbPcLgkc9GDo/yeMUTGUUDeY1Ngok=; b=aXyPVoPNPKjlIZYcTwa6njqorEAuOe6wgvtEzwEbJAFXYyCq98F1Mdun QrevVI2gxxVCaneO3EANIockvDwt32Dpb/xurr0j+mmKCfmRWVukdCW8a kwmXN8iPeVZIG1FIDb73bPvlUTTj5Ck7t4UgV08tBJvd5Ngbt1a1bJ2RI Szu+WnDow6Ez2OLON7VU1fzO31fVkxXKVGGevcd5TCNnIB74YAYhB8BL6 CgMHBsqk/eRyqPy18SUKS/UgS4Ljqf8ZUbrBvtNLPIZQ+xx6O08YAlui9 ujGXNT7Au6wGIBS3K886dx1+oibJO2F+hSBPNvE5bx20nyd4a4Y28sMV6 Q==; X-CSE-ConnectionGUID: Ylmka4j1SAiAaScEaFSKWw== X-CSE-MsgGUID: ZCITI5h1Q+eHOLf2gqQc0Q== X-IronPort-AV: E=McAfee;i="6800,10657,11566"; a="65167433" X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="65167433" X-CSE-ConnectionGUID: OrNMCXMPTI26irWx+yq3tw== X-CSE-MsgGUID: 0IgDBlKrQ4GEUo0JJUbxEw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="177810804" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, steven.sistare@oracle.com, Zhenzhong Duan Subject: [PATCH v2 2/6] vfio/cpr-legacy: drop an erroneous assert Date: Sun, 28 Sep 2025 04:54:28 -0400 Message-ID: <20250928085432.40107-3-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250928085432.40107-1-zhenzhong.duan@intel.com> References: <20250928085432.40107-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=192.198.163.12; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @intel.com) X-ZM-MESSAGEID: 1759049814582116600 Content-Type: text/plain; charset="utf-8" vfio_legacy_cpr_dma_map() is not only used in post_load on destination but also error recovery path on source side. Assert it for destination is wrong. Fixes: 7e9f21411302 ("vfio/container: restore DMA vaddr") Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare --- hw/vfio/cpr-legacy.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/vfio/cpr-legacy.c b/hw/vfio/cpr-legacy.c index 9a37e8c604..c2b81f4a4b 100644 --- a/hw/vfio/cpr-legacy.c +++ b/hw/vfio/cpr-legacy.c @@ -52,8 +52,6 @@ static int vfio_legacy_cpr_dma_map(const VFIOContainer *b= container, .size =3D size, }; =20 - g_assert(cpr_is_incoming()); - if (ioctl(container->fd, VFIO_IOMMU_MAP_DMA, &map)) { return -errno; } --=20 2.47.1 From nobody Sun Sep 28 14:52:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1759049847; cv=none; d=zohomail.com; s=zohoarc; b=KaecOkDgPt+PfJBhYDvkwXLYTv+dIf0ktDZ3au1zYqCwcCMgXBHrXqIeG6LmbT6+dFifyAodWaRvD3gb4XS0nxL3TdhP1s3WL+340SMrEDhQMA+ZCq+HjmhgMHwfgMhl5v7Sui3Vn3x/qDjsP1I6UaY5rDXqHB8pqW8O/9AyPHs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759049847; 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=sgoNgkdCClfv6e+GBT0eUtmVZX6H/7BdmcEED1ZgBPM=; b=aRV6BbMud+/SxzU/BfWHDvOhdpmA2PHT9FSAochHspeZtfG6r2a+MXyY63uqFnPQBy9wcPt/zG95usT6wvxrhwBWn5A+Y+CPcjl+r6dn8gUpre9uC99isndX2cMPP8MNjCQwq4log7eSc4E3zXqAab0AWl6819dfEsha5yydzd8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759049847379419.0279505631795; Sun, 28 Sep 2025 01:57:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2nC9-0006Sy-QT; Sun, 28 Sep 2025 04:55:49 -0400 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 1v2nC5-0006Sa-Vj for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:46 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2nBs-00044H-HI for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:45 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:22 -0700 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:21 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759049733; x=1790585733; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZaOR0GwkP7gj0Qjq7ISfL5dfkwjjlxyWj/oRNzcntF8=; b=M/I8Ig/+0i+P8JlLKbA2c+/qqYzGDYA5Imacaxfc/NnqVyjkY7BvX5qY wKgI6ynq/Pwz3a7fZQbU3JQYxhGPazI1xiuvCu+PjJe721KlG7byewG6f DiKWaquX+VPBrwnKP3b6vmPSyy23PxJ2ITWvzc1NmuugliaPUIuDbekLI OG+lTSvXmPCFFs+eHQRbwsxk/V4nR7sf4gDtCCCG+aUq9gNf8GOwNncRz v6gfzpaq67dBA+FfE/A09ZdisT+pYm+Ljt9QEclzsvy0YfMRdCIgy25or nWArqWOWd1WJeDkjsDYa7EZYG7vdBaP3QdfOpchypmLq73U7kAPQ8BOsb A==; X-CSE-ConnectionGUID: HhRCF9QCRWC9lEQkjge+SQ== X-CSE-MsgGUID: aZUEMEsCQeCEED8UL3cpCw== X-IronPort-AV: E=McAfee;i="6800,10657,11566"; a="65167436" X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="65167436" X-CSE-ConnectionGUID: SzKgkaStTA2XU/LkjxfU/g== X-CSE-MsgGUID: BMSXHGg3Tiu+XLNMWgjaDA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="177810810" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, steven.sistare@oracle.com, Zhenzhong Duan Subject: [PATCH v2 3/6] vfio/iommufd: Set cpr.ioas_id on source side for CPR transfer Date: Sun, 28 Sep 2025 04:54:29 -0400 Message-ID: <20250928085432.40107-4-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250928085432.40107-1-zhenzhong.duan@intel.com> References: <20250928085432.40107-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=192.198.163.12; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -47 X-Spam_score: -4.8 X-Spam_bar: ---- X-Spam_report: (-4.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.442, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @intel.com) X-ZM-MESSAGEID: 1759049848450116600 Content-Type: text/plain; charset="utf-8" On source side, if there are more than one VFIO devices and they attach to same container, only the first device sets cpr.ioas_id, the others are bypassed. We should set it for each device, or else only first device works. Fixes: 4296ee07455e ("vfio/iommufd: reconstruct device") Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare --- hw/vfio/iommufd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index f0ffe23591..13c5c49d5e 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -602,7 +602,6 @@ skip_ioas_alloc: container->be =3D vbasedev->iommufd; container->ioas_id =3D ioas_id; QLIST_INIT(&container->hwpt_list); - vbasedev->cpr.ioas_id =3D ioas_id; =20 bcontainer =3D VFIO_IOMMU(container); vfio_address_space_insert(space, bcontainer); @@ -636,6 +635,8 @@ skip_ioas_alloc: bcontainer->initialized =3D true; =20 found_container: + vbasedev->cpr.ioas_id =3D container->ioas_id; + ret =3D ioctl(devfd, VFIO_DEVICE_GET_INFO, &dev_info); if (ret) { error_setg_errno(errp, errno, "error getting device info"); --=20 2.47.1 From nobody Sun Sep 28 14:52:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1759049889; cv=none; d=zohomail.com; s=zohoarc; b=WXwzCKdYJ8QalSIELKf8HWvgTbbeifF/U5tOFRc42w42QuXWJ6AxcKMsuLHMOBzQvN7QTl8QWPvlO+9z9I4fHo+TRKxq+gbIN0TMJxBuA7uevR9ELAIJimzpvUQiuvx5YlUXLDBTgNTmkLnJl5unbZeUpfGzp1IQMJBqA+YUtLs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759049889; 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=M9EUekCt+sMf9xYMrEftQEF8OYGi+jT++oPrhWPEwDw=; b=nG2beru627dO49UClUmB346Z6TzO+vUsb/zUetJj/cbJYseebofw8x2cco9O2FMcPPolOs4tObrF19/pvaz97WZ49aMqKzW1uozhlAwzpq6na3qXGpZZlt0FgDsyFCmo7gtFTcEW8nazG+RMbhLVihfUYfX2d8RNMwl1Di/o/M4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759049888996943.0229734519282; Sun, 28 Sep 2025 01:58:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2nCC-0006Tv-1w; Sun, 28 Sep 2025 04:55:52 -0400 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 1v2nC8-0006TE-Dq for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:49 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2nC1-00045O-TN for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:48 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:24 -0700 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:22 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759049742; x=1790585742; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3UQj2hJs2Apvsru+FUO6+kmR91IJA7eedlHTGTktHRA=; b=XpMZXS0RA1YZugkL/paQ2LQxf4/eS3OptRCuS0NhORKW+rrqBkyfppkw KWjBlOcZVhZtCWoD2B7m6uwW+dXTWInBNVoPGr4XNnfKDrY7DIdBK5VUW EwaZKVz4pkhiTsb7vev054kQCEvwQqXKgt1EDxe//cAO05ppkKolG/ua6 32O7N4l/WqvbcTU004JY+Brgb5gczyLmCk7s3W7nogULZLHAgYp+81Ww8 +gWTDV1osfmR5EMhMkTopz7JHsLyWcMStB+K4Wp2GyqITGOJyZecNiK3l STjALWAVldDr28qhiff89aRwrrLUBr7ljCV3bZe6hNDHmnex9PlwryZl7 g==; X-CSE-ConnectionGUID: fxEBmT44TBeHhMrDUGzedg== X-CSE-MsgGUID: bp/jEMH/RviWbSZs07KkOg== X-IronPort-AV: E=McAfee;i="6800,10657,11566"; a="65167439" X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="65167439" X-CSE-ConnectionGUID: ldyHBXjvR2uMmdaZaB8a+A== X-CSE-MsgGUID: NckImwntR7aZfgMDfIOceA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="177810815" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, steven.sistare@oracle.com, Zhenzhong Duan Subject: [PATCH v2 4/6] vfio/iommufd: Restore vbasedev's reference to hwpt after CPR transfer Date: Sun, 28 Sep 2025 04:54:30 -0400 Message-ID: <20250928085432.40107-5-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250928085432.40107-1-zhenzhong.duan@intel.com> References: <20250928085432.40107-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=192.198.163.12; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -47 X-Spam_score: -4.8 X-Spam_bar: ---- X-Spam_report: (-4.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.442, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 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: 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 @intel.com) X-ZM-MESSAGEID: 1759049890886116600 Content-Type: text/plain; charset="utf-8" After CPR transfer, if there are more than one VFIO devices, device is not added to hwpt->device_list and its reference to hwpt isn't restored on destination. We still need to call iommufd_cdev_attach_container() to restore it after a matching container is found, or else SIGSEV triggers. Fixes: 4296ee07455e ("vfio/iommufd: reconstruct device") Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare --- hw/vfio/iommufd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 13c5c49d5e..c6ca5db009 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -560,10 +560,9 @@ static bool iommufd_cdev_attach(const char *name, VFIO= Device *vbasedev, continue; } =20 - if (!cpr_is_incoming()) { + if (!cpr_is_incoming() || + (vbasedev->cpr.ioas_id =3D=3D container->ioas_id)) { res =3D iommufd_cdev_attach_container(vbasedev, container, &er= r); - } else if (vbasedev->cpr.ioas_id =3D=3D container->ioas_id) { - res =3D true; } else { continue; } --=20 2.47.1 From nobody Sun Sep 28 14:52:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1759049887; cv=none; d=zohomail.com; s=zohoarc; b=Uc2+jG/ho1Qp0F6jJ6Z71H4tMNDCIkDrj6WQFHQVwRlGBd5PW3/l+vLGuLXoTzae/KSWk/3r0A2R0pBZx8CvQ245+P4MqiFQKvfY31WEQ7/tgOTn92knj/N1mPemZxebjfPyXmlV0atVpLHvBeM7BkFrkz8cQF/JXKKqmjAGc8w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759049887; 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=iD+hUuxIHujPc5jjF1F4ngDoZvQkhBnEEF5fT0jXxxc=; b=Nt6DHWDAK3C6BIgiYjiUntpR/+2xEUeUqc+tPMBNQwUbJU+mIsQMYKLQ8M/FHtayvfU2TXvfYIfjV7tG9JVaZm4OlONJlIsri2mWJFw0sXI0kIPPfwtoIrI4b2DaXxeyqb75QmMd0/DZMpj4c3ttlmm0W43xXECoOllk2b9RoPg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175904988726695.7396773508408; Sun, 28 Sep 2025 01:58:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2nCC-0006UL-V9; Sun, 28 Sep 2025 04:55:53 -0400 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 1v2nC9-0006TF-Gy for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:49 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2nC2-00044v-DZ for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:47 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:26 -0700 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:24 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759049742; x=1790585742; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=fbTVzACek9P6n49RRFyo1a5o1MnuIxGtUd4h5/5M0a0=; b=HNtGufGH7nQgaksPs9L2+FzrNgUrBMfmRkS62CWPLRjWXbZ2D0kvBFMt lbhz445hLSslgpRB/zBOOkwady1xOGBJHuHGtAFUdEDP63VwpKiX3Ji8y 5nX4OXL33VxB+L8U4LRL9Sz4D24oWbu+fHNCwepexiwoHdF2fhCrFL81g CE2ogiaj7xqyEcHYHNU8r2TuTFAROxnjV8vvEEkVL9Ip1Zy621pLPSkfu Eltm1ynCxEliZna3nloVvUP8cwUUCIMBHoBJb4ifKnz6jkWXIq/NTFoCr 22wHicRwUQad96Zmtt5c8mVKgrBZcpFj+3fvFoOYjOW9m0WeS46kHdUrl Q==; X-CSE-ConnectionGUID: tv+s5JGHQneRdYCe0A9UhQ== X-CSE-MsgGUID: GvNbzYc3S46yRCGDtg2g+A== X-IronPort-AV: E=McAfee;i="6800,10657,11566"; a="65167442" X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="65167442" X-CSE-ConnectionGUID: CdLddlw4SJaxES6pJdIpgA== X-CSE-MsgGUID: X8ml7fg4QmKMt7yblE/5qg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="177810818" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, steven.sistare@oracle.com, Zhenzhong Duan , Markus Armbruster Subject: [PATCH v2 5/6] accel/kvm: Fix an erroneous check on coalesced_mmio_ring Date: Sun, 28 Sep 2025 04:54:31 -0400 Message-ID: <20250928085432.40107-6-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250928085432.40107-1-zhenzhong.duan@intel.com> References: <20250928085432.40107-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=192.198.163.12; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -47 X-Spam_score: -4.8 X-Spam_bar: ---- X-Spam_report: (-4.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.442, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @intel.com) X-ZM-MESSAGEID: 1759049888855116600 Content-Type: text/plain; charset="utf-8" According to KVM uAPI, coalesced mmio page is KVM_COALESCED_MMIO_PAGE_OFFSET offset from kvm_run pages. For x86 it's 2 pages offset, for arm it's 1 page offset currently. We shouldn't presume it's hardcoded 1 page or else coalesced_mmio_ring will not be cleared in do_kvm_destroy_vcpu() in x86. Fixes: 7ed0919119b0 ("migration: close kvm after cpr") Cc: Markus Armbruster Signed-off-by: Zhenzhong Duan --- accel/kvm/kvm-all.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 9060599cd7..23fd491441 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -523,7 +523,8 @@ static int do_kvm_destroy_vcpu(CPUState *cpu) } =20 /* If I am the CPU that created coalesced_mmio_ring, then discard it */ - if (s->coalesced_mmio_ring =3D=3D (void *)cpu->kvm_run + PAGE_SIZE) { + if (s->coalesced_mmio_ring =3D=3D + (void *)cpu->kvm_run + s->coalesced_mmio * PAGE_SIZE) { s->coalesced_mmio_ring =3D NULL; } =20 --=20 2.47.1 From nobody Sun Sep 28 14:52:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1759049856; cv=none; d=zohomail.com; s=zohoarc; b=kY7DCg/MLfslxbBFFKLztA/NQKnJT7EAXpslHtzPYwoJOs+eGlSzZmlA4OAgbINiEpUTYUAtpYzky+7dFSFE2Li+/U65L0y2TK03yeJ6TXJiPIldh4VbHMQ9v5DoMoWx02zNXWv8ozY2baIiAQfjmtviVtpa42armhsO9PD1rTI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759049856; 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=95L43Biap+ZMJ1mQGIMpfUZB5tlHi8COoJYlDkGuwwE=; b=XF6mBr6fvUXOpghFRLl2f3eXa1ksWJTpFbio3nchyHJnkkfatKKw57ujbQeJe6UjlNN0li2J1qyYb6xVEDxX8YmlAo1/4fVLflsJc++cQwsI6EY921u969Di1ifiBUGF3JJTI6d9wvlCtFacwqAqH81neIKSB5la6VGSJxzNGmo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759049856221557.2659358998407; Sun, 28 Sep 2025 01:57:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2nCH-0006VF-WC; Sun, 28 Sep 2025 04:55:59 -0400 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 1v2nCF-0006UO-4C for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:55 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2nC8-00044H-Lw for qemu-devel@nongnu.org; Sun, 28 Sep 2025 04:55:54 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:28 -0700 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2025 01:55:26 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759049749; x=1790585749; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=kPLupQPAUBUcNZDsIGDQVNkPtYijna1nTxTrWEhgc4I=; b=mX4TshKd3GFuU01vdwwvGRDTy+NyqBXvfKLeg6F3P20kNYplQDKs2D7e pflVGcnMNMR/daHwOL/KwG9kUAqVz9BnpVq7Yq7GSy3TLB3qe8J6n1709 c0pUvxIREgQgepEsFGdenlQM+KVDpH4y+M9E7aBNfTu/Meums8pHt9fba RNM4GupWJgrunw0zGw6dkB2jpF35YLzcpmAW+8VWfb6/6JSZ0SBBvHdbx L/iv1FoCsXOzmXfF54m7x90CQWQcQhqUJDTbv1rpbF5jwI6tkUm+v9lp/ Dw0BdGfSqld9TjlhOqYjkCjzVZzWV2Ew1t641MvFBmiVVC3DEAzqwvxp1 g==; X-CSE-ConnectionGUID: 5IXCqz8JRJChPZHJbjrgaQ== X-CSE-MsgGUID: uNC98ggHQeapacoNgGd3VQ== X-IronPort-AV: E=McAfee;i="6800,10657,11566"; a="65167447" X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="65167447" X-CSE-ConnectionGUID: Pw3ed5hcTn+pDadMFJaZNg== X-CSE-MsgGUID: bXU8akrsSMKkdwdkaEJEGA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,299,1751266800"; d="scan'208";a="177810823" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, eric.auger@redhat.com, steven.sistare@oracle.com, Zhenzhong Duan , Markus Armbruster Subject: [PATCH v2 6/6] accel/kvm: Fix SIGSEGV when execute "query-balloon" after CPR transfer Date: Sun, 28 Sep 2025 04:54:32 -0400 Message-ID: <20250928085432.40107-7-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250928085432.40107-1-zhenzhong.duan@intel.com> References: <20250928085432.40107-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=192.198.163.12; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -47 X-Spam_score: -4.8 X-Spam_bar: ---- X-Spam_report: (-4.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.442, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @intel.com) X-ZM-MESSAGEID: 1759049856539116600 Content-Type: text/plain; charset="utf-8" After CPR transfer, source QEMU closes kvm fd and sets kvm_state to NULL, "query-balloon" will check kvm_state->sync_mmu and trigger NULL pointer reference. We don't need to NULL kvm_state as all states in kvm_state aren't released actually. Just closing kvm fd is enough so we could still query states through "query_*" qmp command. Opportunistically drop an unnecessary check in kvm_close(). Fixes: 7ed0919119b0 ("migration: close kvm after cpr") Suggested-by: Markus Armbruster Signed-off-by: Zhenzhong Duan --- accel/kvm/kvm-all.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 23fd491441..b4c717290d 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -639,13 +639,10 @@ void kvm_close(void) cpu->kvm_vcpu_stats_fd =3D -1; } =20 - if (kvm_state && kvm_state->fd !=3D -1) { - close(kvm_state->vmfd); - kvm_state->vmfd =3D -1; - close(kvm_state->fd); - kvm_state->fd =3D -1; - } - kvm_state =3D NULL; + close(kvm_state->vmfd); + kvm_state->vmfd =3D -1; + close(kvm_state->fd); + kvm_state->fd =3D -1; } =20 /* --=20 2.47.1