From patchwork Tue Aug 22 08:45:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 13360375 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7BC30EE49A3 for ; Tue, 22 Aug 2023 08:47:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2tvjOOPLmhUEOZX9MKPhRnk/B0NtiUqwFyRYE3LKPxU=; b=XqtVSGKUOnfpEC YGlqGNQu+GZg0tTIwdOwSGpIq6oWpZkTGjFCeLwuStT/HZ2Kg+o9FYmsDrEvfIbUZWYmsGiDy0at/ 0z/p+eKa3fy5lKZIxEy2ciwDQhKyLPtqS2VATc1TP25G8nqRDOU7hY++9mfrFPGkdjKtQWD7KgWLe zyAvs1BwEYlbMuUH2eKBgl7NgXcW4b/HXgQO2tgIfcbbWY18lppsreT9C9SGi2bDR0lOweFOZ8uUR CnHn39zM1hbJ7iuzam/HlicGlLY/0IGM+5vm73M7+nZLk5sf59NM2+cUfVJh9kc0zYQn4pmQdoSqg Ak3KX90LWS8zPieS1Y+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qYN2B-00FUr8-0B; Tue, 22 Aug 2023 08:46:43 +0000 Received: from mail-bn1nam02on20628.outbound.protection.outlook.com ([2a01:111:f400:7eb2::628] helo=NAM02-BN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qYN1l-00FUVo-2B for linux-arm-kernel@lists.infradead.org; Tue, 22 Aug 2023 08:46:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hhkaQbGrIy+TcObRyBYaqGbMKPsL2/bCpwvq/BEYi46RxGX+tBvwJ3S4zDhOqced1q0mqnDYaTgy0qi2r9itUXjmHcd+jnjwmC4qUHB6f2IpdTaSbnjOMcYWsxKKoUe3Xe6g33bqbUVL103KSBdjAvZRg08iKJ/CPFAgj4KEF0M1ZlhSEmsr0BInCF1iPO8y3o8rhSk8MdF3QKTR9lpl7XC6zOlpzvEQPD2Xz4RIefsYntlpVTqbFvs2dV/WOyYCPJI8QBq+Q+kbYTfFAicOxhojI4wqehvC/AyHkp27/v1fEhXoTfflSe73qEfcbA52HvGX27QrM9ad4IfWPMNPfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eamSOcKZWUG1lnF2mDtgEkgGCJKL1dPNlHgiCcR/NNE=; b=ccVgA5+XCyYbKfjxmMN3RiY3EjD7bCnI4YkfNt0FDG2hCXhbv5G6BbEjsmGgCATd1NrwDEx7BLGpH70eMom3g/G5iTJW6cuCVTD+r5AJPC2Yg5EW3u2nlioh+FIJ0XB9GQCwHzLr0EzjZQu0JaBoSxSIGVT2jj3SYV3CoRAlY+lb61wNm69SZFideDZEVW5eyGmIZlsEfhtFJxdmnv3GeW5zmhJEy4LluL9zZCYGzFdFFITZdtoHhnFBix24izAMkq4q9HjE4SsMwXPTb6itGM0Eq59Sdxy8zhhKjBJXzLu3Tb4AOmoiSWC4EmhvUIw1dn2+VZbTnVJmTg7xrBEq0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eamSOcKZWUG1lnF2mDtgEkgGCJKL1dPNlHgiCcR/NNE=; b=aiVbH6cy/iXzu6n5GGs6yIrL6nMDzdiJm0NGvaREIVdK69gqVtOwx28shbe+9niZc3aaXd1sNWbgAE4ulkrqHE4Mx7cVvoznfjRLJEc3vcaOCU2XGNLr7CsfFG30HLUUGLhUdGUaVVYfYPOs4mpH1yza3A6A/ONOcw5XbaoAX3Gwvr3afo4ARjFYsHZQsQemuTHkb0jR9yMwBg48bYtUiRhxD+EYGVcm2h8KRGHFN605I/kT+GwAG6gNHLsP/jrKqRhvqymBj7w4aAxBkkITCqUz7BztD/R7E/BA8xJf7MX5JKqvJ2Rxpos8kv4qB1gDIy68/ioKKFWBiailxgwUaA== Received: from MW4PR03CA0050.namprd03.prod.outlook.com (2603:10b6:303:8e::25) by IA0PR12MB7580.namprd12.prod.outlook.com (2603:10b6:208:43b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.20; Tue, 22 Aug 2023 08:46:12 +0000 Received: from MWH0EPF000989EB.namprd02.prod.outlook.com (2603:10b6:303:8e:cafe::af) by MW4PR03CA0050.outlook.office365.com (2603:10b6:303:8e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.25 via Frontend Transport; Tue, 22 Aug 2023 08:46:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by MWH0EPF000989EB.mail.protection.outlook.com (10.167.241.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.15 via Frontend Transport; Tue, 22 Aug 2023 08:46:11 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Tue, 22 Aug 2023 01:46:04 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Tue, 22 Aug 2023 01:46:04 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.986.37 via Frontend Transport; Tue, 22 Aug 2023 01:46:03 -0700 From: Nicolin Chen To: , , CC: , , , , , Subject: [PATCH 1/3] iommu/io-pgtable-arm: Add nents_per_pgtable in struct io_pgtable_cfg Date: Tue, 22 Aug 2023 01:45:51 -0700 Message-ID: <0fe68babdb3a07adf024ed471fead4e3eb7e703f.1692693557.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EB:EE_|IA0PR12MB7580:EE_ X-MS-Office365-Filtering-Correlation-Id: 0300ed99-22d9-4fc0-1de5-08dba2ec3cb3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lUKZtFODv4Jg3BTa60wuS1zggqlPXMonFpgPhEgBSKfZQmZF63Tvuk6jvrnXbyxBh+jYvMtxK0KkyTX4HuqqAfnUnIjapTC5eXb7/QJ/87IOA44JJixFZjZDTijixdAcx0w3xGkoQO9v8gY+GfkjO8802VY4KfKIoAoKoO9CF4bh6lymoBU/YKECX1AQcuZRZINCeHYDfP/YHaCSeOzBywh3B2NRRrLxBlf1la9ggZ9ZIzO6AI7Ot+OonsRPLG1peDN05mSaRcEe8cV/coBAsMybUnMnlI7usP8nF5t0AuxlzeiMNDo713Gkbb4Q2Y4DgA4iYZ3L+/Y+6m9E1/tFqCE91zqwMREeWcqdztwMSHzEP3Ox0o0Kvbb8itQjr0zINyZkVmjSEhR/HurioFZi+785Rv1eJpnmDO3XpKmT8WNxl5ODasY8wzzmogEhxOVIu4EpSz3UPQ742YIdtr+mNnrIRZrjh6qw/q/J5dXmFVWtgPcMUvBPU0Qi2bA70FhgyOZ5vZB9cEkoyQ/lcq2ScLYouaRRrQP55CN8eMkmhjRGMepXi/AFSOD0yt6CUQs14VoIosZD59P0nrVQyPZVm3MdhWpmiGn/VljI2Cukj6BTSBF6xEv+G0pJ7VMxSqVsvmYdx04IW2sbRxDCXqk8BUC/BzI8kHDysHDxY6rnCDnFvBIXUPfSjqPFCm8gL9QzDcqfNSJRM3ku4dgEK3j5aZ02e7a2MXbHp4LmRi9DVTsR1tTBIzObVKDWVHpFtC6T X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(39860400002)(346002)(376002)(1800799009)(186009)(451199024)(82310400011)(46966006)(36840700001)(40470700004)(54906003)(6636002)(70206006)(70586007)(316002)(110136005)(8676002)(8936002)(2616005)(4326008)(7636003)(40460700003)(36756003)(41300700001)(82740400003)(356005)(478600001)(6666004)(40480700001)(2906002)(86362001)(7696005)(47076005)(36860700001)(336012)(426003)(5660300002)(26005);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2023 08:46:11.6472 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0300ed99-22d9-4fc0-1de5-08dba2ec3cb3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EB.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7580 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230822_014617_747402_4E20B7F8 X-CRM114-Status: GOOD ( 13.11 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add a new nents_per_pgtable in struct io_pgtable_cfg to store the number of entries per IO pagetable, so it can be passed back to an IOMMU driver. It will be used by one of the following changes to set the maximum number of TLBI operations in the arm-smmu-v3 driver. Signed-off-by: Nicolin Chen --- drivers/iommu/io-pgtable-arm.c | 3 +++ include/linux/io-pgtable.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c index 72dcdd468cf3..7583d9ecca2b 100644 --- a/drivers/iommu/io-pgtable-arm.c +++ b/drivers/iommu/io-pgtable-arm.c @@ -891,6 +891,7 @@ arm_64_lpae_alloc_pgtable_s1(struct io_pgtable_cfg *cfg, void *cookie) /* TTBR */ cfg->arm_lpae_s1_cfg.ttbr = virt_to_phys(data->pgd); + cfg->nents_per_pgtable = 1 << data->bits_per_level; return &data->iop; out_free_data: @@ -993,6 +994,7 @@ arm_64_lpae_alloc_pgtable_s2(struct io_pgtable_cfg *cfg, void *cookie) /* VTTBR */ cfg->arm_lpae_s2_cfg.vttbr = virt_to_phys(data->pgd); + cfg->nents_per_pgtable = 1 << data->bits_per_level; return &data->iop; out_free_data: @@ -1071,6 +1073,7 @@ arm_mali_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg, void *cookie) ARM_MALI_LPAE_TTBR_ADRMODE_TABLE; if (cfg->coherent_walk) cfg->arm_mali_lpae_cfg.transtab |= ARM_MALI_LPAE_TTBR_SHARE_OUTER; + cfg->nents_per_pgtable = 1 << data->bits_per_level; return &data->iop; diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h index 1b7a44b35616..4b55a327abc1 100644 --- a/include/linux/io-pgtable.h +++ b/include/linux/io-pgtable.h @@ -55,6 +55,7 @@ struct iommu_flush_ops { * tables. * @ias: Input address (iova) size, in bits. * @oas: Output address (paddr) size, in bits. + * @nents_per_pgtable: Number of entries per page table. * @coherent_walk A flag to indicate whether or not page table walks made * by the IOMMU are coherent with the CPU caches. * @tlb: TLB management callbacks for this set of tables. @@ -96,6 +97,7 @@ struct io_pgtable_cfg { unsigned long pgsize_bitmap; unsigned int ias; unsigned int oas; + unsigned int nents_per_pgtable; bool coherent_walk; const struct iommu_flush_ops *tlb; struct device *iommu_dev;