diff options
| author | Ritesh Harjani (IBM) <[email protected]> | 2025-01-11 11:06:55 +0000 |
|---|---|---|
| committer | Andrew Morton <[email protected]> | 2025-02-01 11:53:27 +0000 |
| commit | 76e961157e078bc5d3cd2df08317e00b00a829eb (patch) | |
| tree | 132b53d50bc96d3be74229ca87c2dfe15f05d273 /lib/test_xarray.c | |
| parent | mm: gup: fix infinite loop within __get_longterm_locked (diff) | |
| download | kernel-76e961157e078bc5d3cd2df08317e00b00a829eb.tar.gz kernel-76e961157e078bc5d3cd2df08317e00b00a829eb.zip | |
mm/hugetlb: fix hugepage allocation for interleaved memory nodes
gather_bootmem_prealloc() assumes the start nid as 0 and size as
num_node_state(N_MEMORY). That means in case if memory attached numa
nodes are interleaved, then gather_bootmem_prealloc_parallel() will fail
to scan few of these nodes.
Since memory attached numa nodes can be interleaved in any fashion, hence
ensure that the current code checks for all numa node ids
(.size = nr_node_ids). Let's still keep max_threads as N_MEMORY, so that
it can distributes all nr_node_ids among the these many no. threads.
e.g. qemu cmdline
========================
numa_cmd="-numa node,nodeid=1,memdev=mem1,cpus=2-3 -numa node,nodeid=0,cpus=0-1 -numa dist,src=0,dst=1,val=20"
mem_cmd="-object memory-backend-ram,id=mem1,size=16G"
w/o this patch for cmdline (default_hugepagesz=1GB hugepagesz=1GB hugepages=2):
==========================
~ # cat /proc/meminfo |grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 1048576 kB
Hugetlb: 0 kB
with this patch for cmdline (default_hugepagesz=1GB hugepagesz=1GB hugepages=2):
===========================
~ # cat /proc/meminfo |grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 2
HugePages_Free: 2
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 1048576 kB
Hugetlb: 2097152 kB
Link: https://lkml.kernel.org/r/f8d8dad3a5471d284f54185f65d575a6aaab692b.1736592534.git.ritesh.list@gmail.com
Fixes: b78b27d02930 ("hugetlb: parallelize 1G hugetlb initialization")
Signed-off-by: Ritesh Harjani (IBM) <[email protected]>
Reported-by: Pavithra Prakash <[email protected]>
Suggested-by: Muchun Song <[email protected]>
Tested-by: Sourabh Jain <[email protected]>
Reviewed-by: Luiz Capitulino <[email protected]>
Acked-by: David Rientjes <[email protected]>
Cc: Donet Tom <[email protected]>
Cc: Gang Li <[email protected]>
Cc: Daniel Jordan <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'lib/test_xarray.c')
0 files changed, 0 insertions, 0 deletions
