mbox series

[v1,0/5] Setup memory management

Message ID cover.1729068334.git.oleksii.kurochko@gmail.com (mailing list archive)
Headers show
Series Setup memory management | expand

Message

Oleksii Kurochko Oct. 16, 2024, 9:15 a.m. UTC
Finish initializing the memory subsystem by mapping the direct map and
frame table.
In the case of RISC-V 64, which has a large virtual address space
(the minimum supported MMU mode is Sv39, providing TB of VA space),
the direct map and frame table are mapped starting from physical address
0. This simplifies the calculations and thereby improves performance for
page_to_mfn(), mfn_to_page(), and maddr_to_virt(), as there is no
need to account for {directmap, frametable}_base_pdx.
In addition, initialize the VMAP_DEFAULT region, finalize the boot allocator,
and update the system state from early_boot to boot.

Also, after patch 3 ("xen/riscv: introduce setup_mm()") of this patch series,
the linkage error mentioned in patch 1 ("xen/riscv: add stub for
share_xen_page_with_guest()") began to occur, so patch 1 addresses this issue.

The function maddr_to_virt() is introduced as part of this patch series, as
setup_directmap_mappings() uses it indirectly through mfn_to_virt().

Oleksii Kurochko (5):
  xen/riscv: add stub for share_xen_page_with_guest()
  xen/riscv: implement maddr_to_virt()
  xen/riscv: introduce setup_mm()
  xen/riscv: initialize the VMAP_DEFAULT virtual range
  xen/riscv: finalize boot allocator and transition to boot state

 xen/arch/riscv/include/asm/mm.h    |  10 ++-
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 104 +++++++++++++++++++++++++++--
 xen/arch/riscv/pt.c                |   6 ++
 xen/arch/riscv/setup.c             |  14 ++++
 xen/arch/riscv/stubs.c             |  10 +++
 6 files changed, 138 insertions(+), 8 deletions(-)