From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: Re: [PATCH v2 1/1] drm: msm: Replace dma_map_sg with dma_sync_sg* Date: Wed, 28 Nov 2018 07:38:44 -0500 Message-ID: References: <20181126213710.3084-1-vivek.gautam@codeaurora.org> <20181128073940.GA13072@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181128073940.GA13072-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org Cc: David Airlie , linux-arm-msm , Linux Kernel Mailing List , dri-devel , Tomasz Figa , Jordan Crouse , Sean Paul , Vivek Gautam , freedreno List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMjozOSBBTSBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGlu ZnJhZGVhZC5vcmc+IHdyb3RlOgo+Cj4gPiArICAgICAgICAgICAgIC8qCj4gPiArICAgICAgICAg ICAgICAqIGRtYV9zeW5jX3NnXyooKSBmbHVzaCB0aGUgcGh5c2ljYWwgcGFnZXMsIHNvIHBvaW50 Cj4gPiArICAgICAgICAgICAgICAqIHNnLT5kbWFfYWRkcmVzcyB0byB0aGUgcGh5c2ljYWwgb25l cyBmb3IgdGhlIHJpZ2h0IGJlaGF2aW9yLgo+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ICsgICAg ICAgICAgICAgZm9yX2VhY2hfc2cobXNtX29iai0+c2d0LT5zZ2wsIHMsIG1zbV9vYmotPnNndC0+ bmVudHMsIGkpCj4gPiArICAgICAgICAgICAgICAgICAgICAgc2dfZG1hX2FkZHJlc3MocykgPSBz Z19waHlzKHMpOwo+ID4gKwo+Cj4gSSdtIHNvcnJ5LCBidXQgdGhpcyBpcyBjb21wbGV0ZWx5IGJv Z3VzIGFuZCBub3QgYWNjZXB0YWJsZS4KPgo+IFRoZSBvbmx5IHBsYWNlIHRoYXQgaXMgYWxsb3dl ZCB0byBpbml0aWFsaXplIHNnX2RtYV9hZGRyZXNzIGlzCj4gZG1hX21hcF9zZy4gIElmIHRoZSBk ZWZhdWx0IGRtYSBvcHMgZG9uJ3Qgd29yayBmb3IgeW91ciBzZXR1cCB3ZSBoYXZlCj4gbWFqb3Ig YSBwcm9ibGVtIGFuZCBuZWVkIHRvIGZpeCB0aGUgZG1hIGFwaSAvIGlvbW11IGludGVncmF0aW9u IGluc3RlYWQKPiBvZiBoYWNraW5nIGFyb3VuZCBpdC4KCkkgYWdyZWUgdGhhdCB0aGUgZG1hL2lv bW11IGludGVncmF0aW9uIGlzIHZlcnkgcHJvYmxlbWF0aWMgZm9yIGRybSAoaW4KcGFydGljdWxh ciwgZ3B1IGRyaXZlcnMgdGhhdCB1c2UgdGhlIGlvbW11IGFzIGFuIGdwdSBtbXUpLi4gIFJlYWxs eSB3ZQpuZWVkIGEgd2F5IHRoYXQgYSBkcml2ZXIgY2FuIG9wdC1vdXQgb2YgdGhpcywgYW5kIGFj Y2VzcyB0aGUgY3B1IGNhY2hlCkFQSXMgZGlyZWN0bHksIHNraXBwaW5nIHRoZSBkbWEgQVBJIGVu dGlyZWx5LiAgQnV0IGFzIGl0IGlzLCB3ZSd2ZSBoYWQKdG8gaGFjayBhcm91bmQgdGhlIGRtYSBB UEkuICBJJ20gbm90IHJlYWxseSBzdXJlIHRoaXMgaGFjayBpcyBhbnkKd29yc2UgdGhhbiBhYnVz aW5nIGRtYV8odW4pbWFwX3NnKCkgZm9yIGRvaW5nIGNhY2hlIG9wZXJhdGlvbnMuCgpJIHByb2Jh Ymx5IHNob3VsZCBoYXZlIHBhaWQgbW9yZSBhdHRlbnRpb24gYW5kIG5haydkIHRoZSBkbWEvaW9t bXUKaW50ZWdyYXRpb24gYmVmb3JlIGl0IGxhbmRlZC4gIEJ1dCBnaXZlbiB0aGF0IG5vdyB3ZSBh cmUgc3R1Y2sgaW4gdGhpcwpzaXR1YXRpb24sIHdoaWxlIEknbSBjZXJ0YWlubHkgaW50ZXJlc3Rl ZCBpZiBhbnlvbmUgaGFzIHNvbWUgaWRlYXMKYWJvdXQgaG93IHRvIGxldCBkcml2ZXJzIG9wdCBv dXQgb2YgdGhlIGRtYS9pb21tdSBpbnRlZ3JhdGlvbiBhbmQKYnlwYXNzIHRoZSBkbWEgQVBJIGxh eWVyLCBJJ20gb2sgd2l0aCByZXBsYWNpbmcgYSBoYWNrIHdpdGggYSBsZXNzLWJhZApoYWNrLgoK QlIsCi1SCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZy ZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo= 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=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED 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 5D4C6C43441 for ; Wed, 28 Nov 2018 12:38:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1D7982086B for ; Wed, 28 Nov 2018 12:38:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dnPev4MJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D7982086B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728269AbeK1Xk2 (ORCPT ); Wed, 28 Nov 2018 18:40:28 -0500 Received: from mail-it1-f194.google.com ([209.85.166.194]:52899 "EHLO mail-it1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727790AbeK1Xk2 (ORCPT ); Wed, 28 Nov 2018 18:40:28 -0500 Received: by mail-it1-f194.google.com with SMTP id i7so4074962iti.2; Wed, 28 Nov 2018 04:38:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2LkPlolDCNEbJcPcn0tERISjVQncXnltlFvA9jTLqKA=; b=dnPev4MJaiM8UOwrDEHufF5KcCpaxs2nqlUXoW9/xKoj4yKU27txDFT68kOXigHdvg 0X+zpk//kxpTpAOPpwb7bBTEZ0ntGQboBBtmlV1ctAkTFMkElxyZuOD3AB9WogaYwHxC gfnKGCINFC6CkiWS9VI/Eyr8ceEOaRw3/ecnWriLVmldimRgoAzcbhOFCAKWI1+j6Thn h2Wuxe/ONFwqWvenQGu+OZrU7DLoGmzbZFIYIfxr6OmIJVBfAZ23yKi4nh5jgTEchI53 CeIVwyVnlpRMuTRm60oJWiy+MrMlwLOB1KOX7BzGRYZHEfed+Xt06fnrmc05fCUi37d7 M3WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2LkPlolDCNEbJcPcn0tERISjVQncXnltlFvA9jTLqKA=; b=g2thbr3+Bsez+UN3IkvQhqyCzXRYSpT9+YJD8HWqywh+8PhBp1wwtEBUzhUPTaCPqz kWX+ve9z30yD+9pNWtLdI8EV+ax2WY8wammRdpX+prckdGYgh+/aWnHBt7OLNbuR+SFB 6gcbVkbzrDGR7alqu0bO15BBK8EJK5ibPJ9S+rD/LE1RirvgF1+SFZNG2VzJxPoTsaKb Gzr18Vgvyzwv5H3769KThham2OurOBmkoyrI1tt7UHxjkuId5odvlxfKhMG7i7mKKsw2 dgy+CoBAmT+aanSwmeZsiZzxitv+SxpsH+c6P/vVZMSFf7j+yH1B9/Myp4K3WllPaIcR tYmQ== X-Gm-Message-State: AA+aEWYBq2xfS/OwsFR3wZBHC9dOYGHz0yep8W1f5uL6BHnV95llcGCM tv8EkNLMUtmEeRRjQlLaQP2gxreXd0O6TJc3oWE= X-Google-Smtp-Source: AFSGD/Wn+ER2VUTvBRSj1i5ym5gWRe4vJsNAXuYmpCCsOjBKHBp3zylxbWKzXsuLOD7qYHfBgPPHXdUxLQqtH2b7tgo= X-Received: by 2002:a02:242b:: with SMTP id f43mr11004385jaa.144.1543408735977; Wed, 28 Nov 2018 04:38:55 -0800 (PST) MIME-Version: 1.0 References: <20181126213710.3084-1-vivek.gautam@codeaurora.org> <20181128073940.GA13072@infradead.org> In-Reply-To: <20181128073940.GA13072@infradead.org> From: Rob Clark Date: Wed, 28 Nov 2018 07:38:44 -0500 Message-ID: Subject: Re: [PATCH v2 1/1] drm: msm: Replace dma_map_sg with dma_sync_sg* To: hch@infradead.org Cc: Vivek Gautam , David Airlie , Tomasz Figa , Linux Kernel Mailing List , freedreno , dri-devel , linux-arm-msm , Jordan Crouse , Sean Paul Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 28, 2018 at 2:39 AM Christoph Hellwig wrote: > > > + /* > > + * dma_sync_sg_*() flush the physical pages, so point > > + * sg->dma_address to the physical ones for the right behavior. > > + */ > > + for_each_sg(msm_obj->sgt->sgl, s, msm_obj->sgt->nents, i) > > + sg_dma_address(s) = sg_phys(s); > > + > > I'm sorry, but this is completely bogus and not acceptable. > > The only place that is allowed to initialize sg_dma_address is > dma_map_sg. If the default dma ops don't work for your setup we have > major a problem and need to fix the dma api / iommu integration instead > of hacking around it. I agree that the dma/iommu integration is very problematic for drm (in particular, gpu drivers that use the iommu as an gpu mmu).. Really we need a way that a driver can opt-out of this, and access the cpu cache APIs directly, skipping the dma API entirely. But as it is, we've had to hack around the dma API. I'm not really sure this hack is any worse than abusing dma_(un)map_sg() for doing cache operations. I probably should have paid more attention and nak'd the dma/iommu integration before it landed. But given that now we are stuck in this situation, while I'm certainly interested if anyone has some ideas about how to let drivers opt out of the dma/iommu integration and bypass the dma API layer, I'm ok with replacing a hack with a less-bad hack. BR, -R