[PATCH 00/10] arm64: mm: Use __create_pgd_mapping_locked() in
Ard Biesheuvel
ardb at kernel.org
Wed Mar 13 06:05:00 PDT 2024
Hello Pingfan,
On Wed, 13 Mar 2024 at 13:57, Pingfan Liu <piliu at redhat.com> wrote:
>
> Hi everybody, I tried this stuff again.
Tried what again? Frankly, I have no idea what the purpose of this
patch series is, and this is v1.
Could you please explain?
Also, the early arm64 startup code is changing substantially - please refer to
https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/log/?h=for-next/stage1-lpa2
for details.
> 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