Thread (12 messages) flat view 12 messages, 3 authors, 2014-03-11
STALE4571d

Revision v2 of 8 in this series.

Revisions (8)
  1. v2 [diff vs current]
  2. v2 [diff vs current]
  3. v2 [diff vs current]
  4. v2 current
  5. v2 [diff vs current]
  6. v3 [diff vs current]
  7. v4 [diff vs current]
  8. v5 [diff vs current]

[RFC PATCH V2 4/4] arm64: mm: implement get_user_pages_fast

From: Steve Capper <hidden>
Date: 2014-02-11 16:13:43

On Tue, Feb 11, 2014 at 03:48:59PM +0000, Catalin Marinas wrote:
On Thu, Feb 06, 2014 at 04:18:51PM +0000, Steve Capper wrote:
quoted
An implementation of get_user_pages_fast for arm64. It is based on the
arm implementation (it has the added ability to walk huge puds) which
is loosely on the PowerPC implementation. We disable interrupts in the
walker to prevent the call_rcu_sched pagetable freeing code from
running under us.

We also explicitly fire an IPI in the Transparent HugePage splitting
case to prevent splits from interfering with the fast_gup walker.
As THP splits are relatively rare, this should not have a noticable
overhead.

Signed-off-by: Steve Capper <redacted>
---
 arch/arm64/include/asm/pgtable.h |   4 +
 arch/arm64/mm/Makefile           |   2 +-
 arch/arm64/mm/gup.c              | 297 +++++++++++++++++++++++++++++++++++++++
Why don't you make a generic gup.c implementation and let architectures
select it? I don't see much arm64-specific code in here.
Certainly ARM and ARM64 will happily share the code and other
architectures use basically the same technique in most places so could
probably make use of a tweaked version.

I'll generalise gup.c in the next revision of this series.

Cheers,
-- 
Steve
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help