[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v9 2/8] xen: do not free reserved memory into heap
On 20.07.2022 07:46, Penny Zheng wrote: > Pages used as guest RAM for static domain, shall be reserved to this > domain only. > So in case reserved pages being used for other purpose, users > shall not free them back to heap, even when last ref gets dropped. > > This commit introduces a new helper free_domstatic_page to free > static page in runtime, and free_staticmem_pages will be called by it > in runtime, so let's drop the __init flag. > > Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx> Technically Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Nevertheless two remarks: > +void free_domstatic_page(struct page_info *page) > +{ > + struct domain *d = page_get_owner(page); > + bool drop_dom_ref; > + > + ASSERT(d); I wonder whether if ( unlikely(!d) ) { ASSERT_UNREACHABLE(); return; } wouldn't be more robust looking forward. > --- a/xen/include/xen/mm.h > +++ b/xen/include/xen/mm.h > @@ -85,13 +85,12 @@ bool scrub_free_pages(void); > } while ( false ) > #define FREE_XENHEAP_PAGE(p) FREE_XENHEAP_PAGES(p, 0) > > -#ifdef CONFIG_STATIC_MEMORY > /* These functions are for static memory */ > void free_staticmem_pages(struct page_info *pg, unsigned long nr_mfns, > bool need_scrub); > +void free_domstatic_page(struct page_info *page); > int acquire_domstatic_pages(struct domain *d, mfn_t smfn, unsigned int > nr_mfns, > unsigned int memflags); > -#endif > > /* Map machine page range in Xen virtual address space. */ > int map_pages_to_xen( > @@ -212,6 +211,10 @@ extern struct domain *dom_cow; > > #include <asm/mm.h> > > +#ifndef PGC_static > +#define PGC_static 0 > +#endif This disconnect from all other PGC_* values isn't very nice. I wonder as how bad it would be seen if Arm kept its #define to 0 private, with the generic fallback remaining in page_alloc.c. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |