linux/arch/arm64/mm
Ard Biesheuvel 0bfc445dec arm64: mm: set the contiguous bit for kernel mappings where appropriate
Now that we no longer allow live kernel PMDs to be split, it is safe to
start using the contiguous bit for kernel mappings. So set the contiguous
bit in the kernel page mappings for regions whose size and alignment are
suitable for this.

This enables the following contiguous range sizes for the virtual mapping
of the kernel image, and for the linear mapping:

          granule size |  cont PTE  |  cont PMD  |
          -------------+------------+------------+
               4 KB    |    64 KB   |   32 MB    |
              16 KB    |     2 MB   |    1 GB*   |
              64 KB    |     2 MB   |   16 GB*   |

* Only when built for 3 or more levels of translation. This is due to the
  fact that a 2 level configuration only consists of PGDs and PTEs, and the
  added complexity of dealing with folded PMDs is not justified considering
  that 16 GB contiguous ranges are likely to be ignored by the hardware (and
  16k/2 levels is a niche configuration)

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2016-11-07 18:15:04 +00:00
..
cache.S arm64: mm: convert __dma_* routines to use start, size 2016-08-22 10:00:48 +01:00
context.c arm64: update ASID limit 2016-06-21 20:10:18 +01:00
copypage.c arm64: Defer dcache flush in __cpu_copy_user_page 2015-12-17 11:07:13 +00:00
dma-mapping.c arm64: Remove pointless WARN_ON in DMA teardown 2016-11-07 18:15:03 +00:00
dump.c arm64: Fix shift warning in arch/arm64/mm/dump.c 2016-08-18 12:38:11 +01:00
extable.c arm64: migrate exception table users off module.h and onto extable.h 2016-09-20 09:36:21 +01:00
fault.c arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call 2016-10-20 09:50:53 +01:00
flush.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
hugetlbpage.c Revert "arm64: hugetlb: partial revert of 66b3923a1a0f" 2016-05-31 11:00:09 +01:00
init.c arm64: remove pr_cont abuse from mem_init 2016-10-20 15:27:56 +01:00
ioremap.c arm64: add ioremap physical address information 2015-01-23 15:29:06 +00:00
kasan_init.c arm64: kasan: Fix zero shadow mapping overriding kernel image shadow 2016-03-11 11:03:35 +00:00
Makefile arm64, numa: Add NUMA support for arm64 platforms. 2016-04-15 18:06:09 +01:00
mmap.c arm64: mm: remove unnecessary EXPORT_SYMBOL_GPL 2016-05-05 09:49:38 +01:00
mmu.c arm64: mm: set the contiguous bit for kernel mappings where appropriate 2016-11-07 18:15:04 +00:00
numa.c arm64/numa: fix incorrect log for memory-less node 2016-10-26 18:21:51 +01:00
pageattr.c arm64: hibernate: Support DEBUG_PAGEALLOC 2016-08-25 18:00:30 +01:00
pgd.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
proc.S arm64 updates for 4.9: 2016-10-03 08:58:35 -07:00