Re: [PATCH v3 0/7] hugetlb: parallelize hugetlb page init on boot

From: Gang Li
Date: Tue Jan 02 2024 - 21:21:18 EST


On 2024/1/3 09:52, David Rientjes wrote:

I tested 1GB hugetlb on a smaller AMD host with the following:

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -3301,7 +3301,7 @@ int alloc_bootmem_huge_page(struct hstate *h, int nid)
int __alloc_bootmem_huge_page(struct hstate *h, int nid)
{
struct huge_bootmem_page *m = NULL; /* initialize for clang */
- int nr_nodes, node;
+ int nr_nodes, node = nid;
/* do node specific alloc */
if (nid != NUMA_NO_NODE) {


Oh, if nid != NUMA_NO_NODE and memblock_alloc_try_nid_raw succeed,
`node` must take the value of `nid`.

Otherwise, list_add(&m->list, &huge_boot_pages[node]) will not be
executed correctly.

After the build error is fixed, feel free to add:

Tested-by: David Rientjes <rientjes@xxxxxxxxxx>


Thanks!

to each patch. I think Andrew will probably take a build fix up as a
delta on top of patch 4 rather than sending a whole new series unless
there is other feedback that you receive.