From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752608AbeC3B7B (ORCPT ); Thu, 29 Mar 2018 21:59:01 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:43202 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751906AbeC3B67 (ORCPT ); Thu, 29 Mar 2018 21:58:59 -0400 Date: Thu, 29 Mar 2018 21:58:54 -0400 From: Jerome Glisse To: Logan Gunthorpe Cc: Christian =?iso-8859-1?Q?K=F6nig?= , Christoph Hellwig , linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, Bjorn Helgaas Subject: Re: [PATCH 2/8] PCI: Add pci_find_common_upstream_dev() Message-ID: <20180330015854.GA3572@redhat.com> References: <5498e9b5-8fe5-8999-a44e-f7dc483bc9ce@amd.com> <16c7bef8-5f03-9e89-1f50-b62fb139a36f@deltatee.com> <6a5c9a10-50fe-b03d-dfc1-791d62d79f8e@amd.com> <73578b4e-664b-141c-3e1f-e1fae1e4db07@amd.com> <1b08c13e-b4a2-08f2-6194-93e6c21b7965@deltatee.com> <70adc2cc-f7aa-d4b9-7d7a-71f3ae99f16c@gmail.com> <98ce6cfd-bcf3-811e-a0f1-757b60da467a@deltatee.com> <8d050848-8970-b8c4-a657-429fefd31769@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 29, 2018 at 10:25:52AM -0600, Logan Gunthorpe wrote: > > > On 29/03/18 10:10 AM, Christian König wrote: > > Why not? I mean the dma_map_resource() function is for P2P while other > > dma_map_* functions are only for system memory. > > Oh, hmm, I wasn't aware dma_map_resource was exclusively for mapping > P2P. Though it's a bit odd seeing we've been working under the > assumption that PCI P2P is different as it has to translate the PCI bus > address. Where as P2P for devices on other buses is a big unknown. dma_map_resource() is the right API (thought its current implementation is fill with x86 assumptions). So i would argue that arch can decide to implement it or simply return dma error address which trigger fallback path into the caller (at least for GPU drivers). SG variant can be added on top. dma_map_resource() is the right API because it has all the necessary informations. It use the CPU physical address as the common address "language" with CPU physical address of PCIE bar to map to another device you can find the corresponding bus address from the IOMMU code (NOP on x86). So dma_map_resource() knows both the source device which export its PCIE bar and the destination devices. So i don't think Christian need to base his patchset on yours. This is orthogonal. Christian is using existing upstream API, if it is broken on some arch it is up to those arch to fix it, or return error if it is not fixable. In fact i would assume that you would need to base your patchset on top of dma_map_resource() too ... Moreover i doubt Christian want to have struct page for this. For nouveau there will be HMM struct page and this would conflict. AFAICT you need struct page because the API you are trying to expose to user space rely on "regular" filesystem/RDMA umem API which all assume struct page. GPU drivers do not have this requirement and it should not be impose on them. So from my point of view Christian patchset is good as it is. Modulo better commit message. Bottom line i think we need common PCIE helper for P2P and the current dma_map_resource() is the right kind from POV. What you are doing with struct page is specific to your sub-system and should not be impose on others. Cheers, Jérôme From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: [PATCH 2/8] PCI: Add pci_find_common_upstream_dev() Date: Thu, 29 Mar 2018 21:58:54 -0400 Message-ID: <20180330015854.GA3572@redhat.com> References: <5498e9b5-8fe5-8999-a44e-f7dc483bc9ce@amd.com> <16c7bef8-5f03-9e89-1f50-b62fb139a36f@deltatee.com> <6a5c9a10-50fe-b03d-dfc1-791d62d79f8e@amd.com> <73578b4e-664b-141c-3e1f-e1fae1e4db07@amd.com> <1b08c13e-b4a2-08f2-6194-93e6c21b7965@deltatee.com> <70adc2cc-f7aa-d4b9-7d7a-71f3ae99f16c@gmail.com> <98ce6cfd-bcf3-811e-a0f1-757b60da467a@deltatee.com> <8d050848-8970-b8c4-a657-429fefd31769@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Logan Gunthorpe Cc: linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Christoph Hellwig , amd-gfx@lists.freedesktop.org, Bjorn Helgaas , Christian =?iso-8859-1?Q?K=F6nig?= , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXIgMjksIDIwMTggYXQgMTA6MjU6NTJBTSAtMDYwMCwgTG9nYW4gR3VudGhvcnBl IHdyb3RlOgo+IAo+IAo+IE9uIDI5LzAzLzE4IDEwOjEwIEFNLCBDaHJpc3RpYW4gS8O2bmlnIHdy b3RlOgo+ID4gV2h5IG5vdD8gSSBtZWFuIHRoZSBkbWFfbWFwX3Jlc291cmNlKCkgZnVuY3Rpb24g aXMgZm9yIFAyUCB3aGlsZSBvdGhlciAKPiA+IGRtYV9tYXBfKiBmdW5jdGlvbnMgYXJlIG9ubHkg Zm9yIHN5c3RlbSBtZW1vcnkuCj4gCj4gT2gsIGhtbSwgSSB3YXNuJ3QgYXdhcmUgZG1hX21hcF9y ZXNvdXJjZSB3YXMgZXhjbHVzaXZlbHkgZm9yIG1hcHBpbmcKPiBQMlAuIFRob3VnaCBpdCdzIGEg Yml0IG9kZCBzZWVpbmcgd2UndmUgYmVlbiB3b3JraW5nIHVuZGVyIHRoZQo+IGFzc3VtcHRpb24g dGhhdCBQQ0kgUDJQIGlzIGRpZmZlcmVudCBhcyBpdCBoYXMgdG8gdHJhbnNsYXRlIHRoZSBQQ0kg YnVzCj4gYWRkcmVzcy4gV2hlcmUgYXMgUDJQIGZvciBkZXZpY2VzIG9uIG90aGVyIGJ1c2VzIGlz IGEgYmlnIHVua25vd24uCgpkbWFfbWFwX3Jlc291cmNlKCkgaXMgdGhlIHJpZ2h0IEFQSSAodGhv dWdodCBpdHMgY3VycmVudCBpbXBsZW1lbnRhdGlvbgppcyBmaWxsIHdpdGggeDg2IGFzc3VtcHRp b25zKS4gU28gaSB3b3VsZCBhcmd1ZSB0aGF0IGFyY2ggY2FuIGRlY2lkZSB0bwppbXBsZW1lbnQg aXQgb3Igc2ltcGx5IHJldHVybiBkbWEgZXJyb3IgYWRkcmVzcyB3aGljaCB0cmlnZ2VyIGZhbGxi YWNrCnBhdGggaW50byB0aGUgY2FsbGVyIChhdCBsZWFzdCBmb3IgR1BVIGRyaXZlcnMpLiBTRyB2 YXJpYW50IGNhbiBiZSBhZGRlZApvbiB0b3AuCgpkbWFfbWFwX3Jlc291cmNlKCkgaXMgdGhlIHJp Z2h0IEFQSSBiZWNhdXNlIGl0IGhhcyBhbGwgdGhlIG5lY2Vzc2FyeQppbmZvcm1hdGlvbnMuIEl0 IHVzZSB0aGUgQ1BVIHBoeXNpY2FsIGFkZHJlc3MgYXMgdGhlIGNvbW1vbiBhZGRyZXNzCiJsYW5n dWFnZSIgd2l0aCBDUFUgcGh5c2ljYWwgYWRkcmVzcyBvZiBQQ0lFIGJhciB0byBtYXAgdG8gYW5v dGhlcgpkZXZpY2UgeW91IGNhbiBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1cyBhZGRyZXNzIGZy b20gdGhlIElPTU1VIGNvZGUKKE5PUCBvbiB4ODYpLiBTbyBkbWFfbWFwX3Jlc291cmNlKCkga25v d3MgYm90aCB0aGUgc291cmNlIGRldmljZSB3aGljaApleHBvcnQgaXRzIFBDSUUgYmFyIGFuZCB0 aGUgZGVzdGluYXRpb24gZGV2aWNlcy4KCgpTbyBpIGRvbid0IHRoaW5rIENocmlzdGlhbiBuZWVk IHRvIGJhc2UgaGlzIHBhdGNoc2V0IG9uIHlvdXJzLiBUaGlzCmlzIG9ydGhvZ29uYWwuIENocmlz dGlhbiBpcyB1c2luZyBleGlzdGluZyB1cHN0cmVhbSBBUEksIGlmIGl0IGlzCmJyb2tlbiBvbiBz b21lIGFyY2ggaXQgaXMgdXAgdG8gdGhvc2UgYXJjaCB0byBmaXggaXQsIG9yIHJldHVybiBlcnJv cgppZiBpdCBpcyBub3QgZml4YWJsZS4gSW4gZmFjdCBpIHdvdWxkIGFzc3VtZSB0aGF0IHlvdSB3 b3VsZCBuZWVkIHRvCmJhc2UgeW91ciBwYXRjaHNldCBvbiB0b3Agb2YgZG1hX21hcF9yZXNvdXJj ZSgpIHRvbyAuLi4KCk1vcmVvdmVyIGkgZG91YnQgQ2hyaXN0aWFuIHdhbnQgdG8gaGF2ZSBzdHJ1 Y3QgcGFnZSBmb3IgdGhpcy4gRm9yCm5vdXZlYXUgdGhlcmUgd2lsbCBiZSBITU0gc3RydWN0IHBh Z2UgYW5kIHRoaXMgd291bGQgY29uZmxpY3QuCgpBRkFJQ1QgeW91IG5lZWQgc3RydWN0IHBhZ2Ug YmVjYXVzZSB0aGUgQVBJIHlvdSBhcmUgdHJ5aW5nIHRvIGV4cG9zZQp0byB1c2VyIHNwYWNlIHJl bHkgb24gInJlZ3VsYXIiIGZpbGVzeXN0ZW0vUkRNQSB1bWVtIEFQSSB3aGljaCBhbGwKYXNzdW1l IHN0cnVjdCBwYWdlLiBHUFUgZHJpdmVycyBkbyBub3QgaGF2ZSB0aGlzIHJlcXVpcmVtZW50IGFu ZCBpdApzaG91bGQgbm90IGJlIGltcG9zZSBvbiB0aGVtLgoKClNvIGZyb20gbXkgcG9pbnQgb2Yg dmlldyBDaHJpc3RpYW4gcGF0Y2hzZXQgaXMgZ29vZCBhcyBpdCBpcy4gTW9kdWxvCmJldHRlciBj b21taXQgbWVzc2FnZS4KCgpCb3R0b20gbGluZSBpIHRoaW5rIHdlIG5lZWQgY29tbW9uIFBDSUUg aGVscGVyIGZvciBQMlAgYW5kIHRoZSBjdXJyZW50CmRtYV9tYXBfcmVzb3VyY2UoKSBpcyB0aGUg cmlnaHQga2luZCBmcm9tIFBPVi4gV2hhdCB5b3UgYXJlIGRvaW5nIHdpdGgKc3RydWN0IHBhZ2Ug aXMgc3BlY2lmaWMgdG8geW91ciBzdWItc3lzdGVtIGFuZCBzaG91bGQgbm90IGJlIGltcG9zZSBv bgpvdGhlcnMuCgpDaGVlcnMsCkrDqXLDtG1lCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=