Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2716172pxk; Mon, 14 Sep 2020 23:37:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzC28z4HPWQBqj6FYYm3rR7KrRyVFgrHPKTVwFYJ13vXld6TCFVWc8d+uD/A1Rajrj+UgZJ X-Received: by 2002:a05:6402:b72:: with SMTP id cb18mr20267872edb.299.1600151856364; Mon, 14 Sep 2020 23:37:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600151856; cv=none; d=google.com; s=arc-20160816; b=f39JdgTgf3dFRBlAmfKoFuELD6ntIGdJTVJBLIgAtREKsCe8Oc6Uyg7sIaQODzha4h sD459jFJBuksYA4lp+5jIY5mcJ5XjtZ5w4pRTVx9/8OtvypGQsan5//wTFFZu8U1Y8xu dLrT+e9ek3mHy8plgPTOs1t39HGcHuU/MfKBMex0c1JLIFcnppt2/Qaj274deSmMb0cd WVWIddmedF5BWRA87aUrVxOzVAvdlHp8jQqel/2ZKde0GiWBkiUmaIXCFo+24UCP3Civ shBNubXF9QG67drxFmXd0UaxSQwStDH0M7iEwL8XShoSeQBsTygtF96/SXIR7TIVzSai JQsA== 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=1JQt8i/TvdxZTIbzH86ZJ0NZUT3ZU0Lk5HvQvedflb0=; b=QU/T0YE3fo9Wn8vdV5hvJR7HHE3Qs1sXkylN5v+VS0/Rb91j0dG3d15Qt7f/GOvDjt BFhIijixRG1V8ZwNak1lcrGAGu5JjWiTkw/sXxHIC/KXSz6k04KTVuOfe1+zjYOcueC1 +/0zCaDvkMj1kXTg3nkD/j2DHNXa6mPg6ePmmGcrEruqyW9Hp11IuazDRvGrPzf3chZd 0bByd2ezxNWkPIPCx3yz72nVS/kMOqlxRxVtWtvvBvvCFVCJUr34retI/5nYYwMCS2AT EJV8y84zSkmiw3xT1C4btVQp1JhM0u6nIhk1YAz91oCPR0Z6ebpKSHGLDvwytXrO1jX2 mTrg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c2si8841587ejx.46.2020.09.14.23.37.12; Mon, 14 Sep 2020 23:37:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726140AbgIOGg3 (ORCPT + 99 others); Tue, 15 Sep 2020 02:36:29 -0400 Received: from verein.lst.de ([213.95.11.211]:46605 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726056AbgIOGgY (ORCPT ); Tue, 15 Sep 2020 02:36:24 -0400 Received: by verein.lst.de (Postfix, from userid 2407) id CFEFC6736F; Tue, 15 Sep 2020 08:36:18 +0200 (CEST) Date: Tue, 15 Sep 2020 08:36:18 +0200 From: Christoph Hellwig To: Matthew Wilcox Cc: Christoph Hellwig , Mauro Carvalho Chehab , Thomas Bogendoerfer , "James E.J. Bottomley" , Joonyoung Shim , Seung-Woo Kim , Ben Skeggs , Marek Szyprowski , Tomasz Figa , Matt Porter , iommu@lists.linux-foundation.org, Stefan Richter , linux1394-devel@lists.sourceforge.net, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linux-samsung-soc@vger.kernel.org, nouveau@lists.freedesktop.org, netdev@vger.kernel.org, linux-scsi@vger.kernel.org, linux-mm@kvack.org, alsa-devel@alsa-project.org Subject: Re: a saner API for allocating DMA addressable pages v2 Message-ID: <20200915063618.GD19113@lst.de> References: <20200914144433.1622958-1-hch@lst.de> <20200914152617.GR6583@casper.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200914152617.GR6583@casper.infradead.org> 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, Sep 14, 2020 at 04:26:17PM +0100, Matthew Wilcox wrote: > On Mon, Sep 14, 2020 at 04:44:16PM +0200, Christoph Hellwig wrote: > > I'm still a little unsure about the API naming, as alloc_pages sort of > > implies a struct page return value, but we return a kernel virtual > > address. > > Erm ... dma_alloc_pages() returns a struct page, so is this sentence > stale? Yes. > You say that like it's a bad thing. I think the problem is more that > people don't understand what non-coherent means and think they're > supporting it when they're not. > > dma_alloc_manual_flushing()? That sounds pretty awkward.. > > > As a follow up I plan to move the implementation of the > > DMA_ATTR_NO_KERNEL_MAPPING flag over to this framework as well, given > > that is also is a fundamentally non coherent allocation. The replacement > > for that flag would then return a struct page, as it is allowed to > > actually return pages without a kernel mapping as the name suggested > > (although most of the time they will actually have a kernel mapping..) > > If the page doesn't have a kernel mapping, shouldn't it return a PFN > or a phys_addr? Most APIs we'll feed it into need a struct page. The difference is just that it can be a highmem page. And if we want to get fancy we could change the kernel mapping to PROT_NONE eventually.