On 2022/4/1 18:43, David Hildenbrand wrote:
On 01.04.22 12:12, Peng Liu wrote:
Hugepages can be specified to pernode since "hugetlbfs: extend the definition of hugepages parameter to support node allocation", but the following problem is observed.
Confusing behavior is observed when both 1G and 2M hugepage is set after "numa=off". cmdline hugepage settings: hugepagesz=1G hugepages=0:3,1:3 hugepagesz=2M hugepages=0:1024,1:1024 results: HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages HugeTLB registered 2.00 MiB page size, pre-allocated 1024 pages
Furthermore, confusing behavior can be also observed when invalid node behind valid node.
To fix this, hugetlb_hstate_alloc_pages should be called even when hugepages_setup going to invalid.
Shouldn't we bail out if someone requests node-specific allocations but we are not running with NUMA?
What's the result after your change?
I am not sure if this is really stable material.
This change will make 1G-huge-page consistent with 2M-huge-page when an invalid node is configured. After this patch, all per node huge pages will allocate until an invalid node.
Thus, the basic question is "what will lead to an invalid node". 1) Some debugging and test cases as Mike suggested. 2) When part of physical memory or cpu is broken and bios not report the node with physical damage, but still use the original grub.