Re: [PATCH 0/7] Switch x86 to generic get_user_pages_fast() implementation

From: Ingo Molnar
Date: Fri Mar 17 2017 - 04:31:16 EST



* Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:

> Hi,
>
> The patcheset generalize mm/gup.c implementation of get_user_pages_fast()
> to be usable for x86 and switches x86 over.
>
> Please review and consider applying.
>
> Kirill A. Shutemov (7):
> mm: Drop arch_pte_access_permitted() mmu hook
> mm/gup: Move permission checks into helpers
> mm/gup: Move page table entry dereference into helper
> mm/gup: Make pages referenced during generic get_user_pages_fast()
> mm/gup: Implement dev_pagemap logic in generic get_user_pages_fast()
> mm/gup: Provide hook to check if __GUP_fast() is allowed for the range
> x86/mm: Switch to generic get_user_page_fast() implementation
>
> arch/powerpc/include/asm/mmu_context.h | 6 -
> arch/s390/include/asm/mmu_context.h | 6 -
> arch/um/include/asm/mmu_context.h | 6 -
> arch/unicore32/include/asm/mmu_context.h | 6 -
> arch/x86/Kconfig | 3 +
> arch/x86/include/asm/mmu_context.h | 16 -
> arch/x86/include/asm/pgtable-3level.h | 45 +++
> arch/x86/include/asm/pgtable.h | 53 ++++
> arch/x86/include/asm/pgtable_64.h | 16 +-
> arch/x86/mm/Makefile | 2 +-
> arch/x86/mm/gup.c | 496 -------------------------------
> include/asm-generic/mm_hooks.h | 6 -
> include/asm-generic/pgtable.h | 25 ++
> include/linux/mm.h | 4 +
> mm/gup.c | 134 +++++++--
> 15 files changed, 262 insertions(+), 562 deletions(-)
> delete mode 100644 arch/x86/mm/gup.c

It fails to build on x86-64 defconfig/allyesconfig/allmodconfig:

mm/gup.c:1422:15: error: implicit declaration of function âpgd_devmapâ [-Werror=implicit-function-declaration]

The PowerPC allnoconfig build broke as well:

/home/mingo/tip/mm/gup.c: In function '__gup_device_huge_pmd':
/home/mingo/tip/mm/gup.c:1319:2: error: implicit declaration of function 'pmd_pfn' [-Werror=implicit-function-declaration]

Please send delta fixes, because I've already done many small readability edits to
the patches.

Thanks,

Ingo