Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5546625pxb; Mon, 14 Feb 2022 01:30:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJydNRgFIVpt3NIRgyMRKqmlHXmksKGQM+q4qVKbzhMzVB2zCuPsjNVCNtqQRl0qwQNsyzvd X-Received: by 2002:a05:6402:3509:: with SMTP id b9mr14260350edd.192.1644831009511; Mon, 14 Feb 2022 01:30:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644831009; cv=none; d=google.com; s=arc-20160816; b=C3s2C2Ft61V7jtWJgnhod8587RnqOtXv5aJoWVH9eTsJ0AqlNYzy4MmKpHizk6Ve2y nicek4/0SE6NXuYycu6ugQ3b3XDikYmiFurnZ70JQ4krkmP+cE5uNruv+CrPXyytoGLy 5Op6/ReModIpZb6euT9YBIzxyzmatI10w4jOlXmfR8RI5neQ+0GtNy7n89KVHeqv72ad lSntheT2O7LDbWXB4KiEfyX6RipeaPAdf6kv6sn8mg0PwnaV7wzyijdjdZLFLIVDUCCA xMSMCv/udLz8/YTJwCW/Tv6maN1UaOiuuwIi6Zh6VFcKW0yV6+AxVXq4hmjcHv7yfPI7 Z9Ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Fg3DZMs38RQHFwYqUFj+J9SfKU2FGErQJ5e3gCc6rgU=; b=ztkqHpzvfXv191bs4oVrSZlFY9p3qe4JmD8ohiRrybkFncsH/TB/h2BvyW/vkAiSGA RLRIumXcKwGV6W+Y1w5znPhz5L7ctXxujNxXh6bNCNCP1VhkC2OUG+XXI1SqJD3deljZ 3Bi+8CnPgwZk/TNokzjpV/+XJR60VFAnibGxl8QWuMDYw9xkc+cj4b6Jje1Wb6j7oPQH CtZWGTNohM651jLuzzCG5n67CnzQX4x2YMwMLQaIIQO5CklUqrd+CYqZSSoZwtnGY+iB /SoBZgnWQIqNAVCSxdZ5EBsEFzCuriZ06WACOKQIFuLbXWU6r86zLE3ieBy3w1SvKMik GO6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=EkpcODfj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i1si8393091edk.317.2022.02.14.01.29.46; Mon, 14 Feb 2022 01:30:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=EkpcODfj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237654AbiBNB5i (ORCPT + 99 others); Sun, 13 Feb 2022 20:57:38 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:59046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233422AbiBNB5h (ORCPT ); Sun, 13 Feb 2022 20:57:37 -0500 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46532532EA for ; Sun, 13 Feb 2022 17:57:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644803849; x=1676339849; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=/oHMo00IGwehh8uwpydos/dBPlyzaHycXSK02c7jDmA=; b=EkpcODfjdg6RTqRlD2PTe8zSqvZoQHljfx3fJj/tlT+RLh7KxP1n97pl XOUmwf87o+1xA77WY1XDOkr/qngDvH7GhMU1MEo8SInvxdt3HVF1HM+x/ 7AvM7KyDP1RmFhqofPg7Y5yPvBXH559vJ0GpYSCn87R2tsugSQQqcXN90 S+P47DQN+OATdctBGScJEU6lU5GfCl5uP7tvdIMkobA1n1NR84YwJXF6v QexZA3D/7oQ+XneZ3kyj0/8JVC0x2XgIusQnyCIkpBN6onWkS9kWrXfd9 kqm0w5Lxi33EsmYRSImWUPA9LDmalEWlgzKYLIZrH8eUAHDfCyLWwxlp1 w==; X-IronPort-AV: E=McAfee;i="6200,9189,10257"; a="274557976" X-IronPort-AV: E=Sophos;i="5.88,366,1635231600"; d="scan'208";a="274557976" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2022 17:57:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,366,1635231600"; d="scan'208";a="680137069" Received: from allen-box.sh.intel.com ([10.239.159.118]) by fmsmga001.fm.intel.com with ESMTP; 13 Feb 2022 17:57:24 -0800 From: Lu Baolu To: Joerg Roedel , Jason Gunthorpe , Christoph Hellwig , Ben Skeggs , Kevin Tian , Ashok Raj , Will Deacon , Robin Murphy Cc: Alex Williamson , Eric Auger , Liu Yi L , Jacob jun Pan , David Airlie , Daniel Vetter , Thierry Reding , Jonathan Hunter , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Lu Baolu Subject: [PATCH v3 00/10] iommu cleanup and refactoring Date: Mon, 14 Feb 2022 09:55:28 +0800 Message-Id: <20220214015538.2828933-1-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, The guest pasid and aux-domain related code are dead code in current iommu subtree. As we have reached a consensus that all these features should be based on the new iommufd framework (which is under active development), the first part of this series removes and cleanups all the dead code. The second part of this series refactors the iommu_domain by moving all domain specific ops from iommu_ops to a new iommu_domain_ops. This makes iommu_domain self-contained and represent the abstraction of an I/O translation table in the IOMMU subsystem. With different type of iommu_domain providing different set of ops, it's easier to support more types of I/O translation tables. Please help to review and comment. Best regards, baolu Change log: v1: https://lore.kernel.org/linux-iommu/20220124071103.2097118-1-baolu.lu@linux.intel.com/ v2: - https://lore.kernel.org/linux-iommu/20220208012559.1121729-1-baolu.lu@linux.intel.com/ - Remove apply_resv_region callback. - Remove domain argument from is_attach_deferred callback. - Convert all feasible instances of dev->bus->iommu_ops to dev_iommu_ops(). - Add the default_domain_ops (default iommu_domain_ops) in iommu_ops to avoid big churn in dozens of iommu drivers. - We discussed removing pgsize_bitmap in struct iommu_ops and initialize the domain field in domain_alloc(). Considering that domain_alloc() is being refactored, let's wait until the new domain_alloc() comes. - Various code/description refinement. - This version of series is available on github: https://github.com/LuBaolu/intel-iommu/commits/iommu-domain-ops-v2 v3: - Remove ops check when dev_iommu_ops() is used. - This version of series is available on github: https://github.com/LuBaolu/intel-iommu/commits/iommu-domain-ops-v3 Lu Baolu (10): iommu/vt-d: Remove guest pasid related callbacks iommu: Remove guest pasid related interfaces and definitions iommu/vt-d: Remove aux-domain related callbacks iommu: Remove aux-domain related interfaces and iommu_ops iommu: Remove apply_resv_region drm/nouveau/device: Get right pgsize_bitmap of iommu_domain iommu: Use right way to retrieve iommu_ops iommu: Remove unused argument in is_attach_deferred iommu: Use dev_iommu_ops() helper iommu: Split struct iommu_ops include/linux/intel-iommu.h | 27 - include/linux/intel-svm.h | 12 - include/linux/iommu.h | 184 +++--- drivers/iommu/amd/amd_iommu.h | 3 +- drivers/iommu/intel/pasid.h | 4 - include/uapi/linux/iommu.h | 181 ------ .../drm/nouveau/nvkm/engine/device/tegra.c | 2 +- drivers/iommu/amd/iommu.c | 23 +- drivers/iommu/amd/iommu_v2.c | 2 +- drivers/iommu/apple-dart.c | 20 +- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 18 +- drivers/iommu/arm/arm-smmu/arm-smmu.c | 20 +- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 18 +- drivers/iommu/exynos-iommu.c | 14 +- drivers/iommu/fsl_pamu_domain.c | 10 +- drivers/iommu/intel/debugfs.c | 3 +- drivers/iommu/intel/iommu.c | 540 +----------------- drivers/iommu/intel/pasid.c | 161 ------ drivers/iommu/intel/svm.c | 209 ------- drivers/iommu/iommu.c | 339 ++--------- drivers/iommu/ipmmu-vmsa.c | 18 +- drivers/iommu/msm_iommu.c | 30 +- drivers/iommu/mtk_iommu.c | 20 +- drivers/iommu/mtk_iommu_v1.c | 14 +- drivers/iommu/omap-iommu.c | 14 +- drivers/iommu/rockchip-iommu.c | 14 +- drivers/iommu/s390-iommu.c | 14 +- drivers/iommu/sprd-iommu.c | 18 +- drivers/iommu/sun50i-iommu.c | 18 +- drivers/iommu/tegra-gart.c | 18 +- drivers/iommu/tegra-smmu.c | 14 +- drivers/iommu/virtio-iommu.c | 14 +- 32 files changed, 308 insertions(+), 1688 deletions(-) -- 2.25.1