|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] page-alloc: fix initialization of cross-node regions
On 25.07.2022 18:05, Julien Grall wrote:
> (Sorry for the formatting)
No issues seen.
> On Mon, 25 Jul 2022, 14:10 Jan Beulich, <jbeulich@xxxxxxxx> 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 <jbeulich@xxxxxxxx>
>> ---
>> 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?
No (afaict), because pages were still freed one by one (and hence node
boundaries still wouldn't end up in the middle of a buddy).
>> --- 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 <jgrall@xxxxxxxxxx>
Thanks.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |