linux/arch/powerpc
Christophe Leroy 4badd43ae4 powerpc/8xx: Map IMMR area with 512k page at a fixed address
Once the linear memory space has been mapped with 8Mb pages, as
seen in the related commit, we get 11 millions DTLB missed during
the reference 600s period. 77% of the misses are on user addresses
and 23% are on kernel addresses (1 fourth for linear address space
and 3 fourth for virtual address space)

Traditionaly, each driver manages one computer board which has its
own components with its own memory maps.
But on embedded chips like the MPC8xx, the SOC has all registers
located in the same IO area.

When looking at ioremaps done during startup, we see that
many drivers are re-mapping small parts of the IMMR for their own use
and all those small pieces gets their own 4k page, amplifying the
number of TLB misses: in our system we get 0xff000000 mapped 31 times
and 0xff003000 mapped 9 times.

Even if each part of IMMR was mapped only once with 4k pages, it would
still be several small mappings towards linear area.

This patch maps the IMMR with a single 512k page.

With this patch applied, the number of DTLB misses during the 10 min
period is reduced to 11.8 millions for a duration of 5.8s, which
represents 2% of the non-idle time hence yet another 10% reduction.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <oss@buserror.net>
2016-07-09 02:02:48 -05:00
..
boot T104xQDS: Add qe node to t104xqds 2016-07-09 01:12:04 -05:00
configs powerpc: disable IDE subsystem in pq2fads_defconfig 2016-07-08 20:14:20 -05:00
crypto powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
include powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
kernel powerpc/8xx: Map IMMR area with 512k page at a fixed address 2016-07-09 02:02:48 -05:00
kvm powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
lib powerpc: Introduce asm-prototypes.h 2016-06-16 22:39:54 +10:00
math-emu
mm powerpc/8xx: Map IMMR area with 512k page at a fixed address 2016-07-09 02:02:48 -05:00
net powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
oprofile powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
perf powerpc/perf: Export Power9 generic and cache events to sysfs 2016-07-05 23:49:48 +10:00
platforms powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
scripts powerpc/ftrace: Add Kconfig & Make glue for mprofile-kernel 2016-03-07 14:53:56 +11:00
sysdev powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
xmon powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
Kconfig powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
Kconfig.debug powerpc/mm: Always use STRICT_MM_TYPECHECKS 2016-05-01 18:32:14 +10:00
Makefile powerpc: Avoid -maltivec when using clang integrated assembler 2016-07-05 23:58:53 +10:00
relocs_check.sh powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00