Re: [PATCH] net/mlx5: Node-aware allocation for mlx5_buf_list
From: Adam Li
Date: Fri Oct 11 2024 - 22:39:51 EST
Hi Saeed,
Very sorry for the slow reply.
On 9/11/2024 4:45 AM, Saeed Mahameed wrote:
> On 06 Sep 06:11, Adam Li wrote:
>> Allocation for mlx5_frag_buf.frags[i].buf is node-aware.
>> Make mlx5_frag_buf.frags allocation node-aware too.
>>
>
> Why ? buf is accessed by the device but "frags" only accessed by CPU.
>
Yes, this patch hopes to minimize CPU cross node memory access.
I observed 'frags' is accessed on RX path from mlx5e_alloc_rx_mpwqe().
>> Signed-off-by: Adam Li <adamli@xxxxxxxxxxxxxxxxxxxxxx>
>> Reviewed-by: Christoph Lameter (Ampere) <cl@xxxxxxxxx>
>> ---
>> drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
>> index 6aca004e88cd..fda17b41ff17 100644
>> --- a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
>> @@ -79,8 +79,8 @@ int mlx5_frag_buf_alloc_node(struct mlx5_core_dev *dev, int size,
>> buf->size = size;
>> buf->npages = DIV_ROUND_UP(size, PAGE_SIZE);
>> buf->page_shift = PAGE_SHIFT;
>> - buf->frags = kcalloc(buf->npages, sizeof(struct mlx5_buf_list),
>> - GFP_KERNEL);
>> + buf->frags = kcalloc_node(buf->npages, sizeof(struct mlx5_buf_list),
>> + GFP_KERNEL, node);
>> if (!buf->frags)
>> goto err_out;
>>
>> --
>> 2.25.1
>>
>>
Thanks,
-adam