[PATCH 3/8] net/gve: split default queue counts into Tx and Rx

Joshua Washington joshwash at google.com
Sat Oct 3 04:51:35 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