* [RFC PATCH 0/2] mm/fake-numa: fix under-allocation detection logic in uniform split @ 2026-04-13 15:44 Sang-Heon Jeon 2026-04-13 15:44 ` [RFC PATCH 1/2] " Sang-Heon Jeon 2026-04-13 15:44 ` [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment Sang-Heon Jeon 0 siblings, 2 replies; 7+ messages in thread From: Sang-Heon Jeon @ 2026-04-13 15:44 UTC (permalink / raw) To: akpm, rppt, djbw, mingo; +Cc: linux-mm, Sang-Heon Jeon Hello, This series fixes under-allocation detection logic and an outdated comment in uniform NUMA node splitting. I found this while going through NUMA enulation codes. If I misunderstood, feel free to tell me about it. Thank you for taking your valuable time to review this work. Best Regards, Sang-Heon Jeon Sang-Heon Jeon (2): mm/fake-numa: fix under-allocation detection in uniform split mm/fake-numa: fix outdated return value comment mm/numa_emulation.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.43.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RFC PATCH 1/2] mm/fake-numa: fix under-allocation detection logic in uniform split 2026-04-13 15:44 [RFC PATCH 0/2] mm/fake-numa: fix under-allocation detection logic in uniform split Sang-Heon Jeon @ 2026-04-13 15:44 ` Sang-Heon Jeon 2026-04-14 12:37 ` Mike Rapoport 2026-04-13 15:44 ` [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment Sang-Heon Jeon 1 sibling, 1 reply; 7+ messages in thread From: Sang-Heon Jeon @ 2026-04-13 15:44 UTC (permalink / raw) To: akpm, rppt, djbw, mingo Cc: linux-mm, Sang-Heon Jeon, Donghyeon Lee, Munhui Chae When split NUMA node uniformly, split_nodes_size_interleave_uniform() returns the next absolute node ID, not the number of nodes created. The previous under-allocation detection logic compares next absolute node ID (ret) and request count (n), which only works when nid starts at 0. Fix under-allocation detection logic to compare the number of actually created nodes (ret - nid) against the request count (n). Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com> Reported-by: Donghyeon Lee <asd142513@gmail.com> Reported-by: Munhui Chae <mochae@student.42seoul.kr> Fixes: cc9aec03e58f ("x86/numa_emulation: Introduce uniform split capability") # 4.19 --- mm/numa_emulation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/numa_emulation.c b/mm/numa_emulation.c index 703c8fa05048..e7f856c8f2a1 100644 --- a/mm/numa_emulation.c +++ b/mm/numa_emulation.c @@ -416,7 +416,7 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt) n, &pi.blk[0], nid); if (ret < 0) break; - if (ret < n) { + if (ret - nid < n) { pr_info("%s: phys: %d only got %d of %ld nodes, failing\n", __func__, i, ret, n); ret = -1; -- 2.43.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC PATCH 1/2] mm/fake-numa: fix under-allocation detection logic in uniform split 2026-04-13 15:44 ` [RFC PATCH 1/2] " Sang-Heon Jeon @ 2026-04-14 12:37 ` Mike Rapoport 2026-04-16 10:18 ` Sang-Heon Jeon 0 siblings, 1 reply; 7+ messages in thread From: Mike Rapoport @ 2026-04-14 12:37 UTC (permalink / raw) To: Sang-Heon Jeon; +Cc: akpm, djbw, mingo, linux-mm, Donghyeon Lee, Munhui Chae Hi, On Tue, Apr 14, 2026 at 12:44:37AM +0900, Sang-Heon Jeon wrote: > When split NUMA node uniformly, split_nodes_size_interleave_uniform() > returns the next absolute node ID, not the number of nodes created. > > The previous under-allocation detection logic compares next absolute node I'd replace "previous" with "existing" > ID (ret) and request count (n), which only works when nid starts at 0. > > Fix under-allocation detection logic to compare the number of actually > created nodes (ret - nid) against the request count (n). It would be nice to have an example of memory configuration and numa=fake=nU that demonstrates the issue. > Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com> > Reported-by: Donghyeon Lee <asd142513@gmail.com> > Reported-by: Munhui Chae <mochae@student.42seoul.kr> > Fixes: cc9aec03e58f ("x86/numa_emulation: Introduce uniform split capability") # 4.19 > --- > mm/numa_emulation.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/numa_emulation.c b/mm/numa_emulation.c > index 703c8fa05048..e7f856c8f2a1 100644 > --- a/mm/numa_emulation.c > +++ b/mm/numa_emulation.c > @@ -416,7 +416,7 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt) > n, &pi.blk[0], nid); > if (ret < 0) > break; > - if (ret < n) { > + if (ret - nid < n) { > pr_info("%s: phys: %d only got %d of %ld nodes, failing\n", > __func__, i, ret, n); > ret = -1; > -- > 2.43.0 > -- Sincerely yours, Mike. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC PATCH 1/2] mm/fake-numa: fix under-allocation detection logic in uniform split 2026-04-14 12:37 ` Mike Rapoport @ 2026-04-16 10:18 ` Sang-Heon Jeon 0 siblings, 0 replies; 7+ messages in thread From: Sang-Heon Jeon @ 2026-04-16 10:18 UTC (permalink / raw) To: Mike Rapoport; +Cc: akpm, djbw, mingo, linux-mm, Donghyeon Lee, Munhui Chae Hello, Mike On Tue, Apr 14, 2026 at 9:37 PM Mike Rapoport <rppt@kernel.org> wrote: > > Hi, > > On Tue, Apr 14, 2026 at 12:44:37AM +0900, Sang-Heon Jeon wrote: > > When split NUMA node uniformly, split_nodes_size_interleave_uniform() > > returns the next absolute node ID, not the number of nodes created. > > > > The previous under-allocation detection logic compares next absolute node > > I'd replace "previous" with "existing" That's good :) I'll replace it. > > ID (ret) and request count (n), which only works when nid starts at 0. > > > > Fix under-allocation detection logic to compare the number of actually > > created nodes (ret - nid) against the request count (n). > > It would be nice to have an example of memory configuration and > numa=fake=nU that demonstrates the issue. Sure, I'll add it. > > Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com> > > Reported-by: Donghyeon Lee <asd142513@gmail.com> > > Reported-by: Munhui Chae <mochae@student.42seoul.kr> > > Fixes: cc9aec03e58f ("x86/numa_emulation: Introduce uniform split capability") # 4.19 > > --- > > mm/numa_emulation.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mm/numa_emulation.c b/mm/numa_emulation.c > > index 703c8fa05048..e7f856c8f2a1 100644 > > --- a/mm/numa_emulation.c > > +++ b/mm/numa_emulation.c > > @@ -416,7 +416,7 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt) > > n, &pi.blk[0], nid); > > if (ret < 0) > > break; > > - if (ret < n) { > > + if (ret - nid < n) { > > pr_info("%s: phys: %d only got %d of %ld nodes, failing\n", > > __func__, i, ret, n); > > ret = -1; > > -- > > 2.43.0 > > > > -- > Sincerely yours, > Mike. Thanks for your kind review. Best Regards, Sang-Heon Jeon ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment 2026-04-13 15:44 [RFC PATCH 0/2] mm/fake-numa: fix under-allocation detection logic in uniform split Sang-Heon Jeon 2026-04-13 15:44 ` [RFC PATCH 1/2] " Sang-Heon Jeon @ 2026-04-13 15:44 ` Sang-Heon Jeon 2026-04-14 12:37 ` Mike Rapoport 1 sibling, 1 reply; 7+ messages in thread From: Sang-Heon Jeon @ 2026-04-13 15:44 UTC (permalink / raw) To: akpm, rppt, djbw, mingo; +Cc: linux-mm, Sang-Heon Jeon split_nodes_size_interleave_uniform() returns absolute node ID when succeed, not zero. Fix the outdated comment to match the actual return value. Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com> --- mm/numa_emulation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/numa_emulation.c b/mm/numa_emulation.c index e7f856c8f2a1..c1d0a76aef64 100644 --- a/mm/numa_emulation.c +++ b/mm/numa_emulation.c @@ -214,7 +214,7 @@ static u64 uniform_size(u64 max_addr, u64 base, u64 hole, int nr_nodes) * Sets up fake nodes of `size' interleaved over physical nodes ranging from * `addr' to `max_addr'. * - * Returns zero on success or negative on error. + * Returns absolute node ID on success or negative on error. */ static int __init split_nodes_size_interleave_uniform(struct numa_meminfo *ei, struct numa_meminfo *pi, -- 2.43.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment 2026-04-13 15:44 ` [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment Sang-Heon Jeon @ 2026-04-14 12:37 ` Mike Rapoport 2026-04-16 10:16 ` Sang-Heon Jeon 0 siblings, 1 reply; 7+ messages in thread From: Mike Rapoport @ 2026-04-14 12:37 UTC (permalink / raw) To: Sang-Heon Jeon; +Cc: akpm, djbw, mingo, linux-mm Hi, On Tue, Apr 14, 2026 at 12:44:38AM +0900, Sang-Heon Jeon wrote: > split_nodes_size_interleave_uniform() returns absolute node ID when > succeed, not zero. > > Fix the outdated comment to match the actual return value. This should be merged in the previous patch. > Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com> > --- > mm/numa_emulation.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/numa_emulation.c b/mm/numa_emulation.c > index e7f856c8f2a1..c1d0a76aef64 100644 > --- a/mm/numa_emulation.c > +++ b/mm/numa_emulation.c > @@ -214,7 +214,7 @@ static u64 uniform_size(u64 max_addr, u64 base, u64 hole, int nr_nodes) > * Sets up fake nodes of `size' interleaved over physical nodes ranging from > * `addr' to `max_addr'. > * > - * Returns zero on success or negative on error. > + * Returns absolute node ID on success or negative on error. > */ > static int __init split_nodes_size_interleave_uniform(struct numa_meminfo *ei, > struct numa_meminfo *pi, > -- > 2.43.0 > -- Sincerely yours, Mike. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment 2026-04-14 12:37 ` Mike Rapoport @ 2026-04-16 10:16 ` Sang-Heon Jeon 0 siblings, 0 replies; 7+ messages in thread From: Sang-Heon Jeon @ 2026-04-16 10:16 UTC (permalink / raw) To: Mike Rapoport; +Cc: akpm, djbw, mingo, linux-mm Hello, On Tue, Apr 14, 2026 at 9:38 PM Mike Rapoport <rppt@kernel.org> wrote: > > Hi, > > On Tue, Apr 14, 2026 at 12:44:38AM +0900, Sang-Heon Jeon wrote: > > split_nodes_size_interleave_uniform() returns absolute node ID when > > succeed, not zero. > > > > Fix the outdated comment to match the actual return value. > > This should be merged in the previous patch. I got it. I'll include it in the v2 patch. > > Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com> > > --- > > mm/numa_emulation.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mm/numa_emulation.c b/mm/numa_emulation.c > > index e7f856c8f2a1..c1d0a76aef64 100644 > > --- a/mm/numa_emulation.c > > +++ b/mm/numa_emulation.c > > @@ -214,7 +214,7 @@ static u64 uniform_size(u64 max_addr, u64 base, u64 hole, int nr_nodes) > > * Sets up fake nodes of `size' interleaved over physical nodes ranging from > > * `addr' to `max_addr'. > > * > > - * Returns zero on success or negative on error. > > + * Returns absolute node ID on success or negative on error. > > */ > > static int __init split_nodes_size_interleave_uniform(struct numa_meminfo *ei, > > struct numa_meminfo *pi, > > -- > > 2.43.0 > > > > -- > Sincerely yours, > Mike. Best Regards, Sang-Heon Jeon ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-04-16 10:18 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-04-13 15:44 [RFC PATCH 0/2] mm/fake-numa: fix under-allocation detection logic in uniform split Sang-Heon Jeon 2026-04-13 15:44 ` [RFC PATCH 1/2] " Sang-Heon Jeon 2026-04-14 12:37 ` Mike Rapoport 2026-04-16 10:18 ` Sang-Heon Jeon 2026-04-13 15:44 ` [RFC PATCH 2/2] mm/fake-numa: fix outdated return value comment Sang-Heon Jeon 2026-04-14 12:37 ` Mike Rapoport 2026-04-16 10:16 ` Sang-Heon Jeon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox