linux_dsm_epyc7002/arch
Ard Biesheuvel 9ec5cd0a40 ARM: 8817/1: mm: skip cleaning of idmap page tables on LPAE capable cores
Currently, init_static_idmap() installs some page table entries to
cover the identity mapped part of the kernel image (which is only
about 160 bytes in size in a multi_v7_defconfig Thumb2 build), and
calls flush_cache_louis() to ensure that the updates are visible
to the page table walker on the same core.

When running under virtualization, flush_cache_louis() may take more
than 10 seconds to complete:

[    0.108192] Setting up static identity map for 0x40300000 - 0x403000a0
[   13.078127] rcu: Hierarchical SRCU implementation.

This is due to the fact that set/way ops are not virtualizable, and so
KVM may trap each one, resulting in a substantial delay.

Since only LPAE capable CPUs may execute under virtualization, and
considering that LPAE capable CPUs are guaranteed to have cache
coherent page table walkers (per the architecture), let's only
perform this cache maintenance on non-LPAE cores.

Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:05 +00:00
..
alpha Kbuild late updates for v4.21 2019-01-06 16:33:10 -08:00
arc arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
arm ARM: 8817/1: mm: skip cleaning of idmap page tables on LPAE capable cores 2019-02-01 21:44:05 +00:00
arm64 Kbuild late updates for v4.21 2019-01-06 16:33:10 -08:00
c6x arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
csky arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
h8300 arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
hexagon arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
ia64 arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
m68k arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
microblaze arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
mips arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
nds32 arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
nios2 arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
openrisc arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
parisc arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
powerpc arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
riscv arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
s390 Kbuild late updates for v4.21 2019-01-06 16:33:10 -08:00
sh Kbuild late updates for v4.21 2019-01-06 16:33:10 -08:00
sparc arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
um Merge branch 'akpm' (patches from Andrew) 2019-01-05 09:16:18 -08:00
unicore32 arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
x86 Kbuild late updates for v4.21 2019-01-06 16:33:10 -08:00
xtensa arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
.gitignore
Kconfig jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00