From mboxrd@z Thu Jan 1 00:00:00 1970 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 60973C43458 for ; Thu, 9 Jul 2026 12:08:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To: Content-Type:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QgzaHHkVMrTeFc6N/HiFXKPEOgtv96vPn9AUoM+0Tjw=; b=ibL17NxQUham+sil1RXcnpaXh0 I+cqFdrfCDRkbegbH4sQlMQ2ESD354sNS7aFALXDlLOITuxdCASk3CMxvJ6ly36GxTVCQgq2u5cjZ NrBJc6TW01GzfmGwM6iSUaD2VvNVwI4ct6EXp2EKfMh3zD+gvBiNEN8pVB60I3gie4HXjdf1znJff ksa0KcgPSgaw5hDMH6PoLeu0Ih4rSGieZZRac/qW70aEpHYVbJT+75iiAVDHZM7PI1ezDgWvYYMv3 RQmjRqhwiibVHu2dNAfMH3EQGvPPV3QsmabdP5JJMyYe9nz3mjAzc2ycJTr3d1p4gaEpquA/nF8+F U8Ejgo/g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1whnXn-00000002JeJ-3z3O; Thu, 09 Jul 2026 12:07:55 +0000 Received: from mail-eastusazlp17011000f.outbound.protection.outlook.com ([2a01:111:f403:c100::f] helo=BL2PR02CU003.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1whnXl-00000002JdQ-1JvC for linux-arm-kernel@lists.infradead.org; Thu, 09 Jul 2026 12:07:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YwWNtAX/KCWiNToyPvueq2ScXcOv9rdwHfd9v8AO63KJ/H6ZqEGhXfR0LgdngiSnEGaISgjEp9LOlAgh5FLJiviTLjajdWeKrtQ709dQSgGtGFMuTlIynSYWkkT+WxJbVKdeHo3wX1ED9IavJhhRFmzelFM+Dx810xJySEX6UxASTMxgFoV7TvFTYyg/G+jzKLAVGegjXaSU+ZFtBfyQ0d9EOfxrYqsnO1CIndh+HfeGUqXhmZ0kjbThqljpp0IU9Ka8sGejZ7FxIEx8Tj6DNkTjNJwptj5sKAhttVQb9cao7l7mVPcCHhEOOM58UWLF1SnFDA7HpzXZFN67+OMOAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=QgzaHHkVMrTeFc6N/HiFXKPEOgtv96vPn9AUoM+0Tjw=; b=Z059xqMpgTDMsg/tmgwK3j5LdCdrYeQ/j69s56B/pN1LFUb4jht12H+OKQXqMIKFVIIwgeYfjlyv9wOTAoVugq8y8KasBn1rRc2IMTKZYigqxC05Eug/36IFA0KumHhYxdvfs+PIuVhW+C4UNlCCXbMlItk2i/uJ49kFQ9El0FwwhhPojK8Sza0hlTYPapVKUFBKszByL73Afs3m8i/TuecZR9s6KL0BHIxV4pvs1j5asTkgv1Wd8JraLrxTIJAZny0bJqubdnihtqXNrrPJqZn2Bf5U7inEMO2AotLYS79X8Doy0YqyFSNT4YtGPWYvUbifmw/EK77wh0cdqokXeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; 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=QgzaHHkVMrTeFc6N/HiFXKPEOgtv96vPn9AUoM+0Tjw=; b=uYQmZeTQysNZw+BsliFR7BGApiefCIFUSCaLzTB7C8Yuwz5DscbFgcXRzkmRoY5cwY0DGCUoAVv+tARtmdtiD+LUS0ECVlVEGpbbBY+ybsonJAUbElQ9OYQiAZBNxVFN9sycL9T3VHfGKmQp38at7tk7ZctCLsZsIHoGP0LERA6BttMNoyQmuOqdPaYVLjrOu4m/N12678iYBAWYuXZGS6kBtYkjDW5GPQSJ3Y9XxAmboAokhXrN4UH7C2UTeMu2hpV16ReqsUw3CwE+vOwpMgxwvZPRg5BqHTqgo5r3Vz4gQrJDNqL3VKRhlWCVU7fHMCo7nvRpiddWVNr7LsSWjA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) by DM6PR12MB4106.namprd12.prod.outlook.com (2603:10b6:5:221::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.16; Thu, 9 Jul 2026 12:07:46 +0000 Received: from LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::299d:f5e0:3550:1528]) by LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::299d:f5e0:3550:1528%4]) with mapi id 15.21.0181.014; Thu, 9 Jul 2026 12:07:45 +0000 Date: Thu, 9 Jul 2026 09:07:44 -0300 From: Jason Gunthorpe To: Nicolin Chen Cc: iommu@lists.linux.dev, "Joerg Roedel (AMD)" , Jean-Philippe Brucker , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , David Matlack , Pasha Tatashin , patches@lists.linux.dev, Pranjal Shrivastava , Samiullah Khawaja , Mostafa Saleh Subject: Re: [PATCH v2 5/8] iommu/arm-smmu-v3: Precompute the invalidation commands Message-ID: <20260709120744.GF422027@nvidia.com> References: <0-v2-43074a57a53a+fb95-smmu_tlbi_jgg@nvidia.com> <5-v2-43074a57a53a+fb95-smmu_tlbi_jgg@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: YT4PR01CA0392.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:108::8) To LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV8PR12MB9620:EE_|DM6PR12MB4106:EE_ X-MS-Office365-Filtering-Correlation-Id: e5ff6b9a-8702-4fd9-17aa-08deddb2afa4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|7416014|376014|18002099003|22082099003|4143699003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: rts3xrVjp/V77QnJ/gG5JsiCcH7vbEFYbF6a+xfrdwYfvMGLNrAHYoHbFTDqvcOHx5xTRDjhJi2d/7qEffqlNyldaXDcw1BK7twzcHdZFnSmOaaPEQZXxT4isRjq6Mvtq5WaF5IPPrcHBJsl+JLaNYDrk2w2vt4SmW1tMFqoGdiT3dDj7eF1lKTfA25oGr8rUNDR43KuGQI9w1fHEI/ZhjfueBwAkt9ZByDn9m4nzfLIDtStVu8yCiPNgVhxyuuY4XrJ6XsaIUSOQBu+9qLiBM5vqQR7auCVmZl/A9mpgqAi6vo8BwigOz2YwkQkPucNHOjfpidW3cZfnHcLR0aqJKziInBendnzbwIOu5HC+szOTtJ+cJ93YoPYffv4T92A/FCSQWeETQzHgXCE/mkG+Jc4bBhxIDwhFT9YIAOibrGdw2d2m0awGC87qzjSgxhdBLmFj15GlpULWGNKdFmSB84wqLo4dkd0SiFBFLR9cyb9ZuwjZgGjEQZYAgpQdk7LDUzM77YtTeRzekd8+jXap9qx9TMo5tl1L13H1Wa8J8+4brh+R9dd6AcFbY4VInM4sCJdzDdduYKp7vJFSWCjJuzXbv32btmqReJenJ8HMMRlG1DfeXFOiYNQzWxaPeFvw3jcGx+3WIE2YupiX0hfj2NF0ke8yp9jPtsNUhJERVU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR12MB9620.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(7416014)(376014)(18002099003)(22082099003)(4143699003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OGBmPYU0I8dPPyg4+XCfqzQ7EvphWosuR1RvHAibrZ+ka9esvUuG3okApVlE?= =?us-ascii?Q?uEOROZmexkO/C7vBh5lHELAylbZnJsxxGxmgSvE+3EBrL1PEaD6ZkiHyA+Uu?= =?us-ascii?Q?d492Sybb4KuD41xRXOU0M7WTr9XV/LQtZNEa+jrttBIkeQo6C2Uzk5lStwPe?= =?us-ascii?Q?606v4yHro7veJ71HBgbFjCj5UWIaVHvmZKQjjxktlnlnW/vYpg/eSofaH1uB?= =?us-ascii?Q?KUCbjy3O/8Aj5OBagEONAVmhx8Z4lXfDIdlRWOzGRiaEUpBE29NMl9aluHAQ?= =?us-ascii?Q?o+Si1HtloobPtPhZFB75GdLZ7fVitwWOAbmr5+jFV38lgcV+DrzEj5aQMX66?= =?us-ascii?Q?qnYymFORHrtrVDY4dV4glAE5sT4Qk9KUPEp0fiY+orQ7IcgpODt0mVmESL6S?= =?us-ascii?Q?1zDF/TJ/b6l/DXi979U57lDDnm3n0evHs0sDoaF+UxhizBaxVSnIqnueeBF7?= =?us-ascii?Q?ZMDubLGmNCyo8UrP9ZzZDdaZJDULa7EO2HMciwuwrXAU/obNh9iU/FH1PgT5?= =?us-ascii?Q?y6oNo9x5GAf2qUTaEjTJ3A0eewq2h7XbHrezUBabnQAMhF+FCJVoti1D+Bu1?= =?us-ascii?Q?a4UC2hVbjdC7+gv2DV326uinj6G6U0vWRVYV3hkmSXeahqgLB/QVQfpCsP3s?= =?us-ascii?Q?XQ2F+sqGHwAktaYZI6tOq/zoQnWUHQH12edGsxqIOVKaphqNvoKht2qFpKRI?= =?us-ascii?Q?fwZTORuFFQm+ROqBsh5XfSQx2M3DJiKvyTnscNFaKsbYLp3CCsn5yoEOPtgr?= =?us-ascii?Q?kBPaKWJKThKhHYCU+PNklQnRxo4M/JhGehm99tgK+Z0apRnZToYL+/MiZXtX?= =?us-ascii?Q?uDBUymsCkV/40LIvK3bPOMpqqHv0BdP4WF1aaGd9RSSPVceOhPaz5obhPXvx?= =?us-ascii?Q?wxRXB7+aJ7FmA5BOO95TFoEJq0mb3IgrTlYsJG+HbIaqIG1gO/BxhFT4CSaF?= =?us-ascii?Q?M7VxOv9duaO2BJhSWPG0EBpWnnCz+4Q0doTOk5Jm3I3BTuEUhB71bKCkIHM1?= =?us-ascii?Q?8gwYF2RDY3A49zgIrVsLEioRrhEBJ3eng71Iz9k8Yq3jM/EdoZ//vnsPcyeh?= =?us-ascii?Q?uCG97Mo79TCVn9YrzWS3ycUp9iO5dJ+IWsEvNYhQl4Yl8ap8Zi9IoBJX/076?= =?us-ascii?Q?X2THo7tS4w/p1cS42pSSiq7mpogBApzs23UpDhUt6obDEO1f5nHtwfRxOwmj?= =?us-ascii?Q?khcMj8kbsVDeQAOL9/yGDmFy5aquwO9n3cJYreLjSCrUY4LbYF5FOeYqt4ON?= =?us-ascii?Q?C8AkAkiszMTZAyjFPYHtSkWmoIjLlaxx3oPN/v1gC5aU2z52F3Wff0jfguJn?= =?us-ascii?Q?2hVC3ZPLWGGeQwGko1VQZCUHz2fn7PXTXC/y4ufzHDFcOgElhIKila5gUUIx?= =?us-ascii?Q?XYV1TMetGRePa4TlTQhIWqnMIqrvWNy9txLdgEGDC5P6G2rroW8dgU5nB9ns?= =?us-ascii?Q?uotrsKMc8RknkQTNFTr+LCUtZeBIivllET3v0U4WWoE2w4BZ4uoLxWBt7F0y?= =?us-ascii?Q?u3KdXhKQUWhzWXha3AV7mE5JaNARnAye84Csev3CaGnUaXPmR2X9ZFQfb84W?= =?us-ascii?Q?C+BtJSzOF5YTugCjpDmdHns0IyVxzgShsA90b8z53ktzkA9EFI+vwmoz5VpJ?= =?us-ascii?Q?hPML4aGtOR1vUXkrubCYfl9c6cViznDgqhN3RZp8dyknu/9/UqtmxpCU6znG?= =?us-ascii?Q?ZdRlqZttEmhfxhXV0GJ5aXEzA0Ce/Fdh3eL0SiPsX3oQGbpM?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5ff6b9a-8702-4fd9-17aa-08deddb2afa4 X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2026 12:07:45.7057 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +Klx6EyY+WrjJQQSJKvJ8oJSpeGGoMS6Ua889TQY/zP4njvCVhnRhs+va7V1G/d8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4106 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260709_050753_363852_26FAC743 X-CRM114-Status: GOOD ( 14.59 ) 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 On Tue, Jul 07, 2026 at 01:31:53PM -0700, Nicolin Chen wrote: > > + tlbi->range.data0 = > > + FIELD_PREP(CMDQ_TLBI_0_NUM, > > + DIV_ROUND_UP_ULL(num_tg, 1ULL << scale) - 1) | > > + FIELD_PREP(CMDQ_TLBI_0_SCALE, scale); > > + tlbi->range.data1 = FIELD_PREP(CMDQ_TLBI_1_LEAF, tlbi->leaf_only) | > > + FIELD_PREP(CMDQ_TLBI_1_TTL, ttl) | > > + FIELD_PREP(CMDQ_TLBI_1_TG, tg_enc) | > > + (cur_tg << tg_lg2); > > Could this be slightly cleaner: > > unsigned int num = 0, scale = 0; > ... > if (num_tg == 1) { > if (!ttl) > ttl = 3; > goto build; I'm not keen on gotos outside error unwind, but how about + tlbi->range.data1 = + FIELD_PREP(CMDQ_TLBI_1_LEAF, !tlbi->table_levels_bitmap) | + FIELD_PREP(CMDQ_TLBI_1_TG, tg_enc) | (cur_tg << tg_lg2); + /* * SMMUv3 H.a Section 4.4.1.1: TG!=0, NUM==0, SCALE==0, TTL==0 is * Reserved and causes CERROR_ILL. Single page uses NUM=0, SCALE=0 with @@ -2472,11 +2476,7 @@ static void arm_smmu_tlbi_calc_range(struct arm_smmu_tlbi *tlbi, if (WARN_ON(!ttl)) ttl = 3; tlbi->range.data0 = 0; - tlbi->range.data1 = FIELD_PREP(CMDQ_TLBI_1_LEAF, - !tlbi->table_levels_bitmap) | - FIELD_PREP(CMDQ_TLBI_1_TTL, ttl) | - FIELD_PREP(CMDQ_TLBI_1_TG, tg_enc) | - (cur_tg << tg_lg2); + tlbi->range.data1 |= FIELD_PREP(CMDQ_TLBI_1_TTL, ttl); return; } @@ -2513,11 +2513,7 @@ static void arm_smmu_tlbi_calc_range(struct arm_smmu_tlbi *tlbi, FIELD_PREP(CMDQ_TLBI_0_NUM, DIV_ROUND_UP_ULL(num_tg, 1ULL << scale) - 1) | FIELD_PREP(CMDQ_TLBI_0_SCALE, scale); - tlbi->range.data1 = - FIELD_PREP(CMDQ_TLBI_1_LEAF, !tlbi->table_levels_bitmap) | - FIELD_PREP(CMDQ_TLBI_1_TTL, ttl) | - FIELD_PREP(CMDQ_TLBI_1_TG, tg_enc) | - (cur_tg << tg_lg2); + tlbi->range.data1 |= FIELD_PREP(CMDQ_TLBI_1_TTL, ttl); } Which removes most of the duplication > > + if (invs->has_range_inv) { > > + if (!tlbi.range.use_full_inv) > > + arm_smmu_tlbi_calc_range(&tlbi); > > + } else { > > + tlbi.range.use_full_inv = true; > > I am a bit unsure about this line since invs has no RIL entry. > > Is it set for a defensive reason? Yes, it should never matter but since the has_range_inv and per-smmu tests are disjoint I included it defensively. I will replace it with a comment. Jason