diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-26 16:17:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-26 16:17:17 -0400 |
commit | 4cb38750d49010ae72e718d46605ac9ba5a851b4 (patch) | |
tree | 8c991a900fd176288f4acbc340512b90d604374d /include/asm-generic | |
parent | 0a2fe19ccc4bc552a8083a595a3aa737b8bea727 (diff) | |
parent | 7efa1c87963d23cc57ba40c07316d3e28cc75a3a (diff) |
Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86/mm changes from Peter Anvin:
"The big change here is the patchset by Alex Shi to use INVLPG to flush
only the affected pages when we only need to flush a small page range.
It also removes the special INVALIDATE_TLB_VECTOR interrupts (32
vectors!) and replace it with an ordinary IPI function call."
Fix up trivial conflicts in arch/x86/include/asm/apic.h (added code next
to changed line)
* 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/tlb: Fix build warning and crash when building for !SMP
x86/tlb: do flush_tlb_kernel_range by 'invlpg'
x86/tlb: replace INVALIDATE_TLB_VECTOR by CALL_FUNCTION_VECTOR
x86/tlb: enable tlb flush range support for x86
mm/mmu_gather: enable tlb flush range in generic mmu_gather
x86/tlb: add tlb_flushall_shift knob into debugfs
x86/tlb: add tlb_flushall_shift for specific CPU
x86/tlb: fall back to flush all when meet a THP large page
x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range
x86/tlb_info: get last level TLB entry number of CPU
x86: Add read_mostly declaration/definition to variables from smp.h
x86: Define early read-mostly per-cpu macros
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/tlb.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index f96a5b58a975..ed6642ad03e0 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h | |||
@@ -86,6 +86,8 @@ struct mmu_gather { | |||
86 | #ifdef CONFIG_HAVE_RCU_TABLE_FREE | 86 | #ifdef CONFIG_HAVE_RCU_TABLE_FREE |
87 | struct mmu_table_batch *batch; | 87 | struct mmu_table_batch *batch; |
88 | #endif | 88 | #endif |
89 | unsigned long start; | ||
90 | unsigned long end; | ||
89 | unsigned int need_flush : 1, /* Did free PTEs */ | 91 | unsigned int need_flush : 1, /* Did free PTEs */ |
90 | fast_mode : 1; /* No batching */ | 92 | fast_mode : 1; /* No batching */ |
91 | 93 | ||
@@ -113,7 +115,8 @@ static inline int tlb_fast_mode(struct mmu_gather *tlb) | |||
113 | 115 | ||
114 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm); | 116 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm); |
115 | void tlb_flush_mmu(struct mmu_gather *tlb); | 117 | void tlb_flush_mmu(struct mmu_gather *tlb); |
116 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end); | 118 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, |
119 | unsigned long end); | ||
117 | int __tlb_remove_page(struct mmu_gather *tlb, struct page *page); | 120 | int __tlb_remove_page(struct mmu_gather *tlb, struct page *page); |
118 | 121 | ||
119 | /* tlb_remove_page | 122 | /* tlb_remove_page |