diff options
author | Alex Shi <alex.shi@intel.com> | 2012-06-27 21:02:20 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2012-06-27 22:29:10 -0400 |
commit | 3df3212f9722c7e45c723b9ea231a04ba4dbc47c (patch) | |
tree | cb93a81efb12b91813ed69e86bc5be24ca31de9d /arch/x86/Kconfig.debug | |
parent | c4211f42d3e66875298a5e26a75109878c80f15b (diff) |
x86/tlb: add tlb_flushall_shift knob into debugfs
kernel will replace cr3 rewrite with invlpg when
tlb_flush_entries <= active_tlb_entries / 2^tlb_flushall_factor
if tlb_flushall_factor is -1, kernel won't do this replacement.
User can modify its value according to specific CPU/applications.
Thanks for Borislav providing the help message of
CONFIG_DEBUG_TLBFLUSH.
Signed-off-by: Alex Shi <alex.shi@intel.com>
Link: http://lkml.kernel.org/r/1340845344-27557-6-git-send-email-alex.shi@intel.com
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/Kconfig.debug')
-rw-r--r-- | arch/x86/Kconfig.debug | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index e46c2147397f..b322f124ee3c 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
@@ -129,6 +129,25 @@ config DOUBLEFAULT | |||
129 | option saves about 4k and might cause you much additional grey | 129 | option saves about 4k and might cause you much additional grey |
130 | hair. | 130 | hair. |
131 | 131 | ||
132 | config DEBUG_TLBFLUSH | ||
133 | bool "Set upper limit of TLB entries to flush one-by-one" | ||
134 | depends on DEBUG_KERNEL && (X86_64 || X86_INVLPG) | ||
135 | ---help--- | ||
136 | |||
137 | X86-only for now. | ||
138 | |||
139 | This option allows the user to tune the amount of TLB entries the | ||
140 | kernel flushes one-by-one instead of doing a full TLB flush. In | ||
141 | certain situations, the former is cheaper. This is controlled by the | ||
142 | tlb_flushall_shift knob under /sys/kernel/debug/x86. If you set it | ||
143 | to -1, the code flushes the whole TLB unconditionally. Otherwise, | ||
144 | for positive values of it, the kernel will use single TLB entry | ||
145 | invalidating instructions according to the following formula: | ||
146 | |||
147 | flush_entries <= active_tlb_entries / 2^tlb_flushall_shift | ||
148 | |||
149 | If in doubt, say "N". | ||
150 | |||
132 | config IOMMU_DEBUG | 151 | config IOMMU_DEBUG |
133 | bool "Enable IOMMU debugging" | 152 | bool "Enable IOMMU debugging" |
134 | depends on GART_IOMMU && DEBUG_KERNEL | 153 | depends on GART_IOMMU && DEBUG_KERNEL |