All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Green <andy@warmcat.com>
To: Mark Brown <broonie@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>,
	zhangfei <zhangfei.gao@linaro.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Jingoo Han <jg1.han@samsung.com>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Vinod Koul <vinod.koul@intel.com>,
	Dan Williams <dan.j.williams@intel.com>
Subject: Re: [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api
Date: Thu, 21 Jul 2016 21:12:20 +0800	[thread overview]
Message-ID: <1469106740.24655.65.camel@warmcat.com> (raw)
In-Reply-To: <20160721104000.GM6509@sirena.org.uk>

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

  reply	other threads:[~2016-07-21 13:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-21  3:53 [PATCH 0/7 v3] K3DMA fixes for HiKey HDMI audio John Stultz
2016-07-21  3:53 ` [PATCH 1/7] k3dma: Fix hisi burst clipping John Stultz
2016-07-24  7:25   ` Vinod Koul
2016-07-29 22:40     ` John Stultz
2016-08-04 13:08       ` Vinod Koul
2016-08-04 17:36         ` John Stultz
2016-08-05  3:36           ` Vinod Koul
2016-07-21  3:53 ` [PATCH 2/7] k3dma: Fix dma err offsets John Stultz
2016-07-21  3:53 ` [PATCH 3/7] k3dma: Fix "nobody cared" message seen on any error John Stultz
2016-07-21  3:53 ` [PATCH 4/7] k3dma: Add cyclic mode for audio John Stultz
2016-07-24  7:31   ` Vinod Koul
2016-07-29 22:38     ` John Stultz
2016-07-21  3:53 ` [PATCH 5/7] k3dma: Fix memory handling with cyclic mode John Stultz
2016-07-21  3:53 ` [PATCH 6/7] k3dma: Fix occasional DMA ERR issue by using proper dma api John Stultz
2016-07-21  4:26   ` zhangfei
2016-07-21  5:22     ` John Stultz
2016-07-21  6:27       ` Andy Green
2016-07-21 10:40         ` Mark Brown
2016-07-21 13:12           ` Andy Green [this message]
2016-07-21 16:18         ` John Stultz
2016-07-21 19:57           ` Andy Green
2016-07-21 16:08       ` zhangfei
2016-07-21  3:53 ` [PATCH 7/7] Kconfig: Allow k3dma driver to be selected for more then HISI3xx platforms John Stultz
2016-07-22  6:56   ` kbuild test robot

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=1469106740.24655.65.camel@warmcat.com \
    --to=andy@warmcat.com \
    --cc=broonie@kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=jg1.han@samsung.com \
    --cc=john.stultz@linaro.org \
    --cc=k.kozlowski@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxime.ripard@free-electrons.com \
    --cc=vinod.koul@intel.com \
    --cc=zhangfei.gao@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.