linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Rob Clark <robdclark@gmail.com>
Cc: hch@lst.de, Daniel Vetter <daniel@ffwll.ch>,
	David Airlie <airlied@linux.ie>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Tomasz Figa <tfiga@chromium.org>,
	Sean Paul <seanpaul@chromium.org>,
	Vivek Gautam <vivek.gautam@codeaurora.org>,
	freedreno <freedreno@lists.freedesktop.org>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH v3 1/1] drm: msm: Replace dma_map_sg with dma_sync_sg*
Date: Fri, 30 Nov 2018 10:35:41 +0100	[thread overview]
Message-ID: <20181130093541.GA21436@lst.de> (raw)
In-Reply-To: <CAF6AEGsS6LnuoL9+_LsKLOWxKF6P0nTrxs7b0j0Kqnqz6tmocw@mail.gmail.com>

On Thu, Nov 29, 2018 at 08:15:23PM -0500, Rob Clark wrote:
> As far as hiding cache ops behind iommu layer, I guess I'd been
> thinking more of just letting the drivers that want to bypass dma
> layer take things into their own hands.. tbh I think/assume/hope
> drm/msm is more the exception than the rule as far as needing to
> bypass the dma layer.  Or at least I guess the # of drivers having
> problems w/ the dma layer is less than the # of iommu drivers.

So the whole bypass thing has already been a contentious discussion
in the past.  One thing that the API aready enforces is that we pass
a DMA direction, which I want to keep.  The other is that we need
a struct device (or something similiar) that is used to check if the
device is cache coherent or not.  In your MSM case you might know that,
but in general it really is a platform issue that I don't want every
driver to know about.

> (Not sure if that changes my thoughts on this patch, it isn't like
> what this patch replaces isn't also a problematic hack around the
> inability to bypass the dma layer.  In the short term I just want
> *something* that works, I'm totally happy to refactor later when there
> are better options.)

The current patch is simply broken.  You can't just construct your
own S/G list and pass it to the DMA API, and we enforce that very
strictly with dma debug enabled.

So your only options are: a) actually use the DMA API for creating
the mapping, by e.g. using dma_direct_ops ontop of an actual IOMMU
managed in the background, or b) figure out a way to do cache
maintainance for raw IOMMU API drivers.

  reply	other threads:[~2018-11-30  9:35 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 14:03 [PATCH v3 1/1] drm: msm: Replace dma_map_sg with dma_sync_sg* Vivek Gautam
2018-11-29 14:14 ` Christoph Hellwig
2018-11-29 14:25   ` Rob Clark
2018-11-29 14:42     ` Rob Clark
2018-11-29 15:54       ` Christoph Hellwig
2018-11-29 18:48         ` Rob Clark
2018-11-29 19:40           ` Jordan Crouse
2018-11-29 19:57             ` Tomasz Figa
2018-11-29 20:03               ` Robin Murphy
2018-11-30  0:23                 ` Tomasz Figa
2018-12-01  2:05                   ` Tomasz Figa
2018-12-01 11:46                     ` Rob Clark
2018-12-03  0:12                       ` Tomasz Figa
2018-11-29 14:43     ` Daniel Vetter
2018-11-29 15:57       ` Christoph Hellwig
2018-11-29 16:28         ` Daniel Vetter
2018-11-29 16:57           ` Christoph Hellwig
2018-11-29 17:09             ` Daniel Vetter
2018-11-29 17:24               ` Tomasz Figa
2018-11-29 18:35                 ` Christoph Hellwig
2018-11-29 18:57                 ` Rob Clark
2018-11-30  9:40                   ` Daniel Vetter
2018-11-30  9:35                 ` Daniel Vetter
2018-11-30  9:44                   ` Christoph Hellwig
2018-11-29 18:33               ` Christoph Hellwig
2018-11-30  9:46                 ` Daniel Vetter
2018-12-07  1:38                   ` Christoph Hellwig
2018-12-07 14:29                     ` Rob Clark
2018-11-29 17:33             ` Brian Starkey
2018-11-29 18:35               ` Christoph Hellwig
2018-11-30  1:15         ` Rob Clark
2018-11-30  9:35           ` Christoph Hellwig [this message]
2018-11-29 15:53     ` Christoph Hellwig
2018-11-29 18:44       ` Rob Clark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181130093541.GA21436@lst.de \
    --to=hch@lst.de \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=seanpaul@chromium.org \
    --cc=tfiga@chromium.org \
    --cc=vivek.gautam@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).