Hi Jan, (Sorry for the formatting)
On Mon, 25 Jul 2022, 14:10 Jan Beulich, <jbeul...@suse.com> wrote: > Quite obviously to determine the split condition successive pages' > attributes need to be evaluated, not always those of the initial page. > > Fixes: 72b02bc75b47 ("xen/heap: pass order to free_heap_pages() in heap > init") > Signed-off-by: Jan Beulich <jbeul...@suse.com> > --- > Part of the problem was already introduced in 24a53060bd37 ("xen/heap: > Split init_heap_pages() in two"), but there it was still benign. > Is this because range will never cross numa node? How about the fake NUMA node? > --- a/xen/common/page_alloc.c > +++ b/xen/common/page_alloc.c > @@ -1885,11 +1885,11 @@ static void init_heap_pages( > * range to cross zones. > */ > #ifdef CONFIG_SEPARATE_XENHEAP > - if ( zone != page_to_zone(pg) ) > + if ( zone != page_to_zone(pg + contig_pages) ) > break; > #endif > > - if ( nid != (phys_to_nid(page_to_maddr(pg))) ) > + if ( nid != (phys_to_nid(page_to_maddr(pg + contig_pages))) ) > break; > } > Hmmm I am not sure why I didn't spot this issue during my testing. It looks like this was introduced in v2, sorry for that. Reviewed-by: Julien Grall <jgr...@amazon.com> Cheets, >