[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