All of lore.kernel.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/10] soc/qbman: Add ARM equivalent for flush_dcache_range()
Date: Wed, 01 Feb 2017 13:52:39 +0100	[thread overview]
Message-ID: <17693912.jiBZSyyCNs@wuerfel> (raw)
In-Reply-To: <20170130150428.GY27312@n2100.armlinux.org.uk>

On Monday, January 30, 2017 3:04:28 PM CET Russell King - ARM Linux wrote:
> On Wed, Jan 25, 2017 at 10:20:09PM +0100, Arnd Bergmann wrote:
> > On Monday, January 23, 2017 7:24:59 PM CET Roy Pledge wrote:
> > > > Is there a non-"under the covers" way to say "flush this region" without
> > > > the arch second-guessing whether it really needs to be flushed?
> > > Any advice on how to resolve this? I looked into trying to do a
> > > non-cacheable mapping of the
> > > memory so that the flush wouldn't be required but the ioremap code
> > > prevents mapping normal
> > > memory in this way.  The QMan device requiresthis memory to be zeroed at
> > > startup. Because the device
> > > does non coherent reads and writes to the memory we must ensure that any
> > > cache in the CPU cluster(s)
> > > is flushed in order to prevent a future castout from overwriting data.
> > > This happened before on PPC
> > > platforms and made for some very unfun debug session trying to
> > > understand what was causing the failure.
> > 
> > If this is normal RAM, you should be able to just write zeroes, and then
> > do a dma_map_single() for initialization. Are there any other requirements
> > what to do with the memory later, is it used for communication at all,
> > or just required to be zero?
> 
> Please don't encourage incorrect DMA API usage.
> 
> dma_map_single() must always be paired with an unmap at some point,
> otherwise it's a memory leak if DMA API debugging is enabled.  So,
> if you wish to suggest using dma_map_single(), please also suggest
> where to use dma_unmap_single() too.

The mapping obviously has to exist the whole time the device is in use,
and we should not call dma_unmap_single() until the device is released
by the driver.

Unfortunately it seems we can't use this interface though, as the device
is already configured to a specific reserved memory range, and we can't
just use get_free_pages() here.

	Arnd

  reply	other threads:[~2017-02-01 12:52 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-18 22:39 [PATCH 00/10] fsl/qbman: ARM Enablement Roy Pledge
2017-01-18 22:39 ` [PATCH 01/10] soc/qbman: Use portable mapping for the FQD reserved memory Roy Pledge
2017-01-18 22:39 ` [PATCH 02/10] soc/qbman: Drop set/clear_bits usage Roy Pledge
2017-01-18 22:39 ` [PATCH 03/10] soc/qbman: Drop L1_CACHE_BYTES compile time check Roy Pledge
2017-01-18 22:39 ` [PATCH 04/10] soc/qbman: Fix ARM32 typo Roy Pledge
2017-01-18 22:39 ` [PATCH 05/10] soc/qbman: Rework ioremap() calls for ARM/PPC Roy Pledge
2017-01-18 22:39 ` [PATCH 06/10] soc/qbman: Add ARM equivalent for flush_dcache_range() Roy Pledge
2017-01-18 23:12   ` Russell King - ARM Linux
2017-01-18 23:36     ` Scott Wood
2017-01-23 19:24       ` Roy Pledge
2017-01-25 21:20         ` Arnd Bergmann
2017-01-26  5:08           ` Scott Wood
2017-01-27 16:41             ` Arnd Bergmann
2017-01-28  2:34               ` Scott Wood
2017-01-30 15:31                 ` Robin Murphy
2017-01-30 19:04                   ` Roy Pledge
2017-02-01 13:03                     ` Robin Murphy
2017-02-01 22:51                       ` Scott Wood
2017-02-06 22:26                       ` Roy Pledge
2017-02-06 22:37                         ` Russell King - ARM Linux
2017-02-07 16:44                           ` Roy Pledge
2017-02-07 18:25                             ` Robin Murphy
2017-02-13 21:26                               ` Roy Pledge
2017-03-16  0:43                                 ` Roy Pledge
2017-03-16 20:08                                   ` Scott Wood
2017-03-29 21:19                                     ` Roy Pledge
2017-01-30 15:19               ` Russell King - ARM Linux
2017-02-01 12:47                 ` Arnd Bergmann
2017-02-01 23:16                   ` Russell King - ARM Linux
2017-02-02 17:21                     ` Roy Pledge
2017-01-30 15:04           ` Russell King - ARM Linux
2017-02-01 12:52             ` Arnd Bergmann [this message]
2017-01-30 15:12       ` Russell King - ARM Linux
2017-01-18 22:39 ` [PATCH 07/10] soc/qbman: add QMAN_REV32 Roy Pledge
2017-01-18 22:39 ` [PATCH 08/10] soc/qbman: different register offsets on ARM Roy Pledge
2017-01-18 22:39 ` [PATCH 09/10] soc/qbman: Add missing headers " Roy Pledge
2017-01-18 22:39 ` [PATCH 10/10] fsl/qbman: Enable FSL_LAYERSCAPE config " Roy Pledge

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=17693912.jiBZSyyCNs@wuerfel \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.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.