All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Jesse Barnes <jbarnes@virtuousgeek.org>,
	KyongHo Cho <pullip.cho@samsung.com>
Cc: "Russell King - ARM Linux" <linux@arm.linux.org.uk>,
	Thomas Hellstrom <thellstrom@vmware.com>,
	FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linux-kernel@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>
Subject: Re: [Linaro-mm-sig] [RFC] ARM DMA mapping TODO, v1
Date: Fri, 29 Apr 2011 20:29:50 +0200	[thread overview]
Message-ID: <201104292029.50680.arnd@arndb.de> (raw)
In-Reply-To: <20110429093209.1926c732@jbarnes-desktop>

On Friday 29 April 2011 18:32:09 Jesse Barnes wrote:
> On Fri, 29 Apr 2011 08:59:58 +0100
> Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
> 
> > On Fri, Apr 29, 2011 at 07:50:12AM +0200, Thomas Hellstrom wrote:
> > > However, we should be able to construct a completely generic api around  
> > > these operations, and for architectures that don't support them we need  
> > > to determine
> > >
> > > a)  Whether we want to support them anyway (IIRC the problem with PPC is  
> > > that the linear kernel map has huge tlb entries that are very  
> > > inefficient to break up?)
> > 
> > That same issue applies to ARM too - you'd need to stop the entire
> > machine, rewrite all processes page tables, flush tlbs, and only
> > then restart.  Otherwise there's the possibility of ending up with
> > conflicting types of TLB entries, and I'm not sure what the effect
> > of having two matching TLB entries for the same address would be.
> 
> Right, I don't think anyone wants to see this sort of thing happen with
> any frequency.  So either a large, uncached region can be set up a boot
> time for allocations, or infrequent, large requests and conversions can
> be made on demand, with memory being freed back to the main, coherent
> pool under pressure.

I'd like to first have an official confirmation from the CPU designers
if there is actually a problem with mapping a single page both cacheable
and noncacheable. Based on what Catalin said, it's probably allowed and
the current spec is just being more paranoid than it needs to be. Also,
KyongHo Cho said that it might only be relevant for pages that are mapped
executable.

If that is the case, we can probably work around this by turning the entire
linear mapping (except for the kernel binary) into nonexecutable mode,
if we don't do that already.
This is desirable for security purposes anyway.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [Linaro-mm-sig] [RFC] ARM DMA mapping TODO, v1
Date: Fri, 29 Apr 2011 20:29:50 +0200	[thread overview]
Message-ID: <201104292029.50680.arnd@arndb.de> (raw)
In-Reply-To: <20110429093209.1926c732@jbarnes-desktop>

On Friday 29 April 2011 18:32:09 Jesse Barnes wrote:
> On Fri, 29 Apr 2011 08:59:58 +0100
> Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
> 
> > On Fri, Apr 29, 2011 at 07:50:12AM +0200, Thomas Hellstrom wrote:
> > > However, we should be able to construct a completely generic api around  
> > > these operations, and for architectures that don't support them we need  
> > > to determine
> > >
> > > a)  Whether we want to support them anyway (IIRC the problem with PPC is  
> > > that the linear kernel map has huge tlb entries that are very  
> > > inefficient to break up?)
> > 
> > That same issue applies to ARM too - you'd need to stop the entire
> > machine, rewrite all processes page tables, flush tlbs, and only
> > then restart.  Otherwise there's the possibility of ending up with
> > conflicting types of TLB entries, and I'm not sure what the effect
> > of having two matching TLB entries for the same address would be.
> 
> Right, I don't think anyone wants to see this sort of thing happen with
> any frequency.  So either a large, uncached region can be set up a boot
> time for allocations, or infrequent, large requests and conversions can
> be made on demand, with memory being freed back to the main, coherent
> pool under pressure.

I'd like to first have an official confirmation from the CPU designers
if there is actually a problem with mapping a single page both cacheable
and noncacheable. Based on what Catalin said, it's probably allowed and
the current spec is just being more paranoid than it needs to be. Also,
KyongHo Cho said that it might only be relevant for pages that are mapped
executable.

If that is the case, we can probably work around this by turning the entire
linear mapping (except for the kernel binary) into nonexecutable mode,
if we don't do that already.
This is desirable for security purposes anyway.

	Arnd

  reply	other threads:[~2011-04-29 18:30 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-21 19:29 [RFC] ARM DMA mapping TODO, v1 Arnd Bergmann
2011-04-21 19:29 ` Arnd Bergmann
2011-04-21 20:09 ` [Linaro-mm-sig] " Jesse Barnes
2011-04-21 20:09   ` Jesse Barnes
2011-04-21 21:52   ` Zach Pfeffer
2011-04-21 21:52     ` Zach Pfeffer
2011-04-22  0:34     ` KyongHo Cho
2011-04-22  0:34       ` KyongHo Cho
2011-04-26 14:29       ` Arnd Bergmann
2011-04-26 14:29         ` Arnd Bergmann
2011-04-26 14:28     ` Arnd Bergmann
2011-04-26 14:28       ` Arnd Bergmann
2011-04-26 14:26   ` Arnd Bergmann
2011-04-26 14:26     ` Arnd Bergmann
2011-04-26 15:39     ` Jesse Barnes
2011-04-26 15:39       ` Jesse Barnes
2011-04-27  7:35 ` Russell King - ARM Linux
2011-04-27  7:35   ` Russell King - ARM Linux
2011-04-27  8:56   ` Arnd Bergmann
2011-04-27  8:56     ` Arnd Bergmann
2011-04-27  9:09     ` Russell King - ARM Linux
2011-04-27  9:09       ` Russell King - ARM Linux
2011-04-27 11:02       ` Arnd Bergmann
2011-04-27 11:02         ` Arnd Bergmann
2011-04-27 16:16         ` [Linaro-mm-sig] " Alex Deucher
2011-04-27 16:16           ` Alex Deucher
2011-04-27 17:44           ` Anca Emanuel
2011-04-27 17:44             ` Anca Emanuel
2011-04-27 20:27             ` Russell King - ARM Linux
2011-04-27 20:27               ` Russell King - ARM Linux
2011-04-27 20:16         ` Russell King - ARM Linux
2011-04-27 20:16           ` Russell King - ARM Linux
2011-04-27 20:21           ` Arnd Bergmann
2011-04-27 20:21             ` Arnd Bergmann
2011-04-27 20:26             ` Russell King - ARM Linux
2011-04-27 20:26               ` Russell King - ARM Linux
2011-04-27 20:48               ` Arnd Bergmann
2011-04-27 20:48                 ` Arnd Bergmann
2011-04-27 21:41               ` Benjamin Herrenschmidt
2011-04-27 21:41                 ` Benjamin Herrenschmidt
2011-04-28  9:30                 ` Russell King - ARM Linux
2011-04-28  9:30                   ` Russell King - ARM Linux
2011-04-28 21:07                   ` Benjamin Herrenschmidt
2011-04-28 21:07                     ` Benjamin Herrenschmidt
2011-04-29 11:26                     ` Arnd Bergmann
2011-04-29 11:26                       ` Arnd Bergmann
2011-04-29 11:47                       ` Benjamin Herrenschmidt
2011-04-29 11:47                         ` Benjamin Herrenschmidt
2011-04-29 11:56                       ` Alan Cox
2011-04-29 11:56                         ` Alan Cox
2011-04-29 22:51                         ` Benjamin Herrenschmidt
2011-04-29 22:51                           ` Benjamin Herrenschmidt
2011-04-29 12:06                       ` [Linaro-mm-sig] " Thomas Hellstrom
2011-04-29 12:06                         ` Thomas Hellstrom
2011-04-29 13:34                         ` Jerome Glisse
2011-04-29 13:34                           ` Jerome Glisse
2011-04-29 22:55                           ` Benjamin Herrenschmidt
2011-04-29 22:55                             ` Benjamin Herrenschmidt
2011-04-29 22:53                         ` Benjamin Herrenschmidt
2011-04-29 22:53                           ` Benjamin Herrenschmidt
2011-04-27 10:51     ` Marek Szyprowski
2011-04-27 10:51       ` Marek Szyprowski
2011-04-27 21:37   ` Benjamin Herrenschmidt
2011-04-27 21:37     ` Benjamin Herrenschmidt
2011-04-28  6:40     ` [Linaro-mm-sig] " Arnd Bergmann
2011-04-28  6:40       ` Arnd Bergmann
2011-04-28  6:46       ` FUJITA Tomonori
2011-04-28  6:46         ` FUJITA Tomonori
2011-04-28  9:37     ` Russell King - ARM Linux
2011-04-28  9:37       ` Russell King - ARM Linux
2011-04-28 10:32       ` [Linaro-mm-sig] " Marek Szyprowski
2011-04-28 10:32         ` Marek Szyprowski
2011-04-28 10:51         ` Russell King - ARM Linux
2011-04-28 10:51           ` Russell King - ARM Linux
2011-04-28 12:28           ` Arnd Bergmann
2011-04-28 12:28             ` Arnd Bergmann
2011-04-28 13:15             ` Russell King - ARM Linux
2011-04-28 13:15               ` Russell King - ARM Linux
2011-04-28 14:29               ` Arnd Bergmann
2011-04-28 14:29                 ` Arnd Bergmann
2011-04-28 14:34                 ` Russell King - ARM Linux
2011-04-28 14:34                   ` Russell King - ARM Linux
2011-04-28 14:39                   ` Arnd Bergmann
2011-04-28 14:39                     ` Arnd Bergmann
2011-04-28 14:58                     ` Russell King - ARM Linux
2011-04-28 14:58                       ` Russell King - ARM Linux
2011-04-28 19:37                   ` Jerome Glisse
2011-04-28 19:37                     ` Jerome Glisse
2011-04-29  0:29                     ` Benjamin Herrenschmidt
2011-04-29  0:29                       ` Benjamin Herrenschmidt
2011-04-29  5:50                       ` Thomas Hellstrom
2011-04-29  5:50                         ` Thomas Hellstrom
2011-04-29  7:35                         ` Benjamin Herrenschmidt
2011-04-29  7:35                           ` Benjamin Herrenschmidt
2011-04-29 10:55                           ` Thomas Hellstrom
2011-04-29 10:55                             ` Thomas Hellstrom
2011-04-29 22:50                             ` Benjamin Herrenschmidt
2011-04-29 22:50                               ` Benjamin Herrenschmidt
2011-04-29 16:27                           ` Jesse Barnes
2011-04-29 16:27                             ` Jesse Barnes
2011-04-29 22:46                             ` Benjamin Herrenschmidt
2011-04-29 22:46                               ` Benjamin Herrenschmidt
2011-04-30  2:45                               ` Jesse Barnes
2011-04-30  2:45                                 ` Jesse Barnes
2011-04-29  7:59                         ` Russell King - ARM Linux
2011-04-29  7:59                           ` Russell King - ARM Linux
2011-04-29 16:32                           ` Jesse Barnes
2011-04-29 16:32                             ` Jesse Barnes
2011-04-29 18:29                             ` Arnd Bergmann [this message]
2011-04-29 18:29                               ` Arnd Bergmann
2011-04-29 22:15                               ` Russell King - ARM Linux
2011-04-29 22:15                                 ` Russell King - ARM Linux
2011-05-02  4:42                                 ` David Brown
2011-05-02  4:42                                   ` David Brown
2011-05-02 11:26                                   ` Arnd Bergmann
2011-05-02 11:26                                     ` Arnd Bergmann
2011-04-29 22:37                               ` Benjamin Herrenschmidt
2011-04-29 22:37                                 ` Benjamin Herrenschmidt
2011-04-29 13:42                     ` Joerg Roedel
2011-04-29 13:42                       ` Joerg Roedel
2011-04-29 14:19                       ` Jerome Glisse
2011-04-29 14:19                         ` Jerome Glisse
2011-04-29 15:37                       ` Jordan Crouse
2011-04-29 15:37                         ` Jordan Crouse
2011-04-28 14:38                 ` FUJITA Tomonori
2011-04-28 14:38                   ` FUJITA Tomonori
2011-04-29  0:25               ` Benjamin Herrenschmidt
2011-04-29  0:25                 ` Benjamin Herrenschmidt
2011-04-29 11:21                 ` Arnd Bergmann
2011-04-29 11:21                   ` Arnd Bergmann
2011-04-28 10:41   ` Joerg Roedel
2011-04-28 10:41     ` Joerg Roedel
2011-04-28 11:01     ` Russell King - ARM Linux
2011-04-28 11:01       ` Russell King - ARM Linux
2011-04-28 12:25       ` Joerg Roedel
2011-04-28 12:25         ` Joerg Roedel
2011-04-28 12:42         ` Russell King - ARM Linux
2011-04-28 12:42           ` Russell King - ARM Linux
2011-04-28 12:59           ` Joerg Roedel
2011-04-28 12:59             ` Joerg Roedel
2011-04-28 13:02           ` Arnd Bergmann
2011-04-28 13:02             ` Arnd Bergmann
2011-04-28 13:19             ` Russell King - ARM Linux
2011-04-28 13:19               ` Russell King - ARM Linux
2011-04-28 13:56               ` Joerg Roedel
2011-04-28 13:56                 ` Joerg Roedel
2011-04-28 14:30                 ` Russell King - ARM Linux
2011-04-28 14:30                   ` Russell King - ARM Linux
2011-04-27  9:52 ` Catalin Marinas
2011-04-27  9:52   ` Catalin Marinas
2011-04-27 10:43   ` Arnd Bergmann
2011-04-27 10:43     ` Arnd Bergmann
2011-04-27 11:08     ` Catalin Marinas
2011-04-27 11:08       ` Catalin Marinas
2011-04-28  0:15       ` Valdis.Kletnieks
2011-04-28  0:15         ` Valdis.Kletnieks at vt.edu
2011-04-28  8:27         ` Catalin Marinas
2011-04-28  8:27           ` Catalin Marinas
2011-04-28 12:12           ` Arnd Bergmann
2011-04-28 12:12             ` Arnd Bergmann
2011-04-28 12:36             ` Russell King - ARM Linux
2011-04-28 12:36               ` Russell King - ARM Linux
2011-04-28 12:48               ` Arnd Bergmann
2011-04-28 12:48                 ` Arnd Bergmann
2011-05-03 14:45             ` Dave Martin
2011-05-03 14:45               ` Dave Martin
2011-04-29 15:41       ` [Linaro-mm-sig] " Arnd Bergmann
2011-04-29 15:41         ` Arnd Bergmann
2011-04-29 16:42         ` Catalin Marinas
2011-04-29 16:42           ` Catalin Marinas
2011-05-03 15:05     ` [Linaro-mm-sig] " Laurent Pinchart
2011-05-03 15:05       ` Laurent Pinchart
2011-05-03 15:31       ` Arnd Bergmann
2011-05-03 15:31         ` Arnd Bergmann
2011-04-27 14:06   ` FUJITA Tomonori
2011-04-27 14:06     ` FUJITA Tomonori
2011-04-27 14:29     ` Catalin Marinas
2011-04-27 14:29       ` Catalin Marinas
2011-04-27 14:34       ` FUJITA Tomonori
2011-04-27 14:34         ` FUJITA Tomonori
2011-04-27 20:29     ` Russell King - ARM Linux
2011-04-27 20:29       ` Russell King - ARM Linux
2011-04-27 21:45   ` Benjamin Herrenschmidt
2011-04-27 21:45     ` Benjamin Herrenschmidt
2011-04-28  7:24     ` [Linaro-mm-sig] " KyongHo Cho
2011-04-28  7:24       ` KyongHo Cho
2011-04-28  8:31     ` Catalin Marinas
2011-04-28  8:31       ` Catalin Marinas
2011-04-27 21:31 ` Benjamin Herrenschmidt
2011-04-27 21:31   ` Benjamin Herrenschmidt
2011-04-28  9:42   ` Russell King - ARM Linux
2011-04-28  9:42     ` Russell King - ARM Linux
2011-04-28 10:27 ` Joerg Roedel
2011-04-28 10:27   ` Joerg Roedel
2011-04-28 12:15   ` Arnd Bergmann
2011-04-28 12:15     ` Arnd Bergmann
2011-05-03 14:35 [Linaro-mm-sig] " Laurent Pinchart
2011-05-03 14:35 ` Laurent Pinchart

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=201104292029.50680.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=catalin.marinas@arm.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=jbarnes@virtuousgeek.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=pullip.cho@samsung.com \
    --cc=thellstrom@vmware.com \
    /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.