]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: Mark kernel page ranges contiguous
authorJeremy Linton <jeremy.linton@arm.com>
Wed, 7 Oct 2015 17:00:25 +0000 (12:00 -0500)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 8 Oct 2015 17:44:14 +0000 (18:44 +0100)
commit6103d2f860c5c3877726c2059bfd6ef1eabdd68f
tree94aed8c87f719a1d1f78faa6b07c1887abfbae35
parentfca02f82d00b0f06af03478ebae4ec7562ad84c7
arm64: Mark kernel page ranges contiguous

With 64k pages, the next larger segment size is 512M. The linux
kernel also uses different protection flags to cover its code and data.
Because of this requirement, the vast majority of the kernel code and
data structures end up being mapped with 64k pages instead of the larger
pages common with a 4k page kernel.

Recent ARM processors support a contiguous bit in the
page tables which allows the a TLB to cover a range larger than a
single PTE if that range is mapped into physically contiguous
ram.

So, for the kernel its a good idea to set this flag. Some basic
micro benchmarks show it can significantly reduce the number of
L1 dTLB refills.

Add boot option to enable/disable CONT marking, as well as fix a
bug found by Steve Capper.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
[catalin.marinas@arm.com: remove CONFIG_ARM64_CONT_PTE altogether]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/mm/mmu.c