linux-stable-rt/arch
Andi Kleen 8346ea17aa x86: split large page mapping for AMD TSEG
On AMD SMM protected memory is part of the address map, but handled
internally like an MTRR. That leads to large pages getting split
internally which has some performance implications. Check for the
AMD TSEG MSR and split the large page mapping on that area
explicitely if it is part of the direct mapping.

There is also SMM ASEG, but it is in the first 1MB and already covered by
the earlier split first page patch.

Idea for this came from an earlier patch by Andreas Herrmann

On a RevF dual Socket Opteron system kernbench shows a clear
improvement from this:
(together with the earlier patches in this series, especially the
split first 2MB patch)

[lower is better]
              no split stddev         split  stddev    delta
Elapsed Time   87.146 (0.727516)     84.296 (1.09098)  -3.2%
User Time     274.537 (4.05226)     273.692 (3.34344)  -0.3%
System Time    34.907 (0.42492)      34.508 (0.26832)  -1.1%
Percent CPU   322.5   (38.3007)     326.5   (44.5128)  +1.2%

=> About 3.2% improvement in elapsed time for kernbench.

With GB pages on AMD Fam1h the impact of splitting is much higher of course,
since it would split two full GB pages (together with the first
1MB split patch) instead of two 2MB pages.  I could not benchmark
a clear difference in kernbench on gbpages, so I kept it disabled
for that case

That was only limited benchmarking of course, so if someone
was interested in running more tests for the gbpages case
that could be revisited (contributions welcome)

I didn't bother implementing this for 32bit because it is very
unlikely the 32bit lowmem mapping overlaps into the TSEG near 4GB
and the 2MB low split is already handled for both.

[ mingo@elte.hu: do it on gbpages kernels too, there's no clear reason
                 why it shouldnt help there. ]

Signed-off-by: Andi Kleen <ak@suse.de>
Acked-by: andreas.herrmann3@amd.com
Cc: mingo@elte.hu
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-04-17 17:41:30 +02:00
..
alpha
arm
avr32 avr32 mustn't select HAVE_IDE 2008-04-17 01:14:32 +02:00
blackfin
cris
frv FRV: Correctly determine the address of an illegal instruction 2008-04-14 07:55:15 -07:00
h8300
ia64 acpi: unneccessary to scan the PCI bus already scanned 2008-04-15 19:35:41 -07:00
m32r
m68k m68k: update defconfigs for 2.6.25 2008-04-04 14:42:30 -07:00
m68knommu
mips Pb1200/DBAu1200: fix bad IDE resource size 2008-04-17 01:14:33 +02:00
mn10300
parisc [PARISC] fix signal trampoline cache flushing 2008-04-15 15:51:36 -07:00
powerpc [POWERPC] Fix MPC5200 (not B!) device tree so FEC ethernet works 2008-04-03 22:11:12 +11:00
ppc
s390
sh sh: export empty_zero_page 2008-04-16 02:21:47 +09:00
sparc [SPARC]: Fix several regset and ptrace bugs. 2008-04-09 19:39:25 -07:00
sparc64 [SPARC]: Fix several regset and ptrace bugs. 2008-04-09 19:39:25 -07:00
um
v850
x86 x86: split large page mapping for AMD TSEG 2008-04-17 17:41:30 +02:00
xtensa
.gitignore
Kconfig