[PATCH 00/10] arm64: mm: Use __create_pgd_mapping_locked() in
Pingfan Liu
piliu at redhat.com
Wed Mar 13 05:56:58 PDT 2024
Hi everybody, I tried this stuff again. Last time when I tried this,
Catalin raised concern about the intrumentation, and Ard doubted this
way due to alignement issue with mmu-off.
Last time, the alignment issue looked unsoluable and I gave up. But
nowadays, when I looked at it, I think it is partially resovable. (for
detail, please see the commit log in [PATCH 08/10] arm64: mm: Enforce
memory alignment in mmu_head)
Overall, at this very early stage, the using of C routines faces three
challenge:
PIC
instrumentation
alignment
[2/10] resolves instrumentation issue
[3/10] makes mmu_head self-contained and prevent the outside
PIC/ instrumentation/ alignment issues from seeping in. And check the code PIC.
[PATCH 08/10] explains the alignement issue, in theory, it can be
checked and resolved. And in this patch, it is partially resolved.
Cc: Ard Biesheuvel <ardb at kernel.org>
Cc: Catalin Marinas <catalin.marinas at arm.com>
Cc: Will Deacon <will at kernel.org>
Cc: Mark Rutland <mark.rutland at arm.com>
To: linux-arm-kernel at lists.infradead.org
---
Pingfan Liu (10):
arm64: mm: Split out routines for code reuse
arm64: mm: Introduce mmu_head routines without instrumentation
arm64: mm: Use if-conditon to truncate external dependency
arm64: head: Enable __create_pgd_mapping() to handle pgtable's paddr
arm64: mm: Force early mapping aligned on SWAPPER_BLOCK_SIZE
arm64: mm: Handle scope beyond the capacity of kernel pgtable in
mmu_head_create_pgd_mapping()
arm64: mm: Introduce head_pool routines to enable pgtabl allocation
arm64: mm: Enforce memory alignment in mmu_head
arm64: head: Use __create_pgd_mapping_locked() to serve the creation
of pgtable
arm64: head: Clean up unneeded routines
arch/arm64/include/asm/kernel-pgtable.h | 1 +
arch/arm64/include/asm/mmu.h | 4 +
arch/arm64/include/asm/pgtable.h | 11 +-
arch/arm64/kernel/head.S | 314 +++++++-----------------
arch/arm64/mm/Makefile | 22 +-
arch/arm64/mm/mmu.c | 289 +---------------------
arch/arm64/mm/mmu_head.c | 134 ++++++++++
arch/arm64/mm/mmu_inc.c | 292 ++++++++++++++++++++++
8 files changed, 558 insertions(+), 509 deletions(-)
create mode 100644 arch/arm64/mm/mmu_head.c
create mode 100644 arch/arm64/mm/mmu_inc.c
--
2.41.0
More information about the linux-arm-kernel
mailing list