linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/2] Implement get_user_pages_fast for ARM
@ 2013-10-18 13:07 Steve Capper
  2013-10-18 13:07 ` [RFC PATCH 1/2] thp: Introduce arch_(un)block_thp_split Steve Capper
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Steve Capper @ 2013-10-18 13:07 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: Andrea Arcangeli, Christoffer Dall, Will Deacon, Russell King,
	Zi Shen Lim, patches, linaro-kernel, Steve Capper

This patch series implements get_user_pages_fast on ARM. Unlike other
architectures, we do not use IPIs/disabled IRQs as a blocking
mechanism to protect the page table walker. Instead an atomic counter
is used to indicate how many fast gup walkers are active on an address
space, and any code that would cause them problems (THP splitting or
code that could free a page table page) spins on positive values of
this counter.

This series also addresses an assumption made in kernel/futex.c that
THP page splitting can be blocked by disabling the IRQs on a processor
by introducing arch_block_thp_split and arch_unblock_thp_split.

As well as fixing a problem where futexes on THP tails cause hangs on
ARM, I expect this series to also be beneficial for direct-IO, and for
KVM (the hva_to_pfn fast path uses __get_user_pages_fast).

Any comments would be greatly appreciated.

Steve Capper (2):
  thp: Introduce arch_(un)block_thp_split
  arm: mm: implement get_user_pages_fast

 arch/arm/include/asm/mmu.h            |   1 +
 arch/arm/include/asm/pgalloc.h        |   9 ++
 arch/arm/include/asm/pgtable-2level.h |   1 +
 arch/arm/include/asm/pgtable-3level.h |  21 +++
 arch/arm/include/asm/pgtable.h        |  18 +++
 arch/arm/include/asm/tlb.h            |   8 ++
 arch/arm/mm/Makefile                  |   2 +-
 arch/arm/mm/gup.c                     | 234 ++++++++++++++++++++++++++++++++++
 include/linux/huge_mm.h               |  16 +++
 kernel/futex.c                        |   6 +-
 10 files changed, 312 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm/mm/gup.c

-- 
1.8.1.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-10-29 19:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-18 13:07 [RFC PATCH 0/2] Implement get_user_pages_fast for ARM Steve Capper
2013-10-18 13:07 ` [RFC PATCH 1/2] thp: Introduce arch_(un)block_thp_split Steve Capper
2013-10-18 13:07 ` [RFC PATCH 2/2] arm: mm: implement get_user_pages_fast Steve Capper
2013-10-29 19:49 ` [RFC PATCH 0/2] Implement get_user_pages_fast for ARM Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).