From nobody Fri Nov 14 18:02:26 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=1760689504; cv=none; d=zohomail.com; s=zohoarc; b=iOF0v93B+HPreuuEeUGz0zxacAUp/0a8dYrN8RB3wwPY7GryjjP7Gha+tY5TAJYWt4tWussJgu0sM4Fefirn9bBaiM0Il9aH0UCPe1O2lRlBRUjzWm+Rldtrq43Jh775SqGQMiLbH6AS3HvNAkQqpghmTQxL0/hnGFyJ6IlIkaU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760689504; 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=bQTY/R578nDzHbr+b2SynEIY2JBi6I0CFD3ETFUPCsg=; b=aJ2W+G59nOBcVc1D9OUGYIudvnLDZ+V/FApUKMow6+Ub953TQLC6adeaqpfTp/ThuVrTlPi90myvkCFcI4BaLV6p1IotLYNGi/+KYOEvnVfsQy45YvD4R+VwzFnA/cf5vCFhz4VmyLXMh/l/OGzcum1C/DtkjcrXvGxqj0DBK3o= 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 176068950455088.54304613094689; Fri, 17 Oct 2025 01:25:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9fkA-00016K-AU; Fri, 17 Oct 2025 04:23:22 -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 1v9fk0-00012P-DQ for qemu-devel@nongnu.org; Fri, 17 Oct 2025 04:23:13 -0400 Received: from mgamail.intel.com ([192.198.163.19]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9fjp-0001D4-Rj for qemu-devel@nongnu.org; Fri, 17 Oct 2025 04:23:10 -0400 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Oct 2025 01:22:52 -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; 17 Oct 2025 01:22:49 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1760689382; x=1792225382; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NBblPV8qhfIQ8dLU33306XjgXORx0k+B5vU5yzS/DOQ=; b=Yi2YtWS0lwkxQ+m++l3lssDjHHvoh4OhFNlfeMiFIuQAuuliXfBIqMV2 pMt1LFEFHkIbldBYaEmsUBzJxsva6BWg5U4asDejvM7VUsxS+hBWvY+ww +TmVTnsCAeIecORj66jf40lHS2kuNel+R+uKodimX+KMrsrmBdkYhoezn /+nfj0M/0/DFh1m8uqZ7w8zGN8cZYwcPk2DXKCNMidrBxo84J/IW6AMDD fg6l3EsQRDKqWiLDJmImeEXDbGHxrXWRaPIqnXLyfS/+VDJ7CJOVWQBRC 2cxlkdSMiuruT2HjHcfWNRgw3eCDcnqrfTFa4szHEKsyQpCspBbsiXTTr A==; X-CSE-ConnectionGUID: H7ygdN/VTNaW6d/7JdnQ8Q== X-CSE-MsgGUID: HMaeP5JCS8S2t2HiIF1Tyg== X-IronPort-AV: E=McAfee;i="6800,10657,11584"; a="61927396" X-IronPort-AV: E=Sophos;i="6.19,234,1754982000"; d="scan'208";a="61927396" X-CSE-ConnectionGUID: efCdwgt2RmS5kHnd495NCA== X-CSE-MsgGUID: a+GNPBusSL2Gy5ZkS5P5IA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,234,1754982000"; d="scan'208";a="182484681" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com, clg@redhat.com, mst@redhat.com, jasowang@redhat.com, yi.l.liu@intel.com, clement.mathieu--drif@eviden.com, eric.auger@redhat.com, joao.m.martins@oracle.com, avihaih@nvidia.com, xudong.hao@intel.com, giovanni.cabiddu@intel.com, mark.gross@intel.com, arjan.van.de.ven@intel.com, Zhenzhong Duan Subject: [PATCH v2 2/8] vfio/iommufd: Query dirty bitmap before DMA unmap Date: Fri, 17 Oct 2025 04:22:27 -0400 Message-ID: <20251017082234.517827-3-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20251017082234.517827-1-zhenzhong.duan@intel.com> References: <20251017082234.517827-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.19; 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, DKIMWL_WL_HIGH=-0.001, 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_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, T_SPF_HELO_TEMPERROR=0.01, 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: 1760689511858158500 Content-Type: text/plain; charset="utf-8" When a existing mapping is unmapped, there could already be dirty bits which need to be recorded before unmap. If query dirty bitmap fails, we still need to do unmapping or else there is stale mapping and it's risky to guest. Co-developed-by: Joao Martins Signed-off-by: Joao Martins Signed-off-by: Zhenzhong Duan Tested-by: Xudong Hao Tested-by: Giovannio Cabiddu Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Yi Liu --- hw/vfio/iommufd.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 976c0a8814..404e6249ca 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -74,7 +74,13 @@ static int iommufd_cdev_unmap(const VFIOContainer *bcont= ainer, if (iotlb && vfio_container_dirty_tracking_is_started(bcontainer)) { if (!vfio_container_devices_dirty_tracking_is_supported(bcontainer= ) && bcontainer->dirty_pages_supported) { - /* TODO: query dirty bitmap before DMA unmap */ + ret =3D vfio_container_query_dirty_bitmap(bcontainer, iova, si= ze, + iotlb->translated_addr, + &local_err); + if (ret) { + error_report_err(local_err); + } + /* Unmap stale mapping even if query dirty bitmap fails */ return iommufd_backend_unmap_dma(be, ioas_id, iova, size); } =20 --=20 2.47.1