<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>