From patchwork Tue Feb 27 02:14:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolu Lu X-Patchwork-Id: 207056 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp2494593dyb; Mon, 26 Feb 2024 20:58:33 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXbsVNsoce8qF249Ugzf22GX+/TdYbRKdBXjdm7GxCgwWdmvosfzDLF4bIAkL9/TnhZPqLRxqmujmvKALBhfI8BONcj+A== X-Google-Smtp-Source: AGHT+IFeonAxUAcUDUBq4JDSi8gSRZuqnOLfdt4GIRSRTWdtUi4I1ldQXkRA9E/Pm5HrrTn+eqEE X-Received: by 2002:a17:902:9a4c:b0:1db:fa84:9be3 with SMTP id x12-20020a1709029a4c00b001dbfa849be3mr10188647plv.8.1709009913082; Mon, 26 Feb 2024 20:58:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709009913; cv=pass; d=google.com; s=arc-20160816; b=dOIvVwWZdw5DKUmNsOZfwFQyZNrHChovzyvrXPRrHWcl74AzeUj2/IPRrlUj/g7slF 5oM3URohI1KwUv7Hb8WDS+hl4EheToDgX4xzuy+hnpwSWp3YugRaQhHv5vv2oEe3Y+Q3 sNZRCawFf/50DevJv53B7PfzuKKFgEziGwvvArrzDpH+IvDruZ2keX7nthtfX9CLrPr9 XmQWv2yGpJvS6YEOqdvegKkwK6G1eAj8zwg+mUmIXD9cp3JR3dD/PqxarTS1gQwsuRq7 VMZanTUgamQnzlOciOu3wcozIitsi4wThIajeYA4ZLX021rWolvcWcjQ6B/T99swXAyz x3tQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=Gy+7hzsknlllk52Bl37MCJ8ftZfM9MfGwoKAsbJUbnY=; fh=+24AZIOwsB6rN2R5rZXfKkfQNZggrrSJ6wNtGopki7U=; b=iSFFAwC3vju5TPjNpVVlkXtZnU8zHLvdyWmRBw9Qc6zTbUUEyUXvr0Hr7bm7UkZ1QA uLJvztlg/9XOBobwkWSmAzhxpGNBjOr728S9MtDPx2iKmVEp26V4O1vhDYyhlJUUwXXh SyyEqvf8g/Qk4+41p1pcfrkMG4f3axYSbe0viuSR7FOaKHdPhjlAkaprJyoaaRcl789b LMdFaeWnrINHNHwWBc2UckGSsDQl99p0a+EsS7Bb3lJefV4QPsqqC+DIfc+6WWWyUfoq zLMhjW0D4RSXfBAtQtQ5gDIPeVqa03+lMqvBEFHVw23zSP7QhnfiAKk+Gnde3UMD1hS8 /hiQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=XX4VC1MW; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-82588-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82588-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id c21-20020a170902c1d500b001dc75ea0f75si716161plc.629.2024.02.26.20.58.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 20:58:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-82588-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=XX4VC1MW; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-82588-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82588-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id DE184B234BB for ; Tue, 27 Feb 2024 02:20:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A37F71BF2A; Tue, 27 Feb 2024 02:20:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="XX4VC1MW" Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1986DF4F1 for ; Tue, 27 Feb 2024 02:20:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.13 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709000440; cv=none; b=lOm26SU6pNTicZDWkpjIFge8iD5E7lQvlRaCRODIn7pXFY4WWNe5oAP5K6/jmrCd/N+95i0Lj0DbUZUjiLbtg/9w5oofbEn3TlcqIIO9O7f2z9ZHkdEcHtrdw1+VPghG8yqv6XnIeRS41ksW5I9I+9pJW1PWyLR+tjVCmTg5+oQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709000440; c=relaxed/simple; bh=G7j1AH+ahgRmCXuydMxeNo0vzEppNXG7fJWakgLIOWc=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=SUe2UZpgK3A3Uug6tC8SuQyF4arlDkpAP2+3LP8C/QaS5Hq0Ke8Z0n4CUHPcCzV4tbtx0TT/dUWM0m1p9UAfoXScinU5j51JttiW/p7KqFNSAI7bxs2gy1SaheuBW6CWqbB23lq+jsOP0tWrmK5dsiB8ipDwKRt1Q6rORiwV2OQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=XX4VC1MW; arc=none smtp.client-ip=192.198.163.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709000439; x=1740536439; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=G7j1AH+ahgRmCXuydMxeNo0vzEppNXG7fJWakgLIOWc=; b=XX4VC1MWbqZ1b3wgGwPwXWJXDXe6zJ9zXBWZkSYvYg4ruA1wYFk9N+v9 e/h3tYLzCSVwrUINeGvj+7By1rufuUlZ56TseCLPzBdgQ0RhtgpRdDibZ Y13NaNCoDXsLg/QTTbfrard9PzrL5MdOMIf0AilJV3psxKF12bH9pho+D 5cbMxWONStG78htPMlesJKGe8XVDC2oJyQBaBxNvBFSiD5dHxR8vFmN1h 9hUMFCHE2MHe1n6FxTNHQiPbLpahMoSd2Bo9NpUxpHwIq2BWpIIAHmHTm ui3g0ZfGR60GDSdDWQMfdmQUcqd0sIf12yQzn/SVz3BocE+QwEvxPh2GK Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10996"; a="6273088" X-IronPort-AV: E=Sophos;i="6.06,187,1705392000"; d="scan'208";a="6273088" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2024 18:20:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,187,1705392000"; d="scan'208";a="7418277" Received: from allen-box.sh.intel.com ([10.239.159.127]) by orviesa008.jf.intel.com with ESMTP; 26 Feb 2024 18:20:36 -0800 From: Lu Baolu To: Joerg Roedel Cc: Tina Zhang , Erick Archer , Jingqi Liu , iommu@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 0/8] [PULL REQUEST] Intel IOMMU updates for Linux v6.9 Date: Tue, 27 Feb 2024 10:14:33 +0800 Message-Id: <20240227021441.50434-1-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792026778873305601 X-GMAIL-MSGID: 1792026778873305601 Hi Joerg, The following changes have been queued for v6.9: - Add rbtree to track iommu probed devices - Add Intel IOMMU debugfs document - Cleanup and refactoring All patches are based on v6.8-rc6. The series is also available at: https://github.com/LuBaolu/intel-iommu/commits/vtd-update-for-v6.9 Unfortunately, there is a merge conflict with your next branch, in drivers/iommu/intel/svm.c. I resolved this conflict as below. +++ b/drivers/iommu/intel/svm.c @@@ -698,14 -693,20 +688,18 @@@ bad_req * If prq is to be handled outside iommu driver via receiver of * the fault notifiers, we skip the page response here. */ - if (!pdev) + mutex_lock(&iommu->iopf_lock); + dev = device_rbtree_find(iommu, req->rid); + if (!dev) { + mutex_unlock(&iommu->iopf_lock); goto bad_req; + } - intel_svm_prq_report(iommu, &pdev->dev, req); - trace_prq_report(iommu, &pdev->dev, req->qw_0, req->qw_1, - if (intel_svm_prq_report(iommu, dev, req)) - handle_bad_prq_event(iommu, req, QI_RESP_INVALID); - else - trace_prq_report(iommu, dev, req->qw_0, req->qw_1, - req->priv_data[0], req->priv_data[1], - iommu->prq_seq_number++); ++ intel_svm_prq_report(iommu, dev, req); ++ trace_prq_report(iommu, dev, req->qw_0, req->qw_1, + req->priv_data[0], req->priv_data[1], + iommu->prq_seq_number++); - pci_dev_put(pdev); + mutex_unlock(&iommu->iopf_lock); prq_advance: head = (head + sizeof(*req)) & PRQ_RING_MASK; } @@@ -781,17 -794,10 +775,8 @@@ void intel_svm_page_response(struct dev qi_submit_sync(iommu, &desc, 1, 0); } -out: - return ret; } - static int intel_svm_set_dev_pasid(struct iommu_domain *domain, - struct device *dev, ioasid_t pasid) - { - struct device_domain_info *info = dev_iommu_priv_get(dev); - struct intel_iommu *iommu = info->iommu; - - return intel_svm_bind_mm(iommu, dev, domain, pasid); - } - static void intel_svm_domain_free(struct iommu_domain *domain) { kfree(to_dmar_domain(domain)); With above in mind, please consider them for v6.9. Best regards, Baolu Erick Archer (1): iommu/vt-d: Use kcalloc() instead of kzalloc() Jingqi Liu (1): iommu/vt-d: Add the document for Intel IOMMU debugfs Lu Baolu (3): iommu/vt-d: Remove INTEL_IOMMU_BROKEN_GFX_WA iommu/vt-d: Use rbtree to track iommu probed devices iommu/vt-d: Use device rbtree in iopf reporting path Tina Zhang (3): iommu/vt-d: Remove treatment for revoking PASIDs with pending page faults iommu/vt-d: Remove initialization for dynamically heap-allocated rcu_head iommu/vt-d: Merge intel_svm_bind_mm() into its caller drivers/iommu/intel/iommu.h | 10 + drivers/iommu/intel/dmar.c | 4 +- drivers/iommu/intel/iommu.c | 95 +++++- drivers/iommu/intel/perf.c | 2 +- drivers/iommu/intel/svm.c | 39 +-- Documentation/ABI/testing/debugfs-intel-iommu | 276 ++++++++++++++++++ drivers/iommu/intel/Kconfig | 11 - 7 files changed, 391 insertions(+), 46 deletions(-) create mode 100644 Documentation/ABI/testing/debugfs-intel-iommu diff --cc drivers/iommu/intel/svm.c index b644d57da841,bdf3584ca0af..c1bed89b1026 --- a/drivers/iommu/intel/svm.c