[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v1 6/6] xen/riscv: implement p2m mapping functionality
On 09.05.2025 17:57, Oleksii Kurochko wrote: > These utilities are needed for building and managing RISC-V guest page > tables and MMIO mappings by using functions map_regions_p2mt() and > guest_physmap_add_entry(). > > To implement p2m mapping functionality the following is introduced: > - Define P2M root level/order and entry count. > - Introdude radix type for p2m types as it isn't enough free bits in pte > and the helpers (p2m_type_radix_{get,set}()) to deal with them. > - Introduce p2m_is_*() helpers() as pte_is_*() helpers are checking > the valid bit set in the PTE but we have to check p2m_type instead > (look at the comment above p2m_is_valid() for some details). May I suggest to name them at least p2me_is_*() then, as they check entries rather than entire P2Ms? Same perhaps elsewhere. > - Introduce helper to set p2m's pte permission: p2m_set_permissions(). > - Introduce helper to create p2m entry based on mfn, p2m_type_t and > p2m_access_t. > - Introduce helper to generate table entry with correct attributes: > page_to_p2m_table(). > - Introduce p2m page allocation function: p2m_alloc_page(). > - Introduce functions to write/remove p2m's entries: p2m_{write,remove}_pte(). > - Introduce function to allocate p2m table: p2m_create_table(). > - Introduce functions used to free p2m entry. > - Introduce function for table walking: p2m_next_level(). > - Introduce function to insert an entry in the p2m (p2m_set_entry()). > - Introduce superpage splitting: p2m_split_superpage()). > - Introduce page table type defines (PGT_{none,writable_page}, etc). > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> > --- > xen/arch/riscv/include/asm/mm.h | 32 +- > xen/arch/riscv/include/asm/p2m.h | 17 +- > xen/arch/riscv/include/asm/page.h | 11 + > xen/arch/riscv/p2m.c | 780 ++++++++++++++++++++++++++++++ > 4 files changed, 829 insertions(+), 11 deletions(-) It's imo too many things you do in one go here. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |