[PATCH 0/7] x86: rework tlb range flushing code

From: Dave Hansen
Date: Mon Mar 10 2014 - 13:11:52 EST



Changes from v2:
* Added a brief comment above the ceiling tunable
* Updated the documentation to mention large pages and say
"individual flush" instead of invlpg in most cases.

Reposting with an instrumentation patch, and a few minor tweaks.
I'd love some more eyeballs on this, but I think it's ready for
-mm.

I'm having it run through the LKP harness to see if any perfmance
regressions (or gains) show up.

Without the last (instrumentation/debugging) patch:

arch/x86/include/asm/mmu_context.h | 6 ++
arch/x86/include/asm/processor.h | 1
arch/x86/kernel/cpu/amd.c | 7 --
arch/x86/kernel/cpu/common.c | 13 -----
arch/x86/kernel/cpu/intel.c | 26 ----------
arch/x86/mm/tlb.c | 91 +++++++++++++++----------------------
include/linux/mm_types.h | 10 ++++
mm/Makefile | 2
8 files changed, 58 insertions(+), 98 deletions(-)

--

I originally went to look at this becuase I realized that newer
CPUs were not present in the intel_tlb_flushall_shift_set() code.

I went to try to figure out where to stick newer CPUs (do we
consider them more like SandyBridge or IvyBridge), and was not
able to repeat the original experiments.

Instead, this set does:
1. Rework the code a bit to ready it for tracepoints
2. Add tracepoints
3. Add a new tunable and set it to a sane value
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/