NACK/Cmnt: [PATCH 1/1] [n:linux-aws] net: ena: Fix redundant device NUMA node override
Manuel Diewald
manuel.diewald at canonical.com
Wed Jul 24 10:11:09 UTC 2024
On Tue, Jul 23, 2024 at 01:03:42PM +0300, Philip Cox wrote:
> From: Shay Agroskin <shayagr at amazon.com>
>
> BugLink: https://bugs.launchpad.net/bugs/2067516
>
> The driver overrides the NUMA node id of the device regardless of
> whether it knows its correct value (often setting it to -1 even though
> the node id is advertised in 'struct device'). This can lead to
> suboptimal configurations.
>
> This patch fixes this behavior and makes the shared memory allocation
> functions use the NUMA node id advertised by the underlying device.
>
> Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
> Signed-off-by: Shay Agroskin <shayagr at amazon.com>
> Link: https://lore.kernel.org/r/20240528170912.1204417-1-shayagr@amazon.com
> Signed-off-by: Jakub Kicinski <kuba at kernel.org>
> (backported from commit 2dc8b1e7177d4f49f492ce648440caf2de0c3616)
> [philcox: context changes in ena_com_init_io_cq() and ena_com_init_io_sq()]
> Signed-off-by: Philip Cox <philip.cox at canonical.com>
> ---
> drivers/net/ethernet/amazon/ena/ena_com.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c
> index 4db689372980..3a5b307d5fb8 100644
> --- a/drivers/net/ethernet/amazon/ena/ena_com.c
> +++ b/drivers/net/ethernet/amazon/ena/ena_com.c
> @@ -320,7 +320,6 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
> struct ena_com_io_sq *io_sq)
> {
> size_t size;
> - int dev_node = 0;
>
> memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr));
>
> @@ -333,13 +332,10 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
> size = io_sq->desc_entry_size * io_sq->q_depth;
>
> if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST) {
> - dev_node = dev_to_node(ena_dev->dmadev);
> - set_dev_node(ena_dev->dmadev, ctx->numa_node);
> io_sq->desc_addr.virt_addr =
> dma_alloc_coherent(ena_dev->dmadev, size,
> &io_sq->desc_addr.phys_addr,
> GFP_KERNEL);
> - set_dev_node(ena_dev->dmadev, dev_node);
> if (!io_sq->desc_addr.virt_addr) {
> io_sq->desc_addr.virt_addr =
> dma_alloc_coherent(ena_dev->dmadev, size,
> @@ -365,11 +361,9 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
> size = (size_t)io_sq->bounce_buf_ctrl.buffer_size *
> io_sq->bounce_buf_ctrl.buffers_num;
>
> - dev_node = dev_to_node(ena_dev->dmadev);
> - set_dev_node(ena_dev->dmadev, ctx->numa_node);
> io_sq->bounce_buf_ctrl.base_buffer =
> devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
> - set_dev_node(ena_dev->dmadev, dev_node);
> + io_sq->bounce_buf_ctrl.base_buffer = devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
I think this duplicate line addition needs to be removed from the patch.
> if (!io_sq->bounce_buf_ctrl.base_buffer)
> io_sq->bounce_buf_ctrl.base_buffer =
> devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
> @@ -410,7 +404,6 @@ static int ena_com_init_io_cq(struct ena_com_dev *ena_dev,
> struct ena_com_io_cq *io_cq)
> {
> size_t size;
> - int prev_node = 0;
>
> memset(&io_cq->cdesc_addr, 0x0, sizeof(io_cq->cdesc_addr));
>
> @@ -422,12 +415,9 @@ static int ena_com_init_io_cq(struct ena_com_dev *ena_dev,
>
> size = io_cq->cdesc_entry_size_in_bytes * io_cq->q_depth;
>
> - prev_node = dev_to_node(ena_dev->dmadev);
> - set_dev_node(ena_dev->dmadev, ctx->numa_node);
> io_cq->cdesc_addr.virt_addr =
> dma_alloc_coherent(ena_dev->dmadev, size,
> &io_cq->cdesc_addr.phys_addr, GFP_KERNEL);
> - set_dev_node(ena_dev->dmadev, prev_node);
> if (!io_cq->cdesc_addr.virt_addr) {
> io_cq->cdesc_addr.virt_addr =
> dma_alloc_coherent(ena_dev->dmadev, size,
> --
> 2.34.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
See inline comment.
--
Manuel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240724/bcafc1a8/attachment.sig>
More information about the kernel-team
mailing list