forked from Minki/linux
asm-generic/tlb: rename HAVE_RCU_TABLE_FREE
Towards a more consistent naming scheme. [akpm@linux-foundation.org: fix sparc64 Kconfig] Link: http://lkml.kernel.org/r/20200116064531.483522-7-aneesh.kumar@linux.ibm.com Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
27796d03c9
commit
ff2e6d7259
@ -393,7 +393,7 @@ config HAVE_ARCH_JUMP_LABEL
|
||||
config HAVE_ARCH_JUMP_LABEL_RELATIVE
|
||||
bool
|
||||
|
||||
config HAVE_RCU_TABLE_FREE
|
||||
config MMU_GATHER_RCU_TABLE_FREE
|
||||
bool
|
||||
|
||||
config HAVE_MMU_GATHER_PAGE_SIZE
|
||||
|
@ -102,7 +102,7 @@ config ARM
|
||||
select HAVE_PERF_EVENTS
|
||||
select HAVE_PERF_REGS
|
||||
select HAVE_PERF_USER_STACK_DUMP
|
||||
select HAVE_RCU_TABLE_FREE if SMP && ARM_LPAE
|
||||
select MMU_GATHER_RCU_TABLE_FREE if SMP && ARM_LPAE
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_RSEQ
|
||||
select HAVE_STACKPROTECTOR
|
||||
|
@ -37,7 +37,7 @@ static inline void __tlb_remove_table(void *_table)
|
||||
|
||||
#include <asm-generic/tlb.h>
|
||||
|
||||
#ifndef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifndef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
#define tlb_remove_table(tlb, entry) tlb_remove_page(tlb, entry)
|
||||
#endif
|
||||
|
||||
|
@ -165,7 +165,7 @@ config ARM64
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_FUNCTION_ARG_ACCESS_API
|
||||
select HAVE_FUTEX_CMPXCHG if FUTEX
|
||||
select HAVE_RCU_TABLE_FREE
|
||||
select MMU_GATHER_RCU_TABLE_FREE
|
||||
select HAVE_RSEQ
|
||||
select HAVE_STACKPROTECTOR
|
||||
select HAVE_SYSCALL_TRACEPOINTS
|
||||
|
@ -222,7 +222,7 @@ config PPC
|
||||
select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
select HAVE_PERF_REGS
|
||||
select HAVE_PERF_USER_STACK_DUMP
|
||||
select HAVE_RCU_TABLE_FREE
|
||||
select MMU_GATHER_RCU_TABLE_FREE
|
||||
select HAVE_MMU_GATHER_PAGE_SIZE
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_RELIABLE_STACKTRACE if PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN
|
||||
|
@ -169,7 +169,7 @@ config S390
|
||||
select HAVE_OPROFILE
|
||||
select HAVE_PCI
|
||||
select HAVE_PERF_EVENTS
|
||||
select HAVE_RCU_TABLE_FREE
|
||||
select MMU_GATHER_RCU_TABLE_FREE
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_RELIABLE_STACKTRACE
|
||||
select HAVE_RSEQ
|
||||
|
@ -64,7 +64,7 @@ config SPARC64
|
||||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_KPROBES
|
||||
select HAVE_RCU_TABLE_FREE if SMP
|
||||
select MMU_GATHER_RCU_TABLE_FREE if SMP
|
||||
select HAVE_MEMBLOCK_NODE_MAP
|
||||
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
||||
select HAVE_DYNAMIC_FTRACE
|
||||
|
@ -33,7 +33,7 @@ void flush_tlb_pending(void);
|
||||
* and therefore we don't need a TLBI when freeing page-table pages.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
#define tlb_needs_table_invalidate() (false)
|
||||
#endif
|
||||
|
||||
|
@ -203,7 +203,7 @@ config X86
|
||||
select HAVE_PCI
|
||||
select HAVE_PERF_REGS
|
||||
select HAVE_PERF_USER_STACK_DUMP
|
||||
select HAVE_RCU_TABLE_FREE if PARAVIRT
|
||||
select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
|
||||
select HAVE_FUNCTION_ARG_ACCESS_API
|
||||
|
@ -29,8 +29,8 @@ static inline void tlb_flush(struct mmu_gather *tlb)
|
||||
* shootdown, enablement code for several hypervisors overrides
|
||||
* .flush_tlb_others hook in pv_mmu_ops and implements it by issuing
|
||||
* a hypercall. To keep software pagetable walkers safe in this case we
|
||||
* switch to RCU based table free (HAVE_RCU_TABLE_FREE). See the comment
|
||||
* below 'ifdef CONFIG_HAVE_RCU_TABLE_FREE' in include/asm-generic/tlb.h
|
||||
* switch to RCU based table free (MMU_GATHER_RCU_TABLE_FREE). See the comment
|
||||
* below 'ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE' in include/asm-generic/tlb.h
|
||||
* for more details.
|
||||
*/
|
||||
static inline void __tlb_remove_table(void *table)
|
||||
|
@ -126,7 +126,7 @@
|
||||
* This ensures we call tlb_flush() every time tlb_change_page_size() actually
|
||||
* changes the size and provides mmu_gather::page_size to tlb_flush().
|
||||
*
|
||||
* HAVE_RCU_TABLE_FREE
|
||||
* MMU_GATHER_RCU_TABLE_FREE
|
||||
*
|
||||
* This provides tlb_remove_table(), to be used instead of tlb_remove_page()
|
||||
* for page directores (__p*_free_tlb()). This provides separate freeing of
|
||||
@ -142,7 +142,7 @@
|
||||
* Use this if your architecture lacks an efficient flush_tlb_range().
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
/*
|
||||
* Semi RCU freeing of the page directories.
|
||||
*
|
||||
@ -193,10 +193,10 @@ extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
|
||||
#else
|
||||
|
||||
#ifdef tlb_needs_table_invalidate
|
||||
#error tlb_needs_table_invalidate() requires HAVE_RCU_TABLE_FREE
|
||||
#error tlb_needs_table_invalidate() requires MMU_GATHER_RCU_TABLE_FREE
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
|
||||
#endif /* CONFIG_MMU_GATHER_RCU_TABLE_FREE */
|
||||
|
||||
|
||||
#ifndef CONFIG_HAVE_MMU_GATHER_NO_GATHER
|
||||
@ -235,7 +235,7 @@ extern bool __tlb_remove_page_size(struct mmu_gather *tlb, struct page *page,
|
||||
struct mmu_gather {
|
||||
struct mm_struct *mm;
|
||||
|
||||
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
struct mmu_table_batch *batch;
|
||||
#endif
|
||||
|
||||
|
2
mm/gup.c
2
mm/gup.c
@ -1792,7 +1792,7 @@ EXPORT_SYMBOL(get_user_pages_unlocked);
|
||||
* Before activating this code, please be aware that the following assumptions
|
||||
* are currently made:
|
||||
*
|
||||
* *) Either HAVE_RCU_TABLE_FREE is enabled, and tlb_remove_table() is used to
|
||||
* *) Either MMU_GATHER_RCU_TABLE_FREE is enabled, and tlb_remove_table() is used to
|
||||
* free pages containing page tables or TLB flushing requires IPI broadcast.
|
||||
*
|
||||
* *) ptes can be read atomically by the architecture.
|
||||
|
@ -91,7 +91,7 @@ bool __tlb_remove_page_size(struct mmu_gather *tlb, struct page *page, int page_
|
||||
|
||||
#endif /* HAVE_MMU_GATHER_NO_GATHER */
|
||||
|
||||
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
|
||||
/*
|
||||
* See the comment near struct mmu_table_batch.
|
||||
@ -173,11 +173,11 @@ void tlb_remove_table(struct mmu_gather *tlb, void *table)
|
||||
tlb_table_flush(tlb);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
|
||||
#endif /* CONFIG_MMU_GATHER_RCU_TABLE_FREE */
|
||||
|
||||
static void tlb_flush_mmu_free(struct mmu_gather *tlb)
|
||||
{
|
||||
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
tlb_table_flush(tlb);
|
||||
#endif
|
||||
#ifndef CONFIG_HAVE_MMU_GATHER_NO_GATHER
|
||||
@ -220,7 +220,7 @@ void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm,
|
||||
tlb->batch_count = 0;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
|
||||
#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
|
||||
tlb->batch = NULL;
|
||||
#endif
|
||||
#ifdef CONFIG_HAVE_MMU_GATHER_PAGE_SIZE
|
||||
|
Loading…
Reference in New Issue
Block a user