Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3686340ybb; Mon, 23 Mar 2020 05:56:26 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvr4ASvQsrvRjiOYCFiA1oNBjjmrxVjk7psKte01i1H5tsHaHX3bhmr0eRd69J+LYXOCvo4 X-Received: by 2002:aca:c596:: with SMTP id v144mr17161918oif.136.1584968186397; Mon, 23 Mar 2020 05:56:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584968186; cv=none; d=google.com; s=arc-20160816; b=eRcdv47FH0AcgHx+Z5AzTMbsHRxlnSfC30E2RFOpH/fVJwJX55AQUadVg2tShOBiW5 BZDuj7ONQLGE7Me1mLUZ9QqaOuMINeBLd0Pbq26k2/fMVKFTw1reLvRM8WFDPK5kjeW2 bOLdeRjdB9WF3Kyviij+ieg14TeK3wJpqhbQ7+pBUwGQigzsgBTC2fSvisWuigKNp9Mz 58EHerdpIjFlFmfKF9hGJmJe9tP9l5eE0Bt91Atf8rpnAFmCGI3Uqyt54lZ7MMEE9psI uR+Z+e3p1ffNWeWH6iN3pNUXVc2xB4PXzmfpZXoI/Q5tROhrBzva/MP5+04ri9A2egdo lc4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=qqEOQrIN07UQtQy1sNTmLmh+Cy8eYVQqfiuZaiYDneo=; b=JeDPlTUych/2PZlxBQYtcsza4EC6xNapk0VG7b8uB43q/jB2ENEcDdtrdFCRL/r/zU W3guCtyjYI9FBZq7jVXUNPObJkbL3QTWZImuA6xJKPINkLqT0ZlPhmUgAWIK6J8UQzZS CcR/IXUP8DpeXfPVY9PHuTDTyeCHhd7iJ/U48DyijOrEXd573rl7u9jn4IkK4UQaDEyQ uQAWsNpP+LfJCvyHlhr8NuTviGYCQLqx/xNbhkOweE33h+fzXxTyuifNR66h9olOwAHq E+rTpvZJu+F/3Rp1p/9XTeyvY/yg1UCg++UNq4ep1S3JAk1QOP1FyMtD7qF5pdL5gBlk mbGw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g2si1470444otr.13.2020.03.23.05.56.13; Mon, 23 Mar 2020 05:56:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728265AbgCWMzd (ORCPT + 99 others); Mon, 23 Mar 2020 08:55:33 -0400 Received: from verein.lst.de ([213.95.11.211]:58500 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727864AbgCWMzd (ORCPT ); Mon, 23 Mar 2020 08:55:33 -0400 Received: by verein.lst.de (Postfix, from userid 2407) id 4428E68BEB; Mon, 23 Mar 2020 13:55:30 +0100 (CET) Date: Mon, 23 Mar 2020 13:55:30 +0100 From: Christoph Hellwig To: Robin Murphy Cc: Christoph Hellwig , "iommu@lists.linux-foundation.org" , Alexey Kardashevskiy , "linuxppc-dev@lists.ozlabs.org" , Lu Baolu , Greg Kroah-Hartman , Joerg Roedel , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 1/2] dma-mapping: add a dma_ops_bypass flag to struct device Message-ID: <20200323125530.GA17038@lst.de> References: <20200320141640.366360-1-hch@lst.de> <20200320141640.366360-2-hch@lst.de> <0a6003e5-8003-4509-4014-4b286d5e8fe0@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0a6003e5-8003-4509-4014-4b286d5e8fe0@arm.com> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 23, 2020 at 12:14:08PM +0000, Robin Murphy wrote: > On 2020-03-20 2:16 pm, Christoph Hellwig wrote: >> Several IOMMU drivers have a bypass mode where they can use a direct >> mapping if the devices DMA mask is large enough. Add generic support >> to the core dma-mapping code to do that to switch those drivers to >> a common solution. > > Hmm, this is _almost_, but not quite the same as the case where drivers are > managing their own IOMMU mappings, but still need to use streaming DMA for > cache maintenance on the underlying pages. In that case they should simply not call the DMA API at all. We'll just need versions of the cache maintainance APIs that tie in with the raw IOMMU API. > For that we need the ops bypass > to be a "true" bypass and also avoid SWIOTLB regardless of the device's DMA > mask. That behaviour should in fact be fine for the opportunistic bypass > case here as well, since the mask being "big enough" implies by definition > that this should never need to bounce either. In practice it does. But that means adding yet another code path vs the simple direct call to dma_direct_* vs calling the DMA ops which I'd rather avoid.