[PATCH v2 0/4] arm: support get_user_pages_fast
From: Miles Chen
Date: Fri Oct 23 2020 - 05:15:01 EST
get_user_pages_fast helps app's launching time because it could reduce
mmap_sem lock contentions when app is launching.
Minchan posted a RFC patch and patch v1 [1] in 2018 and currently he has no
bandwidth to rework this patch, so I rebase Minchan's patch
(arm: support get_user_pages_fast) and modify the patch according
to Catalin's comment and re-post this patch.
First, to use generic get_user_pages_fast code, use strict mm type in
pgtable-2level-types.
2nd patch: reorder memory type table to use 5th bit of the page table
3rd patch: introduces L_PTE_SPECIAL for arm so that last patch can
support get_user_pags_fast.
4th patch: remove L_PTE_MT_VECTORS and use read-only type.
[1] https://lore.kernel.org/patchwork/cover/986573/
Change since v1:
* modify comment
* remove L_PTE_MT_VECTORS and use read-only type
Change since RFC:
* Remove CPU_v7M - Catalin
* define DEV_NONSHARED to SHARED - Catalin
* https://lkml.kernel.org/r/20180910165011.zcighyuabshsmxjb@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Miles Chen (2):
arm: mm: use strict p[gum]d types
arm: replace vector mem type with read-only type
Minchan Kim (2):
arm: mm: reordering memory type table
arm: mm: introduce L_PTE_SPECIAL
arch/arm/Kconfig | 4 ++--
arch/arm/include/asm/fixmap.h | 6 ++---
arch/arm/include/asm/pgtable-2level-types.h | 26 ---------------------
arch/arm/include/asm/pgtable-2level.h | 22 +++++++++++++----
arch/arm/include/asm/pgtable-3level.h | 6 -----
arch/arm/include/asm/pgtable.h | 13 +++++++++++
arch/arm/mm/mmu.c | 7 +++---
arch/arm/mm/proc-macros.S | 2 +-
8 files changed, 40 insertions(+), 46 deletions(-)