[PATCH v2 3/8] net/gve: split default queue counts into Tx and Rx
Joshua Washington
joshwash at google.com
Mon Oct 5 21:39:34 CEST 2026
From: Mark Blasko <blasko at google.com>
Replace default_num_queues with separate default_tx_num_queues and
default_rx_num_queues fields in struct gve_priv. Update AdminQ device
description and queue initialization logic to use the per-direction
default queue counts.
Signed-off-by: Mark Blasko <blasko at google.com>
Signed-off-by: Joshua Washington <joshwash at google.com>
---
drivers/net/gve/base/gve_adminq.c | 4 ++--
drivers/net/gve/gve_ethdev.c | 8 ++++----
drivers/net/gve/gve_ethdev.h | 3 ++-
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/net/gve/base/gve_adminq.c b/drivers/net/gve/base/gve_adminq.c
index 74b9a0125c..4dd095880d 100644
--- a/drivers/net/gve/base/gve_adminq.c
+++ b/drivers/net/gve/base/gve_adminq.c
@@ -1083,8 +1083,8 @@ int gve_adminq_describe_device(struct gve_priv *priv)
PMD_DRV_LOG(INFO, "MAC addr: " RTE_ETHER_ADDR_PRT_FMT,
RTE_ETHER_ADDR_BYTES(&priv->dev_addr));
priv->tx_pages_per_qpl = be16_to_cpu(descriptor->tx_pages_per_qpl);
-
- priv->default_num_queues = be16_to_cpu(descriptor->default_num_queues);
+ priv->default_tx_num_queues = be16_to_cpu(descriptor->default_num_queues);
+ priv->default_rx_num_queues = be16_to_cpu(descriptor->default_num_queues);
gve_enable_supported_features(priv, supported_features_mask,
dev_op_flow_steering, dev_op_modify_ring,
diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index 9cfdd03b9d..3ba99fd74c 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -1652,10 +1652,10 @@ gve_init_priv(struct gve_priv *priv, bool skip_describe_device)
priv->max_nb_txq = RTE_MIN(priv->max_nb_txq, priv->num_ntfy_blks / 2);
priv->max_nb_rxq = RTE_MIN(priv->max_nb_rxq, priv->num_ntfy_blks / 2);
- if (priv->default_num_queues > 0) {
- priv->max_nb_txq = RTE_MIN(priv->default_num_queues, priv->max_nb_txq);
- priv->max_nb_rxq = RTE_MIN(priv->default_num_queues, priv->max_nb_rxq);
- }
+ if (priv->default_tx_num_queues > 0)
+ priv->max_nb_txq = RTE_MIN(priv->default_tx_num_queues, priv->max_nb_txq);
+ if (priv->default_rx_num_queues > 0)
+ priv->max_nb_rxq = RTE_MIN(priv->default_rx_num_queues, priv->max_nb_rxq);
PMD_DRV_LOG(INFO, "Max TX queues %d, Max RX queues %d",
priv->max_nb_txq, priv->max_nb_rxq);
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index ef54b75c32..1a0ac87ed8 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -344,7 +344,8 @@ struct gve_priv {
uint64_t max_registered_pages;
uint64_t num_registered_pages; /* num pages registered with NIC */
- uint16_t default_num_queues; /* default num queues to set up */
+ uint16_t default_tx_num_queues; /* default num tx queues to set up */
+ uint16_t default_rx_num_queues; /* default num rx queues to set up */
enum gve_queue_format queue_format; /* see enum gve_queue_format */
uint8_t enable_rsc;
--
2.56.0.rc1.315.gc6ed9934b7-goog
More information about the dev
mailing list