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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 282AFC433F5 for ; Tue, 31 May 2022 20:40:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347840AbiEaUkf (ORCPT ); Tue, 31 May 2022 16:40:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347839AbiEaUk2 (ORCPT ); Tue, 31 May 2022 16:40:28 -0400 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11AB4DE8B; Tue, 31 May 2022 13:40:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654029619; x=1685565619; h=date:from:to:cc:subject:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xVNourZTR1Kt6OmuqtuVyyuHWlgFnrM3yUwYczvadfk=; b=NlOqj7F3y/QumbRlfvfPrKlgTbn18skdpOkC6pfc4XYVUc/R+g2QEIac gSLIePI74Tz5d8id/GiQFi3+eG1+OKEhX0MfVBy+IEyvaW2WW7WGG1Hid L5pf2pEUEtXDSBC9U02fN+P8vvzdl0tovDmLtMrhUcqzYCloNzYqe3NSZ MQVR9GHgrG6mmcgrdBZYjoWCtrnqRP+sbH43WPnwI8G7/00JdCwoiCHrY lUXSnAMB4i+HKFav2RLG8b91S+gU87SxxZZNJlvLuKEs+0YoIVrMtTFFg iETbEHNGHxtHN+TjIgsHC9aMdfEUOj31YsD8oDINt8DmRBEiRdXSvPBJB A==; X-IronPort-AV: E=McAfee;i="6400,9594,10364"; a="257449622" X-IronPort-AV: E=Sophos;i="5.91,266,1647327600"; d="scan'208";a="257449622" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2022 13:40:17 -0700 X-IronPort-AV: E=Sophos;i="5.91,266,1647327600"; d="scan'208";a="612003367" Received: from jacob-builder.jf.intel.com (HELO jacob-builder) ([10.7.198.157]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2022 13:40:17 -0700 Date: Tue, 31 May 2022 13:44:14 -0700 From: Jacob Pan To: Jason Gunthorpe Cc: Baolu Lu , "Tian, Kevin" , "iommu@lists.linux-foundation.org" , LKML , "dmaengine@vger.kernel.org" , Joerg Roedel , David Woodhouse , Jean-Philippe Brucker , Christoph Hellwig , "vkoul@kernel.org" , "robin.murphy@arm.com" , "will@kernel.org" , "Liu, Yi L" , "Jiang, Dave" , "Raj, Ashok" , Eric Auger , jacob.jun.pan@linux.intel.com Subject: Re: [PATCH v4 1/6] iommu: Add a per domain PASID for DMA API Message-ID: <20220531134414.37a62c88@jacob-builder> In-Reply-To: <20220531190550.GK1343366@nvidia.com> References: <20220518182120.1136715-1-jacob.jun.pan@linux.intel.com> <20220518182120.1136715-2-jacob.jun.pan@linux.intel.com> <20220524135034.GU1343366@nvidia.com> <20220524081727.19c2dd6d@jacob-builder> <20220530122247.GY1343366@nvidia.com> <628aa885-dd12-8bcd-bfc6-446345bf69ed@linux.intel.com> <20220531102955.6618b540@jacob-builder> <20220531190550.GK1343366@nvidia.com> Organization: OTC X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org Hi Jason, On Tue, 31 May 2022 16:05:50 -0300, Jason Gunthorpe wrote: > On Tue, May 31, 2022 at 10:29:55AM -0700, Jacob Pan wrote: > > > The reason why I store PASID at IOMMU domain is for IOTLB flush within > > the domain. Device driver is not aware of domain level IOTLB flush. We > > also have iova_cookie for each domain which essentially is for > > RIDPASID. > > You need to make the PASID stuff work generically. > > The domain needs to hold a list of all the places it needs to flush > and that list needs to be maintained during attach/detach. > > A single PASID on the domain is obviously never going to work > generically. > I agree, I did it this way really meant to be part of iommu_domain's iommu_dma_cookie, not meant to be global. But for the lack of common storage between identity domain and dma domain, I put it here as global. Then should we also extract RIDPASID to become part of the generic API? i.e. set pasid, flush IOTLB etc. Right? RIDPASID is not in group's pasid_array today. Thanks, Jacob