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 X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E65D7C433E0 for ; Fri, 12 Mar 2021 18:12:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B344864F4C for ; Fri, 12 Mar 2021 18:12:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232257AbhCLSL5 (ORCPT ); Fri, 12 Mar 2021 13:11:57 -0500 Received: from foss.arm.com ([217.140.110.172]:59024 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231906AbhCLSL3 (ORCPT ); Fri, 12 Mar 2021 13:11:29 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D802DED1; Fri, 12 Mar 2021 10:11:28 -0800 (PST) Received: from [10.57.52.136] (unknown [10.57.52.136]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EB8E33F7D7; Fri, 12 Mar 2021 10:11:23 -0800 (PST) Subject: Re: [RFC PATCH v2 06/11] dma-direct: Support PCI P2PDMA pages in dma-direct map_sg To: Logan Gunthorpe , 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 Cc: Minturn Dave B , John Hubbard , Dave Hansen , Matthew Wilcox , =?UTF-8?Q?Christian_K=c3=b6nig?= , Jason Gunthorpe , Jason Ekstrand , Daniel Vetter , Dan Williams , Stephen Bates , Jakowski Andrzej , Christoph Hellwig , Xiong Jianxin References: <20210311233142.7900-1-logang@deltatee.com> <20210311233142.7900-7-logang@deltatee.com> <215e1472-5294-d20a-a43a-ff6dfe8cd66e@arm.com> From: Robin Murphy Message-ID: Date: Fri, 12 Mar 2021 18:11:17 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org On 2021-03-12 16:24, Logan Gunthorpe wrote: > > > On 2021-03-12 8:52 a.m., Robin Murphy wrote: >>> + >>>           sg->dma_address = dma_direct_map_page(dev, sg_page(sg), >>>                   sg->offset, sg->length, dir, attrs); >>>           if (sg->dma_address == DMA_MAPPING_ERROR) >>> @@ -411,7 +440,7 @@ int dma_direct_map_sg(struct device *dev, struct >>> scatterlist *sgl, int nents, >>>     out_unmap: >>>       dma_direct_unmap_sg(dev, sgl, i, dir, attrs | >>> DMA_ATTR_SKIP_CPU_SYNC); >>> -    return 0; >>> +    return ret; >>>   } >>>     dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t >>> paddr, >>> diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c >>> index b6a633679933..adc1a83950be 100644 >>> --- a/kernel/dma/mapping.c >>> +++ b/kernel/dma/mapping.c >>> @@ -178,8 +178,15 @@ void dma_unmap_page_attrs(struct device *dev, >>> dma_addr_t addr, size_t size, >>>   EXPORT_SYMBOL(dma_unmap_page_attrs); >>>     /* >>> - * dma_maps_sg_attrs returns 0 on error and > 0 on success. >>> - * It should never return a value < 0. >>> + * dma_maps_sg_attrs returns 0 on any resource error and > 0 on success. >>> + * >>> + * If 0 is returned, the mapping can be retried and will succeed once >>> + * sufficient resources are available. >> >> That's not a guarantee we can uphold. Retrying forever in the vain hope >> that a device might evolve some extra address bits, or a bounce buffer >> might magically grow big enough for a gigantic mapping, isn't >> necessarily the best idea. > > Perhaps this is just poorly worded. Returning 0 is the normal case and > nothing has changed there. The block layer, for example, will retry if > zero is returned as this only happens if it failed to allocate resources > for the mapping. The reason we have to return -1 is to tell the block > layer not to retry these requests as they will never succeed in the future. > >>> + * >>> + * If there are P2PDMA pages in the scatterlist then this function may >>> + * return -EREMOTEIO to indicate that the pages are not mappable by the >>> + * device. In this case, an error should be returned for the IO as it >>> + * will never be successfully retried. >>>    */ >>>   int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg, int >>> nents, >>>           enum dma_data_direction dir, unsigned long attrs) >>> @@ -197,7 +204,7 @@ int dma_map_sg_attrs(struct device *dev, struct >>> scatterlist *sg, int nents, >>>           ents = dma_direct_map_sg(dev, sg, nents, dir, attrs); >>>       else >>>           ents = ops->map_sg(dev, sg, nents, dir, attrs); >>> -    BUG_ON(ents < 0); >>> + >> >> This scares me - I hesitate to imagine the amount of driver/subsystem >> code out there that will see nonzero and merrily set off iterating a >> negative number of segments, if we open the floodgates of allowing >> implementations to return error codes here. > > Yes, but it will never happen on existing drivers/subsystems. The only > way it can return a negative number is if the driver passes in P2PDMA > pages which can't happen without changes in the driver. We are careful > about where P2PDMA pages can get into so we don't have to worry about > all the existing driver code out there. Sure, that's how things stand immediately after this patch. But then someone comes along with the perfectly reasonable argument for returning more expressive error information for regular mapping failures as well (because sometimes those can be terminal too, as above), we start to get divergent behaviour across architectures and random bits of old code subtly breaking down the line. *That* is what makes me wary of making a fundamental change to a long-standing "nonzero means success" interface... Robin. 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 X-Spam-Level: X-Spam-Status: No, score=-10.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79363C433DB for ; Fri, 12 Mar 2021 18:11:55 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 12B4B64F45 for ; Fri, 12 Mar 2021 18:11:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 12B4B64F45 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wCkgpJ6pZK7v42yDhBJjvDfG+lfh88ptT7AmGgeNO2g=; b=TIc921oLiocbMmWp12OOyzGnH VDW8w79VgtHUtF0lIA4ooaF3RI7u6i04Q2vk0mccW1nAjVdNUFMo0dFSG/h5LMqG5tdGSGMFjYyjk hJ5RcIaqD4cO20h3Bser9bssE4wPzFbGmw1vhfCdZUoB8ubnMjzN+rYr5bVy3HRPHrrFfelw91aCP rjrUeLcbLdHCbu6Ka0qs8LF+fwFrka59RjNBgQoXBICaLbCJdSOVHzsauSZMdTSgqRLBXeNkY4UXE gsuIeA4xMthVdjcYinqMsspx2zQN1L5SM9GZ0aNpKCV6RWpzghRfQ57RB7SXEsAiubtK0VWh4RSQG JjqVUlnVA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lKmGB-00C9sT-71; Fri, 12 Mar 2021 18:11:40 +0000 Received: from foss.arm.com ([217.140.110.172]) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lKmG6-00C9rT-L2 for linux-nvme@lists.infradead.org; Fri, 12 Mar 2021 18:11:36 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D802DED1; Fri, 12 Mar 2021 10:11:28 -0800 (PST) Received: from [10.57.52.136] (unknown [10.57.52.136]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EB8E33F7D7; Fri, 12 Mar 2021 10:11:23 -0800 (PST) Subject: Re: [RFC PATCH v2 06/11] dma-direct: Support PCI P2PDMA pages in dma-direct map_sg To: Logan Gunthorpe , 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 Cc: Minturn Dave B , John Hubbard , Dave Hansen , Matthew Wilcox , =?UTF-8?Q?Christian_K=c3=b6nig?= , Jason Gunthorpe , Jason Ekstrand , Daniel Vetter , Dan Williams , Stephen Bates , Jakowski Andrzej , Christoph Hellwig , Xiong Jianxin References: <20210311233142.7900-1-logang@deltatee.com> <20210311233142.7900-7-logang@deltatee.com> <215e1472-5294-d20a-a43a-ff6dfe8cd66e@arm.com> From: Robin Murphy Message-ID: Date: Fri, 12 Mar 2021 18:11:17 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210312_181135_057852_A8D91D65 X-CRM114-Status: GOOD ( 24.21 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org T24gMjAyMS0wMy0xMiAxNjoyNCwgTG9nYW4gR3VudGhvcnBlIHdyb3RlOgo+IAo+IAo+IE9uIDIw MjEtMDMtMTIgODo1MiBhLm0uLCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4+PiArCj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgIHNnLT5kbWFfYWRkcmVzcyA9IGRtYV9kaXJlY3RfbWFwX3BhZ2UoZGV2LCBz Z19wYWdlKHNnKSwKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNnLT5v ZmZzZXQsIHNnLT5sZW5ndGgsIGRpciwgYXR0cnMpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoc2ctPmRtYV9hZGRyZXNzID09IERNQV9NQVBQSU5HX0VSUk9SKQo+Pj4gQEAgLTQxMSw3ICs0 NDAsNyBAQCBpbnQgZG1hX2RpcmVjdF9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QK Pj4+IHNjYXR0ZXJsaXN0ICpzZ2wsIGludCBuZW50cywKPj4+ICDCoCDCoCBvdXRfdW5tYXA6Cj4+ PiAgwqDCoMKgwqDCoCBkbWFfZGlyZWN0X3VubWFwX3NnKGRldiwgc2dsLCBpLCBkaXIsIGF0dHJz IHwKPj4+IERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpOwo+Pj4gLcKgwqDCoCByZXR1cm4gMDsKPj4+ ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4+ICDCoCB9Cj4+PiAgwqAgwqAgZG1hX2FkZHJfdCBkbWFf ZGlyZWN0X21hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHBoeXNfYWRkcl90Cj4+PiBw YWRkciwKPj4+IGRpZmYgLS1naXQgYS9rZXJuZWwvZG1hL21hcHBpbmcuYyBiL2tlcm5lbC9kbWEv bWFwcGluZy5jCj4+PiBpbmRleCBiNmE2MzM2Nzk5MzMuLmFkYzFhODM5NTBiZSAxMDA2NDQKPj4+ IC0tLSBhL2tlcm5lbC9kbWEvbWFwcGluZy5jCj4+PiArKysgYi9rZXJuZWwvZG1hL21hcHBpbmcu Ywo+Pj4gQEAgLTE3OCw4ICsxNzgsMTUgQEAgdm9pZCBkbWFfdW5tYXBfcGFnZV9hdHRycyhzdHJ1 Y3QgZGV2aWNlICpkZXYsCj4+PiBkbWFfYWRkcl90IGFkZHIsIHNpemVfdCBzaXplLAo+Pj4gIMKg IEVYUE9SVF9TWU1CT0woZG1hX3VubWFwX3BhZ2VfYXR0cnMpOwo+Pj4gIMKgIMKgIC8qCj4+PiAt ICogZG1hX21hcHNfc2dfYXR0cnMgcmV0dXJucyAwIG9uIGVycm9yIGFuZCA+IDAgb24gc3VjY2Vz cy4KPj4+IC0gKiBJdCBzaG91bGQgbmV2ZXIgcmV0dXJuIGEgdmFsdWUgPCAwLgo+Pj4gKyAqIGRt YV9tYXBzX3NnX2F0dHJzIHJldHVybnMgMCBvbiBhbnkgcmVzb3VyY2UgZXJyb3IgYW5kID4gMCBv biBzdWNjZXNzLgo+Pj4gKyAqCj4+PiArICogSWYgMCBpcyByZXR1cm5lZCwgdGhlIG1hcHBpbmcg Y2FuIGJlIHJldHJpZWQgYW5kIHdpbGwgc3VjY2VlZCBvbmNlCj4+PiArICogc3VmZmljaWVudCBy ZXNvdXJjZXMgYXJlIGF2YWlsYWJsZS4KPj4KPj4gVGhhdCdzIG5vdCBhIGd1YXJhbnRlZSB3ZSBj YW4gdXBob2xkLiBSZXRyeWluZyBmb3JldmVyIGluIHRoZSB2YWluIGhvcGUKPj4gdGhhdCBhIGRl dmljZSBtaWdodCBldm9sdmUgc29tZSBleHRyYSBhZGRyZXNzIGJpdHMsIG9yIGEgYm91bmNlIGJ1 ZmZlcgo+PiBtaWdodCBtYWdpY2FsbHkgZ3JvdyBiaWcgZW5vdWdoIGZvciBhIGdpZ2FudGljIG1h cHBpbmcsIGlzbid0Cj4+IG5lY2Vzc2FyaWx5IHRoZSBiZXN0IGlkZWEuCj4gCj4gUGVyaGFwcyB0 aGlzIGlzIGp1c3QgcG9vcmx5IHdvcmRlZC4gUmV0dXJuaW5nIDAgaXMgdGhlIG5vcm1hbCBjYXNl IGFuZAo+IG5vdGhpbmcgaGFzIGNoYW5nZWQgdGhlcmUuIFRoZSBibG9jayBsYXllciwgZm9yIGV4 YW1wbGUsIHdpbGwgcmV0cnkgaWYKPiB6ZXJvIGlzIHJldHVybmVkIGFzIHRoaXMgb25seSBoYXBw ZW5zIGlmIGl0IGZhaWxlZCB0byBhbGxvY2F0ZSByZXNvdXJjZXMKPiBmb3IgdGhlIG1hcHBpbmcu IFRoZSByZWFzb24gd2UgaGF2ZSB0byByZXR1cm4gLTEgaXMgdG8gdGVsbCB0aGUgYmxvY2sKPiBs YXllciBub3QgdG8gcmV0cnkgdGhlc2UgcmVxdWVzdHMgYXMgdGhleSB3aWxsIG5ldmVyIHN1Y2Nl ZWQgaW4gdGhlIGZ1dHVyZS4KPiAKPj4+ICsgKgo+Pj4gKyAqIElmIHRoZXJlIGFyZSBQMlBETUEg cGFnZXMgaW4gdGhlIHNjYXR0ZXJsaXN0IHRoZW4gdGhpcyBmdW5jdGlvbiBtYXkKPj4+ICsgKiBy ZXR1cm4gLUVSRU1PVEVJTyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYWdlcyBhcmUgbm90IG1hcHBh YmxlIGJ5IHRoZQo+Pj4gKyAqIGRldmljZS4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciBzaG91bGQg YmUgcmV0dXJuZWQgZm9yIHRoZSBJTyBhcyBpdAo+Pj4gKyAqIHdpbGwgbmV2ZXIgYmUgc3VjY2Vz c2Z1bGx5IHJldHJpZWQuCj4+PiAgwqDCoCAqLwo+Pj4gIMKgIGludCBkbWFfbWFwX3NnX2F0dHJz KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50Cj4+PiBuZW50 cywKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1 bnNpZ25lZCBsb25nIGF0dHJzKQo+Pj4gQEAgLTE5Nyw3ICsyMDQsNyBAQCBpbnQgZG1hX21hcF9z Z19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdAo+Pj4gc2NhdHRlcmxpc3QgKnNnLCBp bnQgbmVudHMsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIGVudHMgPSBkbWFfZGlyZWN0X21hcF9z ZyhkZXYsIHNnLCBuZW50cywgZGlyLCBhdHRycyk7Cj4+PiAgwqDCoMKgwqDCoCBlbHNlCj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgIGVudHMgPSBvcHMtPm1hcF9zZyhkZXYsIHNnLCBuZW50cywgZGly LCBhdHRycyk7Cj4+PiAtwqDCoMKgIEJVR19PTihlbnRzIDwgMCk7Cj4+PiArCj4+Cj4+IFRoaXMg c2NhcmVzIG1lIC0gSSBoZXNpdGF0ZSB0byBpbWFnaW5lIHRoZSBhbW91bnQgb2YgZHJpdmVyL3N1 YnN5c3RlbQo+PiBjb2RlIG91dCB0aGVyZSB0aGF0IHdpbGwgc2VlIG5vbnplcm8gYW5kIG1lcnJp bHkgc2V0IG9mZiBpdGVyYXRpbmcgYQo+PiBuZWdhdGl2ZSBudW1iZXIgb2Ygc2VnbWVudHMsIGlm IHdlIG9wZW4gdGhlIGZsb29kZ2F0ZXMgb2YgYWxsb3dpbmcKPj4gaW1wbGVtZW50YXRpb25zIHRv IHJldHVybiBlcnJvciBjb2RlcyBoZXJlLgo+IAo+IFllcywgYnV0IGl0IHdpbGwgbmV2ZXIgaGFw cGVuIG9uIGV4aXN0aW5nIGRyaXZlcnMvc3Vic3lzdGVtcy4gVGhlIG9ubHkKPiB3YXkgaXQgY2Fu IHJldHVybiBhIG5lZ2F0aXZlIG51bWJlciBpcyBpZiB0aGUgZHJpdmVyIHBhc3NlcyBpbiBQMlBE TUEKPiBwYWdlcyB3aGljaCBjYW4ndCBoYXBwZW4gd2l0aG91dCBjaGFuZ2VzIGluIHRoZSBkcml2 ZXIuIFdlIGFyZSBjYXJlZnVsCj4gYWJvdXQgd2hlcmUgUDJQRE1BIHBhZ2VzIGNhbiBnZXQgaW50 byBzbyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0Cj4gYWxsIHRoZSBleGlzdGluZyBkcml2 ZXIgY29kZSBvdXQgdGhlcmUuCgpTdXJlLCB0aGF0J3MgaG93IHRoaW5ncyBzdGFuZCBpbW1lZGlh dGVseSBhZnRlciB0aGlzIHBhdGNoLiBCdXQgdGhlbiAKc29tZW9uZSBjb21lcyBhbG9uZyB3aXRo IHRoZSBwZXJmZWN0bHkgcmVhc29uYWJsZSBhcmd1bWVudCBmb3IgcmV0dXJuaW5nIAptb3JlIGV4 cHJlc3NpdmUgZXJyb3IgaW5mb3JtYXRpb24gZm9yIHJlZ3VsYXIgbWFwcGluZyBmYWlsdXJlcyBh cyB3ZWxsIAooYmVjYXVzZSBzb21ldGltZXMgdGhvc2UgY2FuIGJlIHRlcm1pbmFsIHRvbywgYXMg YWJvdmUpLCB3ZSBzdGFydCB0byBnZXQgCmRpdmVyZ2VudCBiZWhhdmlvdXIgYWNyb3NzIGFyY2hp dGVjdHVyZXMgYW5kIHJhbmRvbSBiaXRzIG9mIG9sZCBjb2RlIApzdWJ0bHkgYnJlYWtpbmcgZG93 biB0aGUgbGluZS4gKlRoYXQqIGlzIHdoYXQgbWFrZXMgbWUgd2FyeSBvZiBtYWtpbmcgYSAKZnVu ZGFtZW50YWwgY2hhbmdlIHRvIGEgbG9uZy1zdGFuZGluZyAibm9uemVybyBtZWFucyBzdWNjZXNz IiBpbnRlcmZhY2UuLi4KClJvYmluLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtbnZtZSBtYWlsaW5nIGxpc3QKTGludXgtbnZtZUBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtbnZtZQo= 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 X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 477C9C433E6 for ; Fri, 12 Mar 2021 18:11:34 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E7AC864F48 for ; Fri, 12 Mar 2021 18:11:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E7AC864F48 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id A6EB742FD7; Fri, 12 Mar 2021 18:11:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W9xKvpcPqb_c; Fri, 12 Mar 2021 18:11:32 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTP id 704EB42FD6; Fri, 12 Mar 2021 18:11:32 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 46AF0C000A; Fri, 12 Mar 2021 18:11:32 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id B433AC0001 for ; Fri, 12 Mar 2021 18:11:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 9979A42FD7 for ; Fri, 12 Mar 2021 18:11:30 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7eKmkfX4ixgD for ; Fri, 12 Mar 2021 18:11:29 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp2.osuosl.org (Postfix) with ESMTP id B7B7142FD6 for ; Fri, 12 Mar 2021 18:11:29 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D802DED1; Fri, 12 Mar 2021 10:11:28 -0800 (PST) Received: from [10.57.52.136] (unknown [10.57.52.136]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EB8E33F7D7; Fri, 12 Mar 2021 10:11:23 -0800 (PST) Subject: Re: [RFC PATCH v2 06/11] dma-direct: Support PCI P2PDMA pages in dma-direct map_sg To: Logan Gunthorpe , 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 References: <20210311233142.7900-1-logang@deltatee.com> <20210311233142.7900-7-logang@deltatee.com> <215e1472-5294-d20a-a43a-ff6dfe8cd66e@arm.com> From: Robin Murphy Message-ID: Date: Fri, 12 Mar 2021 18:11:17 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB Cc: Minturn Dave B , John Hubbard , Dave Hansen , Christoph Hellwig , Matthew Wilcox , Stephen Bates , Jason Gunthorpe , Jason Ekstrand , Daniel Vetter , Dan Williams , Jakowski Andrzej , =?UTF-8?Q?Christian_K=c3=b6nig?= , Xiong Jianxin X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" T24gMjAyMS0wMy0xMiAxNjoyNCwgTG9nYW4gR3VudGhvcnBlIHdyb3RlOgo+IAo+IAo+IE9uIDIw MjEtMDMtMTIgODo1MiBhLm0uLCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4+PiArCj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgIHNnLT5kbWFfYWRkcmVzcyA9IGRtYV9kaXJlY3RfbWFwX3BhZ2UoZGV2LCBz Z19wYWdlKHNnKSwKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNnLT5v ZmZzZXQsIHNnLT5sZW5ndGgsIGRpciwgYXR0cnMpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoc2ctPmRtYV9hZGRyZXNzID09IERNQV9NQVBQSU5HX0VSUk9SKQo+Pj4gQEAgLTQxMSw3ICs0 NDAsNyBAQCBpbnQgZG1hX2RpcmVjdF9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QK Pj4+IHNjYXR0ZXJsaXN0ICpzZ2wsIGludCBuZW50cywKPj4+ICDCoCDCoCBvdXRfdW5tYXA6Cj4+ PiAgwqDCoMKgwqDCoCBkbWFfZGlyZWN0X3VubWFwX3NnKGRldiwgc2dsLCBpLCBkaXIsIGF0dHJz IHwKPj4+IERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpOwo+Pj4gLcKgwqDCoCByZXR1cm4gMDsKPj4+ ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4+ICDCoCB9Cj4+PiAgwqAgwqAgZG1hX2FkZHJfdCBkbWFf ZGlyZWN0X21hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHBoeXNfYWRkcl90Cj4+PiBw YWRkciwKPj4+IGRpZmYgLS1naXQgYS9rZXJuZWwvZG1hL21hcHBpbmcuYyBiL2tlcm5lbC9kbWEv bWFwcGluZy5jCj4+PiBpbmRleCBiNmE2MzM2Nzk5MzMuLmFkYzFhODM5NTBiZSAxMDA2NDQKPj4+ IC0tLSBhL2tlcm5lbC9kbWEvbWFwcGluZy5jCj4+PiArKysgYi9rZXJuZWwvZG1hL21hcHBpbmcu Ywo+Pj4gQEAgLTE3OCw4ICsxNzgsMTUgQEAgdm9pZCBkbWFfdW5tYXBfcGFnZV9hdHRycyhzdHJ1 Y3QgZGV2aWNlICpkZXYsCj4+PiBkbWFfYWRkcl90IGFkZHIsIHNpemVfdCBzaXplLAo+Pj4gIMKg IEVYUE9SVF9TWU1CT0woZG1hX3VubWFwX3BhZ2VfYXR0cnMpOwo+Pj4gIMKgIMKgIC8qCj4+PiAt ICogZG1hX21hcHNfc2dfYXR0cnMgcmV0dXJucyAwIG9uIGVycm9yIGFuZCA+IDAgb24gc3VjY2Vz cy4KPj4+IC0gKiBJdCBzaG91bGQgbmV2ZXIgcmV0dXJuIGEgdmFsdWUgPCAwLgo+Pj4gKyAqIGRt YV9tYXBzX3NnX2F0dHJzIHJldHVybnMgMCBvbiBhbnkgcmVzb3VyY2UgZXJyb3IgYW5kID4gMCBv biBzdWNjZXNzLgo+Pj4gKyAqCj4+PiArICogSWYgMCBpcyByZXR1cm5lZCwgdGhlIG1hcHBpbmcg Y2FuIGJlIHJldHJpZWQgYW5kIHdpbGwgc3VjY2VlZCBvbmNlCj4+PiArICogc3VmZmljaWVudCBy ZXNvdXJjZXMgYXJlIGF2YWlsYWJsZS4KPj4KPj4gVGhhdCdzIG5vdCBhIGd1YXJhbnRlZSB3ZSBj YW4gdXBob2xkLiBSZXRyeWluZyBmb3JldmVyIGluIHRoZSB2YWluIGhvcGUKPj4gdGhhdCBhIGRl dmljZSBtaWdodCBldm9sdmUgc29tZSBleHRyYSBhZGRyZXNzIGJpdHMsIG9yIGEgYm91bmNlIGJ1 ZmZlcgo+PiBtaWdodCBtYWdpY2FsbHkgZ3JvdyBiaWcgZW5vdWdoIGZvciBhIGdpZ2FudGljIG1h cHBpbmcsIGlzbid0Cj4+IG5lY2Vzc2FyaWx5IHRoZSBiZXN0IGlkZWEuCj4gCj4gUGVyaGFwcyB0 aGlzIGlzIGp1c3QgcG9vcmx5IHdvcmRlZC4gUmV0dXJuaW5nIDAgaXMgdGhlIG5vcm1hbCBjYXNl IGFuZAo+IG5vdGhpbmcgaGFzIGNoYW5nZWQgdGhlcmUuIFRoZSBibG9jayBsYXllciwgZm9yIGV4 YW1wbGUsIHdpbGwgcmV0cnkgaWYKPiB6ZXJvIGlzIHJldHVybmVkIGFzIHRoaXMgb25seSBoYXBw ZW5zIGlmIGl0IGZhaWxlZCB0byBhbGxvY2F0ZSByZXNvdXJjZXMKPiBmb3IgdGhlIG1hcHBpbmcu IFRoZSByZWFzb24gd2UgaGF2ZSB0byByZXR1cm4gLTEgaXMgdG8gdGVsbCB0aGUgYmxvY2sKPiBs YXllciBub3QgdG8gcmV0cnkgdGhlc2UgcmVxdWVzdHMgYXMgdGhleSB3aWxsIG5ldmVyIHN1Y2Nl ZWQgaW4gdGhlIGZ1dHVyZS4KPiAKPj4+ICsgKgo+Pj4gKyAqIElmIHRoZXJlIGFyZSBQMlBETUEg cGFnZXMgaW4gdGhlIHNjYXR0ZXJsaXN0IHRoZW4gdGhpcyBmdW5jdGlvbiBtYXkKPj4+ICsgKiBy ZXR1cm4gLUVSRU1PVEVJTyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYWdlcyBhcmUgbm90IG1hcHBh YmxlIGJ5IHRoZQo+Pj4gKyAqIGRldmljZS4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciBzaG91bGQg YmUgcmV0dXJuZWQgZm9yIHRoZSBJTyBhcyBpdAo+Pj4gKyAqIHdpbGwgbmV2ZXIgYmUgc3VjY2Vz c2Z1bGx5IHJldHJpZWQuCj4+PiAgwqDCoCAqLwo+Pj4gIMKgIGludCBkbWFfbWFwX3NnX2F0dHJz KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50Cj4+PiBuZW50 cywKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1 bnNpZ25lZCBsb25nIGF0dHJzKQo+Pj4gQEAgLTE5Nyw3ICsyMDQsNyBAQCBpbnQgZG1hX21hcF9z Z19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdAo+Pj4gc2NhdHRlcmxpc3QgKnNnLCBp bnQgbmVudHMsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIGVudHMgPSBkbWFfZGlyZWN0X21hcF9z ZyhkZXYsIHNnLCBuZW50cywgZGlyLCBhdHRycyk7Cj4+PiAgwqDCoMKgwqDCoCBlbHNlCj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgIGVudHMgPSBvcHMtPm1hcF9zZyhkZXYsIHNnLCBuZW50cywgZGly LCBhdHRycyk7Cj4+PiAtwqDCoMKgIEJVR19PTihlbnRzIDwgMCk7Cj4+PiArCj4+Cj4+IFRoaXMg c2NhcmVzIG1lIC0gSSBoZXNpdGF0ZSB0byBpbWFnaW5lIHRoZSBhbW91bnQgb2YgZHJpdmVyL3N1 YnN5c3RlbQo+PiBjb2RlIG91dCB0aGVyZSB0aGF0IHdpbGwgc2VlIG5vbnplcm8gYW5kIG1lcnJp bHkgc2V0IG9mZiBpdGVyYXRpbmcgYQo+PiBuZWdhdGl2ZSBudW1iZXIgb2Ygc2VnbWVudHMsIGlm IHdlIG9wZW4gdGhlIGZsb29kZ2F0ZXMgb2YgYWxsb3dpbmcKPj4gaW1wbGVtZW50YXRpb25zIHRv IHJldHVybiBlcnJvciBjb2RlcyBoZXJlLgo+IAo+IFllcywgYnV0IGl0IHdpbGwgbmV2ZXIgaGFw cGVuIG9uIGV4aXN0aW5nIGRyaXZlcnMvc3Vic3lzdGVtcy4gVGhlIG9ubHkKPiB3YXkgaXQgY2Fu IHJldHVybiBhIG5lZ2F0aXZlIG51bWJlciBpcyBpZiB0aGUgZHJpdmVyIHBhc3NlcyBpbiBQMlBE TUEKPiBwYWdlcyB3aGljaCBjYW4ndCBoYXBwZW4gd2l0aG91dCBjaGFuZ2VzIGluIHRoZSBkcml2 ZXIuIFdlIGFyZSBjYXJlZnVsCj4gYWJvdXQgd2hlcmUgUDJQRE1BIHBhZ2VzIGNhbiBnZXQgaW50 byBzbyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0Cj4gYWxsIHRoZSBleGlzdGluZyBkcml2 ZXIgY29kZSBvdXQgdGhlcmUuCgpTdXJlLCB0aGF0J3MgaG93IHRoaW5ncyBzdGFuZCBpbW1lZGlh dGVseSBhZnRlciB0aGlzIHBhdGNoLiBCdXQgdGhlbiAKc29tZW9uZSBjb21lcyBhbG9uZyB3aXRo IHRoZSBwZXJmZWN0bHkgcmVhc29uYWJsZSBhcmd1bWVudCBmb3IgcmV0dXJuaW5nIAptb3JlIGV4 cHJlc3NpdmUgZXJyb3IgaW5mb3JtYXRpb24gZm9yIHJlZ3VsYXIgbWFwcGluZyBmYWlsdXJlcyBh cyB3ZWxsIAooYmVjYXVzZSBzb21ldGltZXMgdGhvc2UgY2FuIGJlIHRlcm1pbmFsIHRvbywgYXMg YWJvdmUpLCB3ZSBzdGFydCB0byBnZXQgCmRpdmVyZ2VudCBiZWhhdmlvdXIgYWNyb3NzIGFyY2hp dGVjdHVyZXMgYW5kIHJhbmRvbSBiaXRzIG9mIG9sZCBjb2RlIApzdWJ0bHkgYnJlYWtpbmcgZG93 biB0aGUgbGluZS4gKlRoYXQqIGlzIHdoYXQgbWFrZXMgbWUgd2FyeSBvZiBtYWtpbmcgYSAKZnVu ZGFtZW50YWwgY2hhbmdlIHRvIGEgbG9uZy1zdGFuZGluZyAibm9uemVybyBtZWFucyBzdWNjZXNz IiBpbnRlcmZhY2UuLi4KClJvYmluLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppb21tdSBtYWlsaW5nIGxpc3QKaW9tbXVAbGlzdHMubGludXgtZm91bmRh dGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGlu Zm8vaW9tbXU=