<div dir="ltr">Hi <a class="gmail_plusreply" id="plusReplyChip-0" href="mailto:ferruh.yigit@amd.com" tabindex="-1">@Ferruh Yigit</a> <br><br>I have updated v2 <a href="https://patches.dpdk.org/project/dpdk/patch/1721914264-2394611-1-git-send-email-tathagat.dpdk@gmail.com/">https://patches.dpdk.org/project/dpdk/patch/1721914264-2394611-1-git-send-email-tathagat.dpdk@gmail.com/</a><br>and sent it in reply to the previous message id (<a href="https://patches.dpdk.org/project/dpdk/patch/1721828129-2393364-1-git-send-email-tathagat.dpdk@gmail.com/">https://patches.dpdk.org/project/dpdk/patch/1721828129-2393364-1-git-send-email-tathagat.dpdk@gmail.com/</a>) , let me know if this is fine. <br><br><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 25, 2024 at 6:59 PM Tathagat Priyadarshi <<a href="mailto:tathagat.dpdk@gmail.com">tathagat.dpdk@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The PR aims to update the TX/RQ queue setup/stop routines that are<br>
unique to DQO, so that they may be called for instances that use the<br>
DQO RDA format during dev start/stop<br>
<br>
Signed-off-by: Tathagat Priyadarshi <<a href="mailto:tathagat.dpdk@gmail.com" target="_blank">tathagat.dpdk@gmail.com</a>><br>
---<br>
 drivers/net/gve/gve_ethdev.c | 29 +++++++++++++++++++++++------<br>
 1 file changed, 23 insertions(+), 6 deletions(-)<br>
<br>
diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c<br>
index ca92277..a20092e 100644<br>
--- a/drivers/net/gve/gve_ethdev.c<br>
+++ b/drivers/net/gve/gve_ethdev.c<br>
@@ -288,11 +288,16 @@ struct gve_queue_page_list *<br>
                PMD_DRV_LOG(ERR, "Failed to create %u tx queues.", num_queues);<br>
                return ret;<br>
        }<br>
-       for (i = 0; i < num_queues; i++)<br>
-               if (gve_tx_queue_start(dev, i) != 0) {<br>
+       for (i = 0; i < num_queues; i++) {<br>
+               if (gve_is_gqi(priv))<br>
+                       ret = gve_tx_queue_start(dev, i);<br>
+               else<br>
+                       ret = gve_tx_queue_start_dqo(dev, i);<br>
+               if (ret != 0) {<br>
                        PMD_DRV_LOG(ERR, "Fail to start Tx queue %d", i);<br>
                        goto err_tx;<br>
                }<br>
+       }<br>
<br>
        num_queues = dev->data->nb_rx_queues;<br>
        priv->rxqs = (struct gve_rx_queue **)dev->data->rx_queues;<br>
@@ -315,9 +320,15 @@ struct gve_queue_page_list *<br>
        return 0;<br>
<br>
 err_rx:<br>
-       gve_stop_rx_queues(dev);<br>
+       if (gve_is_gqi(priv))<br>
+               gve_stop_rx_queues(dev);<br>
+       else<br>
+               gve_stop_rx_queues_dqo(dev);<br>
 err_tx:<br>
-       gve_stop_tx_queues(dev);<br>
+       if (gve_is_gqi(priv))<br>
+               gve_stop_tx_queues(dev);<br>
+       else<br>
+               gve_stop_tx_queues_dqo(dev);<br>
        return ret;<br>
 }<br>
<br>
@@ -362,10 +373,16 @@ struct gve_queue_page_list *<br>
 static int<br>
 gve_dev_stop(struct rte_eth_dev *dev)<br>
 {<br>
+       struct gve_priv *priv = dev->data->dev_private;<br>
        dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;<br>
<br>
-       gve_stop_tx_queues(dev);<br>
-       gve_stop_rx_queues(dev);<br>
+       if (gve_is_gqi(priv)) {<br>
+               gve_stop_tx_queues(dev);<br>
+               gve_stop_rx_queues(dev);<br>
+       } else {<br>
+               gve_stop_tx_queues_dqo(dev);<br>
+               gve_stop_rx_queues_dqo(dev);<br>
+       }<br>
<br>
        dev->data->dev_started = 0;<br>
<br>
-- <br>
1.8.3.1<br>
<br>
</blockquote></div>