[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 13/18] xen/riscv: implement p2m_next_level()
On 17.09.2025 23:55, Oleksii Kurochko wrote: > Implement the p2m_next_level() function, which enables traversal and dynamic > allocation of intermediate levels (if necessary) in the RISC-V > p2m (physical-to-machine) page table hierarchy. > > To support this, the following helpers are introduced: > - page_to_p2m_table(): Constructs non-leaf PTEs pointing to next-level page > tables with correct attributes. > - p2m_alloc_page(): Allocates page table pages, supporting both hardware and > guest domains. > - p2m_create_table(): Allocates and initializes a new page table page and > installs it into the hierarchy. > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> > --- > Changes in V4: > - make `page` argument of page_to_p2m_table pointer-to-const. > - Move p2m_next_level()'s local variable `ret` to the more narrow space where > it is really used. > - Drop stale ASSERT() in p2m_next_level(). > - Stray blank after * in declaration of paging_alloc_page(). When you deal with comments like this, can you please make sure you apply them to at least a patch as a whole, if not the entire series? I notice ... > --- a/xen/arch/riscv/include/asm/paging.h > +++ b/xen/arch/riscv/include/asm/paging.h > @@ -15,4 +15,6 @@ int paging_ret_pages_to_freelist(struct domain *d, unsigned > int nr_pages); > > void paging_free_page(struct domain *d, struct page_info *pg); > > +struct page_info * paging_alloc_page(struct domain *d); ... there's still a stray blank here. With this dropped: Acked-by: Jan Beulich <jbeulich@xxxxxxxx> I have one other question, though: > +/* > + * Allocate a new page table page with an extra metadata page and hook it > + * in via the given entry. > + */ > +static int p2m_create_table(struct p2m_domain *p2m, pte_t *entry) > +{ > + struct page_info *page; > + > + ASSERT(!pte_is_valid(*entry)); Isn't this going to get in the way of splitting superpages? The caller will need to initialize *entry just for this assertion to not trigger. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |