RE: [PATCH] IB/hfi1: Avoid allocing memory on memoryless numa node

From: Tianxianting
Date: Mon Oct 12 2020 - 09:25:40 EST


Hi Dennis
Thanks for the comments
If it depends on x86_64, I think this issue doesn't exist.
Sorry to disturb you.

-----Original Message-----
From: Dennis Dalessandro [mailto:dennis.dalessandro@xxxxxxxxxxxxxxxxxxxx]
Sent: Monday, October 12, 2020 8:37 PM
To: tianxianting (RD) <tian.xianting@xxxxxxx>; mike.marciniszyn@xxxxxxxxx; dennis.dalessandro@xxxxxxxxx; dledford@xxxxxxxxxx; jgg@xxxxxxxx
Cc: linux-rdma@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH] IB/hfi1: Avoid allocing memory on memoryless numa node

On 10/10/2020 4:57 AM, Xianting Tian wrote:
> In architecture like powerpc, we can have cpus without any local
> memory attached to it. In such cases the node does not have real memory.
>
> Use local_memory_node(), which is guaranteed to have memory.
> local_memory_node is a noop in other architectures that does not
> support memoryless nodes.
>
> Signed-off-by: Xianting Tian <tian.xianting@xxxxxxx>
> ---
> drivers/infiniband/hw/hfi1/file_ops.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/hw/hfi1/file_ops.c
> b/drivers/infiniband/hw/hfi1/file_ops.c
> index 8ca51e43c..79fa22cc7 100644
> --- a/drivers/infiniband/hw/hfi1/file_ops.c
> +++ b/drivers/infiniband/hw/hfi1/file_ops.c
> @@ -965,7 +965,7 @@ static int allocate_ctxt(struct hfi1_filedata *fd, struct hfi1_devdata *dd,
> */
> fd->rec_cpu_num = hfi1_get_proc_affinity(dd->node);
> if (fd->rec_cpu_num != -1)
> - numa = cpu_to_node(fd->rec_cpu_num);
> + numa = local_memory_node(cpu_to_node(fd->rec_cpu_num));
> else
> numa = numa_node_id();
> ret = hfi1_create_ctxtdata(dd->pport, numa, &uctxt);
>

The hfi1 driver depends on X86_64. I'm not sure what this patch buys, can you expand a bit?

-Denny