Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1526561pxb; Fri, 6 Nov 2020 11:58:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnXV7vp55PAqITC8cA1rwaEeHTECt/YZP7C5ghbh/4XjumELDcYpN9rSvtgCRtP9vs66h4 X-Received: by 2002:a05:6402:4d:: with SMTP id f13mr3811683edu.306.1604692732917; Fri, 06 Nov 2020 11:58:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604692732; cv=none; d=google.com; s=arc-20160816; b=p/Q8jutJXwN5cH90KXmTIFTJE8agkBDKAbqskIjgBFZXXtrdemJJbsWb/pJKdCspDR HvneolpGbpdjKq1eYyHUxtGc0wSLzDTJuJ7rH4fxnMSmwFjMni9OUR/DJrBomh8xDK4r 63liHSJ8l2hax3lxiqGVd65dPWIpaZLeb1q/Cy/MRCyn27pcWVJqP84L0GHnckoeXq1h M7yb0eaMMoz6RyHQFhbrlc7gnGjYoG1mbiayxpjolouDj4EQfhTItjO87CRm1VuKVAnK m8cxsJOKbR68/HupXmCCyOSBldQey2Jc7fgOwymdyZqLFGEvCqWaChuWmBe3lPqcubSq 4/0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=sU45ASLE3qTNEeDnzXy0mWmjw/B5hdl1YB3C1dRGzkI=; b=Um2WWBJ+Q6RiPT8B554iiks1eHgJ4BAXBAeSkEq6ZVKwSL6YsHzcW8YjNt+hlQ2qgb /RwFK2lV2vsbmHBixhBLW/6nOZZ7DlLkD1CzlhAzLnpDh1c/jd8EEVzUUNqYAOZRgPWF K6u/+qVf+vGHWMMBVVMrqsMYkzv2qWhw77BW4pLLG30laq1U0nzzq5ymeaJ97SowJJjR r+rrGhZz/agBgaAKdm8bGgRaWR7Q6zjoeflzciZN5s2QJTegN8OPfO+iCK5HwVxGGgMN glLMyT4qUk5LdUynUq88VEmFXYPDDv70YFZqPiugPaduMdH2nFE1mdpnn6jIMRfcwMm3 WSAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=FudZRGzA; 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 y1si1503244edp.57.2020.11.06.11.58.28; Fri, 06 Nov 2020 11:58:52 -0800 (PST) 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; dkim=pass header.i=@ziepe.ca header.s=google header.b=FudZRGzA; 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 S1728310AbgKFTxo (ORCPT + 99 others); Fri, 6 Nov 2020 14:53:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727341AbgKFTxo (ORCPT ); Fri, 6 Nov 2020 14:53:44 -0500 Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D05E6C0613CF for ; Fri, 6 Nov 2020 11:53:43 -0800 (PST) Received: by mail-qt1-x842.google.com with SMTP id r8so1619429qtp.13 for ; Fri, 06 Nov 2020 11:53:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=sU45ASLE3qTNEeDnzXy0mWmjw/B5hdl1YB3C1dRGzkI=; b=FudZRGzAxEFk9lGKJUSPzsyZKArhHRwyzmRlvf+GFC+ATQPjzcBbVOeDLLB7moiVUf ObxxpnS/zZJpTm82iWz+fyi9jGs/I9YeNae0ROJk7xm4ksGu3vErOwXPC3998pjQlR5p 4czYVsKEbRHoddebJV0noju3HQZREanU58l+vhPFj17Ta8rGMwytFISX8XsKNrHR+BX8 lRJNDwJeHT2t31rpqbAdGGp0+akczI7HoAc6Ksjc1BT3ksZah6pY+y3OqCayYTmpzL+D Vcc6mEGa7A07b9rAWqQo7QjWrLXkk8WsSTWPLKnX0XjNAe7EuqN+sDQBd5I1lutR9Gx3 kmvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=sU45ASLE3qTNEeDnzXy0mWmjw/B5hdl1YB3C1dRGzkI=; b=tg9NaHvibBlAhC2dqlmJX1KY8A32WNVji1q4ronwQcDHxhDxSPGdXtokbC92mKkR1t s84RTsfnp+kw5pmErp1bBX1sykR/WnuLuN8dUjxpvvLq5XHNpcyNW0nuV/PX454/kRlq 5u9H/rFgQp9RXrPPQzqZ/3rkkSRAnZociVIclSSR635O9OiY300aoOk1T7o4AuBcOXva f7UC2rhNGtx0jXA+Xg315nzt0UiwS9ZPRhF6eqy8bX1W376I21Plprpp5tGBH8Nuwcgh Tua+NOSGLBxh1ux+LMluY3q50S92mucdbbn/JeqLwkqnkD1UAOh/VkJvNDm+x4J9dnAR YE8Q== X-Gm-Message-State: AOAM532zXhbP+nJ7HcNqRz1RmRLY7PDn0SFnVOAS6oLeqxnaNvr8rpp8 8WGVtTo+Qp50QXHdHtwTQd8/zQ== X-Received: by 2002:aed:32c7:: with SMTP id z65mr3146052qtd.266.1604692422443; Fri, 06 Nov 2020 11:53:42 -0800 (PST) Received: from ziepe.ca (hlfxns017vw-156-34-48-30.dhcp-dynamic.fibreop.ns.bellaliant.net. [156.34.48.30]) by smtp.gmail.com with ESMTPSA id r41sm1239041qtj.23.2020.11.06.11.53.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Nov 2020 11:53:41 -0800 (PST) Received: from jgg by mlx with local (Exim 4.94) (envelope-from ) id 1kb7np-0011j7-5m; Fri, 06 Nov 2020 15:53:41 -0400 Date: Fri, 6 Nov 2020 15:53:41 -0400 From: Jason Gunthorpe To: Logan Gunthorpe Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, Stephen Bates , Christoph Hellwig , Dan Williams , Christian =?utf-8?B?S8O2bmln?= , Ira Weiny , John Hubbard , Don Dutile , Matthew Wilcox , Daniel Vetter Subject: Re: [RFC PATCH 14/15] PCI/P2PDMA: Introduce pci_mmap_p2pmem() Message-ID: <20201106195341.GA244516@ziepe.ca> References: <20201106170036.18713-1-logang@deltatee.com> <20201106170036.18713-15-logang@deltatee.com> <20201106172206.GS36674@ziepe.ca> <20201106174223.GU36674@ziepe.ca> <2c2d2815-165e-2ef9-60d6-3ace7ff3aaa5@deltatee.com> <20201106180922.GV36674@ziepe.ca> <09885400-36f8-bc1d-27f0-a8adcf6104d4@deltatee.com> <20201106193024.GW36674@ziepe.ca> <03032637-0826-da76-aec2-121902b1c166@deltatee.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <03032637-0826-da76-aec2-121902b1c166@deltatee.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 06, 2020 at 12:44:59PM -0700, Logan Gunthorpe wrote: > > > On 2020-11-06 12:30 p.m., Jason Gunthorpe wrote: > >> I certainly can't make decisions for code that isn't currently > >> upstream. > > > > The rdma drivers are all upstream, what are you thinking about? > > Really? I feel like you should know what I mean here... > > I mean upstream code that actually uses the APIs that I'd have to > introduce. I can't say here's an API feature that no code uses but the > already upstream rdma driver might use eventually. It's fairly easy to > send patches that make the necessary changes when someone adds a use of > those changes inside the rdma code. Sure, but that doesn't mean you have to actively design things to be unusable beyond this narrow case. The RDMA drivers are all there, all upstream, if this work is accepted then the changes to insert P2P pages into their existing mmap flows is a reasonable usecase to consider at this point when building core code APIs. You shouldn't add dead code, but at least have a design in mind for what it needs to look like and some allowance. > >> Ultimately, if you aren't using the genpool you will have to implement > >> your own mmap operation that somehow allocates the pages and your own > >> page_free hook. > > > > Sure, the mlx5 driver already has a specialized alloctor for it's BAR > > pages. > > So it *might* make sense to carve out a common helper to setup a VMA for > P2PDMA to do the vm_flags check and set VM_MIXEDMAP... but besides that, > there's no code that would be common to the two cases. I think the whole insertion of P2PDMA pages into a VMA should be similar to io_remap_pfn() so all the VM flags, pgprot_decrypted and other subtle details are all in one place. (also it needs a pgprot_decrypted before doing vmf_insert, I just learned that this month) > >> I also don't expect this to be going upstream in the near term so don't > >> get too excited about using it. > > > > I don't know, it is actually not that horrible, the GUP and IOMMU > > related changes are simpler than I expected > > I think the deal breaker is the SGL hack and the fact that there are > important IOMMU implementations that won't have support. Yes, that is pretty hacky, maybe someone will have a better idea Jason