From: Shai Brandes <shaibran@amazon.com>
To: <stephen@networkplumber.org>
Cc: <dev@dpdk.org>, Shai Brandes <shaibran@amazon.com>
Subject: [PATCH v2 13/20] net/ena/base: remove redundant zeroing of Tx desc
Date: Wed, 15 Oct 2025 15:10:42 +0300 [thread overview]
Message-ID: <20251015121042.2828-1-shaibran@amazon.com> (raw)
For LLQ, tx descriptors are stored in the bounce buffer,
which is already being zeroed out upon every call to
ena_com_get_next_bounce_buffer.
This patch utilizes the existing zero-out operation of the
bounce buffer, eliminating redundant zeroing of tx
descriptors in LLQ case.
Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>
Reviewed-by: Yosef Raisman <yraisman@amazon.com>
---
drivers/net/ena/base/ena_eth_com.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ena/base/ena_eth_com.c b/drivers/net/ena/base/ena_eth_com.c
index 7d982854c0..c1e3c55f82 100644
--- a/drivers/net/ena/base/ena_eth_com.c
+++ b/drivers/net/ena/base/ena_eth_com.c
@@ -234,12 +234,21 @@ static int ena_com_close_bounce_buffer(struct ena_com_io_sq *io_sq)
return ENA_COM_OK;
}
-static void *get_sq_desc(struct ena_com_io_sq *io_sq)
+/* There is an assumption in function get_tx_sq_desc() that both descriptors have the same size */
+_Static_assert(sizeof(struct ena_eth_io_tx_meta_desc) == (sizeof(struct ena_eth_io_tx_desc)),
+ "ena_eth_io_tx_meta_desc should be the same size as ena_eth_io_tx_desc");
+static void *get_tx_sq_desc(struct ena_com_io_sq *io_sq)
{
+ void *tx_desc;
+
if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
return get_sq_desc_llq(io_sq);
- return get_sq_desc_regular_queue(io_sq);
+ tx_desc = get_sq_desc_regular_queue(io_sq);
+
+ memset(tx_desc, 0x0, sizeof(struct ena_eth_io_tx_desc));
+
+ return tx_desc;
}
static int ena_com_sq_update_llq_tail(struct ena_com_io_sq *io_sq)
@@ -372,12 +381,10 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq,
{
struct ena_eth_io_tx_meta_desc *meta_desc = NULL;
- meta_desc = get_sq_desc(io_sq);
+ meta_desc = get_tx_sq_desc(io_sq);
if (unlikely(!meta_desc))
return ENA_COM_FAULT;
- memset(meta_desc, 0x0, sizeof(struct ena_eth_io_tx_meta_desc));
-
meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_META_DESC_MASK;
meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK;
@@ -535,7 +542,7 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq,
return rc;
}
- desc = get_sq_desc(io_sq);
+ desc = get_tx_sq_desc(io_sq);
if (unlikely(!desc))
return ENA_COM_FAULT;
@@ -597,12 +604,10 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq,
return rc;
}
- desc = get_sq_desc(io_sq);
+ desc = get_tx_sq_desc(io_sq);
if (unlikely(!desc))
return ENA_COM_FAULT;
- memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc));
-
desc->len_ctrl |= ENA_FIELD_PREP((u32)io_sq->phase,
ENA_ETH_IO_TX_DESC_PHASE_MASK,
ENA_ETH_IO_TX_DESC_PHASE_SHIFT);
--
2.17.1
next reply other threads:[~2025-10-15 12:10 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-15 12:10 Shai Brandes [this message]
2025-10-16 16:08 ` [PATCH v2 13/20] net/ena/base: remove redundant zeroing of Tx desc Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251015121042.2828-1-shaibran@amazon.com \
--to=shaibran@amazon.com \
--cc=dev@dpdk.org \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.