Message ID | 20240516091701.1527002-1-yajun.deng@linux.dev (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/cma: get nid from physical address | expand |
On 2024/5/16 17:17, Yajun Deng wrote: > The nid passed to cma_declare_contiguous_nid() may be NUMA_NO_NODE, > which is not the actual nid. To get the correct nid, we can get the nid > from physical address. > Please check https://lore.kernel.org/linux-riscv/47437c2b-5946-41c6-ad1b-cc03329eb230@huawei.com/ > Signed-off-by: Yajun Deng <yajun.deng@linux.dev> > --- > mm/cma.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/cma.c b/mm/cma.c > index 3e9724716bad..be6cdde32944 100644 > --- a/mm/cma.c > +++ b/mm/cma.c > @@ -361,6 +361,7 @@ int __init cma_declare_contiguous_nid(phys_addr_t base, > kmemleak_ignore_phys(addr); > base = addr; > } > + nid = early_pfn_to_nid(PHYS_PFN(base)); > > ret = cma_init_reserved_mem(base, size, order_per_bit, name, res_cma); > if (ret)
May 16, 2024 at 6:03 PM, "Kefeng Wang" <wangkefeng.wang@huawei.com> wrote: > > On 2024/5/16 17:17, Yajun Deng wrote: > > > > > The nid passed to cma_declare_contiguous_nid() may be NUMA_NO_NODE, > > > > which is not the actual nid. To get the correct nid, we can get the nid > > > > from physical address. > > > > Please check > > https://lore.kernel.org/linux-riscv/47437c2b-5946-41c6-ad1b-cc03329eb230@huawei.com/ > Okay, thanks! > > > > Signed-off-by: Yajun Deng <yajun.deng@linux.dev> > > > > --- > > > > mm/cma.c | 1 + > > > > 1 file changed, 1 insertion(+) > > > > diff --git a/mm/cma.c b/mm/cma.c > > > > index 3e9724716bad..be6cdde32944 100644 > > > > --- a/mm/cma.c > > > > +++ b/mm/cma.c > > > > @@ -361,6 +361,7 @@ int __init cma_declare_contiguous_nid(phys_addr_t base, > > > > kmemleak_ignore_phys(addr); > > > > base = addr; > > > > } > > > > + nid = early_pfn_to_nid(PHYS_PFN(base)); > > > > > ret = cma_init_reserved_mem(base, size, order_per_bit, name, res_cma); > > > > if (ret) > > >
diff --git a/mm/cma.c b/mm/cma.c index 3e9724716bad..be6cdde32944 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -361,6 +361,7 @@ int __init cma_declare_contiguous_nid(phys_addr_t base, kmemleak_ignore_phys(addr); base = addr; } + nid = early_pfn_to_nid(PHYS_PFN(base)); ret = cma_init_reserved_mem(base, size, order_per_bit, name, res_cma); if (ret)
The nid passed to cma_declare_contiguous_nid() may be NUMA_NO_NODE, which is not the actual nid. To get the correct nid, we can get the nid from physical address. Signed-off-by: Yajun Deng <yajun.deng@linux.dev> --- mm/cma.c | 1 + 1 file changed, 1 insertion(+)