[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