[PATCH v2 0/4] arm64: mm: optimize VA space organization for 52-bit
Ard Biesheuvel
ardb at kernel.org
Thu Oct 8 11:35:58 EDT 2020
This series reorganizes the kernel VA space slightly so that 52-bit VA
configurations can use more virtual address space, i.e., the usable
linear address space almost doubles, from 2^51 to 2^52-2^47.
Patch #1 merges the physvirt_offset and memstart_addr variables, both of
which represent translations between the physical address space and the
linear region, and there is no need for having both. This fixes a bug too,
as the two values were not properly kept in sync when booting with KASLR
enabled.
Patch #2 updates the definitions for the boundaries of the linear space,
so that 52-bit VA builds use all available space for the linear region.
Patches #3 and #4 simplify the way the vmemmap region is configured, and
unify the 48-bit/4k and 52-bit/64k layouts.
Changes since v1:
- drop incorrect use of untagged_addr() from #2
- add patches #3 and #4
Not boot tested yet on a 52-bit VA capable system.
Cc: Steve Capper <steve.capper at arm.com>
Cc: Anshuman Khandual <anshuman.khandual at arm.com>
Ard Biesheuvel (4):
arm64: mm: use single quantity to represent the PA to VA translation
arm64: mm: extend linear region for 52-bit VA configurations
arm64: mm: make vmemmap region a projection of the linear region
arm64: mm: tidy up top of kernel VA space
Documentation/arm64/kasan-offsets.sh | 3 +-
Documentation/arm64/memory.rst | 45 +++++++++-----------
arch/arm64/Kconfig | 20 ++++-----
arch/arm64/include/asm/memory.h | 35 +++++++--------
arch/arm64/include/asm/pgtable.h | 6 +--
arch/arm64/mm/init.c | 34 ++++++---------
6 files changed, 63 insertions(+), 80 deletions(-)
--
2.17.1
More information about the linux-arm-kernel
mailing list