priv->rx_data_slot_cnt is a field that holds the number of pages per RX
QPL as passed by the device. With the modify ring size feature, this
field no longer makes sense, as there is a clearly defined relationship
on GQ between the ring size and the number of pages per RX QPL (1:1). As
such, when a user modifies the ring size, this value would be useless,
as the ring size dictates the number of pages in the QPL, and each QPL
"knows" how many pages it holds.

tx_pages_per_qpl is unaffected by this because TX rings use a static
number of pages per QPL.

Signed-off-by: Joshua Washington <joshw...@google.com>
Reviewed-by: Rushil Gupta <rush...@google.com>
Reviewed-by: Harshitha Ramamurthy <hramamur...@google.com>
---
 drivers/net/gve/base/gve_adminq.c | 7 -------
 drivers/net/gve/gve_ethdev.h      | 3 +--
 drivers/net/gve/gve_rx.c          | 2 +-
 3 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/net/gve/base/gve_adminq.c 
b/drivers/net/gve/base/gve_adminq.c
index eb8bed0d9b..c25fefbd0f 100644
--- a/drivers/net/gve/base/gve_adminq.c
+++ b/drivers/net/gve/base/gve_adminq.c
@@ -837,14 +837,7 @@ 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->rx_data_slot_cnt = be16_to_cpu(descriptor->rx_pages_per_qpl);
 
-       if (gve_is_gqi(priv) && priv->rx_data_slot_cnt < priv->rx_desc_cnt) {
-               PMD_DRV_LOG(ERR,
-                           "rx_data_slot_cnt cannot be smaller than 
rx_desc_cnt, setting rx_desc_cnt down to %d",
-                           priv->rx_data_slot_cnt);
-               priv->rx_desc_cnt = priv->rx_data_slot_cnt;
-       }
        priv->default_num_queues = be16_to_cpu(descriptor->default_num_queues);
 
        gve_enable_supported_features(priv, supported_features_mask,
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index 1731c2ab93..393a4362c9 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -238,8 +238,7 @@ struct gve_priv {
        uint16_t max_rx_desc_cnt;
        uint16_t tx_desc_cnt; /* txq size */
        uint16_t rx_desc_cnt; /* rxq size */
-       uint16_t tx_pages_per_qpl; /* tx buffer length */
-       uint16_t rx_data_slot_cnt; /* rx buffer length */
+       uint16_t tx_pages_per_qpl;
 
        /* Only valid for DQO_RDA queue format */
        uint16_t tx_compq_size; /* tx completion queue size */
diff --git a/drivers/net/gve/gve_rx.c b/drivers/net/gve/gve_rx.c
index 41987ec870..d2c6920406 100644
--- a/drivers/net/gve/gve_rx.c
+++ b/drivers/net/gve/gve_rx.c
@@ -386,7 +386,7 @@ gve_rx_queue_setup(struct rte_eth_dev *dev, uint16_t 
queue_id,
        /* Allocate and register QPL for the queue. */
        if (rxq->is_gqi_qpl) {
                rxq->qpl = gve_setup_queue_page_list(hw, queue_id, true,
-                                                    hw->rx_data_slot_cnt);
+                                                    nb_desc);
                if (!rxq->qpl) {
                        PMD_DRV_LOG(ERR,
                                    "Failed to alloc rx qpl for queue %hu.",
-- 
2.45.2.803.g4e1b14247a-goog

Reply via email to