Hi julien > -----Original Message----- > From: Julien Grall <jul...@xen.org> > Sent: Wednesday, April 27, 2022 6:23 PM > To: Penny Zheng <penny.zh...@arm.com>; xen-devel@lists.xenproject.org > Cc: Wei Chen <wei.c...@arm.com>; Henry Wang <henry.w...@arm.com>; > Stefano Stabellini <sstabell...@kernel.org>; Bertrand Marquis > <bertrand.marq...@arm.com>; Volodymyr Babchuk > <volodymyr_babc...@epam.com>; Andrew Cooper > <andrew.coop...@citrix.com>; George Dunlap <george.dun...@citrix.com>; > Jan Beulich <jbeul...@suse.com>; Wei Liu <w...@xen.org> > Subject: Re: [PATCH v3 5/6] xen/arm: unpopulate memory when domain is > static > > Hi Penny, > > On 27/04/2022 11:19, Penny Zheng wrote: > >>> +/* > >>> + * Put free pages on the resv page list after having taken them > >>> + * off the "normal" page list, when pages from static memory */ > >>> +#ifdef CONFIG_STATIC_MEMORY > >>> +#define arch_free_heap_page(d, pg) ({ \ > >>> + page_list_del(pg, page_to_list(d, pg)); \ > >>> + if ( (pg)->count_info & PGC_reserved ) \ > >>> + page_list_add_tail(pg, &(d)->resv_page_list); \ > >>> +}) > >>> +#endif > >> > >> I am a bit puzzled how this is meant to work. > >> > >> Looking at the code, arch_free_heap_page() will be called from > >> free_domheap_pages(). If I am not mistaken, reserved pages are not > >> considered as xen heap pages, so we would go in the else which will > >> end up to call free_heap_pages(). > >> > >> free_heap_pages() will end up to add the page in the heap allocator > >> and corrupt the d->resv_page_list because there are only one link list. > >> > >> What did I miss? > >> > > > > In my first commit "do not free reserved memory into heap", I've > > changed the behavior for reserved pages in free_heap_pages() > > + if ( pg->count_info & PGC_reserved )that > > + /* Reserved page shall not go back to the heap. */ > > + return free_staticmem_pages(pg, 1UL << order, need_scrub); > > + > > Hmmm... somehow this e-mail is neither in my inbox nor in the archives on > lore.kernel.org. >
Oh.... I just got email from tessian that they held my first commit, and needed my confirmation to send. So sorry about that!!! I'll re-send my first commit ASAP. > Cheers, > -- > Julien Grall