[PATCH v5 0/4] vmalloc kernel mapping and relocatable kernel
Alex Ghiti
alex at ghiti.fr
Wed Jul 8 00:21:42 EDT 2020
Hi Palmer,
Le 6/7/20 à 3:59 AM, Alexandre Ghiti a écrit :
> This patchset originally implemented relocatable kernel support but now
> also moves the kernel mapping into the vmalloc zone.
>
> The first patch explains why we need to move the kernel into vmalloc
> zone (instead of memcpying it around). That patch should ease KASLR
> implementation a lot.
>
> The second patch allows to build relocatable kernels but is not selected
> by default.
>
> The third and fourth patches take advantage of an already existing powerpc
> script that checks relocations at compile-time, and uses it for riscv.
>
> Changes in v5:
> * Add "static __init" to create_kernel_page_table function as reported by
> Kbuild test robot
> * Add reviewed-by from Zong
> * Rebase onto v5.7
>
> Changes in v4:
> * Fix BPF region that overlapped with kernel's as suggested by Zong
> * Fix end of module region that could be larger than 2GB as suggested by Zong
> * Fix the size of the vm area reserved for the kernel as we could lose
> PMD_SIZE if the size was already aligned on PMD_SIZE
> * Split compile time relocations check patch into 2 patches as suggested by Anup
> * Applied Reviewed-by from Zong and Anup
>
> Changes in v3:
> * Move kernel mapping to vmalloc
>
> Changes in v2:
> * Make RELOCATABLE depend on MMU as suggested by Anup
> * Rename kernel_load_addr into kernel_virt_addr as suggested by Anup
> * Use __pa_symbol instead of __pa, as suggested by Zong
> * Rebased on top of v5.6-rc3
> * Tested with sv48 patchset
> * Add Reviewed/Tested-by from Zong and Anup
>
> Alexandre Ghiti (4):
> riscv: Move kernel mapping to vmalloc zone
> riscv: Introduce CONFIG_RELOCATABLE
> powerpc: Move script to check relocations at compile time in scripts/
> riscv: Check relocations at compile time
>
> arch/powerpc/tools/relocs_check.sh | 18 +----
> arch/riscv/Kconfig | 12 +++
> arch/riscv/Makefile | 5 +-
> arch/riscv/Makefile.postlink | 36 +++++++++
> arch/riscv/boot/loader.lds.S | 3 +-
> arch/riscv/include/asm/page.h | 10 ++-
> arch/riscv/include/asm/pgtable.h | 38 ++++++---
> arch/riscv/kernel/head.S | 3 +-
> arch/riscv/kernel/module.c | 4 +-
> arch/riscv/kernel/vmlinux.lds.S | 9 ++-
> arch/riscv/mm/Makefile | 4 +
> arch/riscv/mm/init.c | 121 +++++++++++++++++++++++++----
> arch/riscv/mm/physaddr.c | 2 +-
> arch/riscv/tools/relocs_check.sh | 26 +++++++
> scripts/relocs_check.sh | 20 +++++
> 15 files changed, 259 insertions(+), 52 deletions(-)
> create mode 100644 arch/riscv/Makefile.postlink
> create mode 100755 arch/riscv/tools/relocs_check.sh
> create mode 100755 scripts/relocs_check.sh
>
Do you have any remark regarding this series ?
Thanks,
Alex
More information about the linux-riscv
mailing list