Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1447879

Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api

From Andy Green <andy@warmcat.com>
Newsgroups linux.kernel
Subject Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api
Date 2016-07-21 15:20 +0200
Message-ID <rXm3p-7UG-43@gated-at.bofh.it> (permalink)
References (1 earlier) <rXdjs-25c-17@gated-at.bofh.it> <rXdMt-2xS-1@gated-at.bofh.it> <rXeIy-38y-11@gated-at.bofh.it> <rXfEB-3Gt-7@gated-at.bofh.it> <rXjIe-6iZ-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, 2016-07-21 at 11:40 +0100, Mark Brown wrote:
> On Thu, Jul 21, 2016 at 02:27:02PM +0800, Andy Green wrote:
> > 
> > On July 21, 2016 1:22:02 PM GMT+08:00, John Stultz <john.stultz@lin
> > aro.org> wrote:
> > > 
> > > On Wed, Jul 20, 2016 at 9:26 PM, zhangfei <zhangfei.gao@linaro.or
> > > g>
> 
> Please fix your mail client to word wrap within paragraphs at
> something
> substantially less than 80 columns.  Doing this makes your messages
> much
> easier to read and reply to.
> 
> > 
> > > 
> > > > 
> > > > How about using wmb() flush before start dma to sync desc?
> 
> > 
> > > 
> > > So I'm not going to pretend to be an expert here, but my
> > > understanding
> > > is that wmb() syncrhonizes cpu write ordering operations across
> > > cpus,
> 
> > 
> > IIUI what the memory barrier does is tell the *compiler* to
> > actually
> > do any writes that the code asked for, but which otherwise might
> > actually be deferred past that point.  The compiler doesn't know
> > that
> > buffer area has other hardware snooping it, so by default it feels
> > it
> > can play tricks with what seems to it like just generally deferring
> > spilling registers to memory.  wmb makes sure the compiler's
> > pending
> > writes actually happen right there.  (writel() etc definitions have
> > one built-in, so they always do what you asked when you asked).
> 
> You might be interested in Mark Rutland's talk from ELC (Stale data,
> or
> how we (mis-)manage modern caches):
> 
>     http://events.linuxfoundation.org/sites/events/files/slides/slide
> s_17.pdf

Thanks for the pointer.

That is a somewhat different animal to wmb though: wmb is about
managing when the initiator of the write actualizes it, prior to that
the write does not instantenously exist anywhere and so is not subject
to these coherency nightmares [1].

Also the presentation is from the hw POV only, at the Linux driver
level most of the considerations can be made moot if you just use the
generic Linux DMA or related apis, which thanks to the work of the Arm
Linux gods already knows how to deal with / wrap the issues, plus or
minus.  So it's not as dire as it sounds.

-Andy

[1] The details of some of those nightmares are unfortunately very
familiar to me, since I spent many months where Linux was being blamed
for Mali breakage via CCI on a platform that ultimately had its
problems resolved by tweaks in its secure world...

>     https://www.youtube.com/watch?v=F0SlIMHRnLk

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/7 v3] K3DMA fixes for HiKey HDMI audio John Stultz <john.stultz@linaro.org> - 2016-07-21 06:00 +0200
  [PATCH 4/7] k3dma: Add cyclic mode for audio John Stultz <john.stultz@linaro.org> - 2016-07-21 06:00 +0200
    Re: [PATCH 4/7] k3dma: Add cyclic mode for audio Vinod Koul <vinod.koul@intel.com> - 2016-07-24 09:30 +0200
  [PATCH 7/7] Kconfig: Allow k3dma driver to be selected for more then HISI3xx platforms John Stultz <john.stultz@linaro.org> - 2016-07-21 06:00 +0200
  [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api John Stultz <john.stultz@linaro.org> - 2016-07-21 06:00 +0200
    Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper  dma api zhangfei <zhangfei.gao@linaro.org> - 2016-07-21 06:30 +0200
      Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper  dma api John Stultz <john.stultz@linaro.org> - 2016-07-21 07:30 +0200
        Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api Andy Green <andy@warmcat.com> - 2016-07-21 08:30 +0200
          Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper  dma api Mark Brown <broonie@kernel.org> - 2016-07-21 12:50 +0200
            Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper  dma api Andy Green <andy@warmcat.com> - 2016-07-21 15:20 +0200
          Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper  dma api John Stultz <john.stultz@linaro.org> - 2016-07-21 18:20 +0200
            Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api Andy Green <andy@warmcat.com> - 2016-07-21 22:00 +0200
        Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper  dma api zhangfei <zhangfei.gao@linaro.org> - 2016-07-21 18:10 +0200

csiph-web