[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(-)