<html><head></head><body><div id="editor_version_7.34.0_S662FZdl" style="word-break:break-word;"><div data-zone-id="0" data-line-index="0" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;"><div id="lark-mail-quote-e2ba9979d37897aa443599c9b2181405">On 2025/1/17 1:58, Stephen Hemminger wrote:</div></div></div><blockquote style="padding-left: 0px; color: rgb(100, 106, 115); border-left: 2px solid rgb(187, 191, 196); margin: 0px;" class="lark-mail-doc-quote"><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">On Tue, 07 Jan 2025 10:50:09 +0800</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">"WanRenyong" <a class="not-doclink" href="mailto:wanry@yunsilicon.com" linkid="2dJKCO3v5i" target="_blank" rel="noopener noreferrer" style="transition: color 0.3s ease 0s; cursor: pointer; text-decoration: none; color: rgb(20, 86, 240);"><wanry@yunsilicon.com></a> wrote:</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Implement xsc ethdev basic statatics ops.</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Signed-off-by: WanRenyong <a class="not-doclink" href="mailto:wanry@yunsilicon.com" linkid="kCKMGaoYRK" target="_blank" rel="noopener noreferrer" style="transition: color 0.3s ease 0s; cursor: pointer; text-decoration: none; color: rgb(20, 86, 240);"><wanry@yunsilicon.com></a></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">---</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> doc/guides/nics/features/xsc.ini |  1 +</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> drivers/net/xsc/xsc_ethdev.c     | 75 ++++++++++++++++++++++++++++++++</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> 2 files changed, 76 insertions(+)</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">diff --git a/doc/guides/nics/features/xsc.ini b/doc/guides/nics/features/xsc.ini</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">index 772c6418c4..eb88517104 100644</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">--- a/doc/guides/nics/features/xsc.ini</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+++ b/doc/guides/nics/features/xsc.ini</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">@@ -11,6 +11,7 @@ L3 checksum offload  = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> L4 checksum offload  = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> Inner L3 checksum    = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> Inner L4 checksum    = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+Basic stats          = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> Linux                = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> ARMv8                = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> x86-64               = Y</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">The driver is also doing per-queue stats.</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Mind of I just add that here as well.</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">The definition of what that means was updated to be:</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Stats per queue</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">---------------</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Supports per queue stats: q_ipackets, q_opackets, q_ibytes, q_obytes, q_errors.</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Statistics only supplied for first ``RTE_ETHDEV_QUEUE_STAT_CNTRS`` (16) queues.</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><br/></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div></blockquote><div data-zone-id="0" data-line-index="41" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;"> Yes, thanks for your reminder, I will add it next time.</div></div><blockquote style="padding-left: 0px; color: rgb(100, 106, 115); border-left: 2px solid rgb(187, 191, 196); margin: 0px;" class="lark-mail-doc-quote"><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">diff --git a/drivers/net/xsc/xsc_ethdev.c b/drivers/net/xsc/xsc_ethdev.c</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">index 9cfb07b023..000e27222d 100644</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">--- a/drivers/net/xsc/xsc_ethdev.c</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+++ b/drivers/net/xsc/xsc_ethdev.c</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">@@ -444,6 +444,79 @@ xsc_ethdev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">         return 0;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"> }</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+static int</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+xsc_ethdev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+{</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        struct xsc_ethdev_priv *priv = TO_XSC_ETHDEV_PRIV(dev);</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        uint32_t rxqs_n = priv->num_rq;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        uint32_t txqs_n = priv->num_sq;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        uint32_t i, idx;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        struct xsc_rxq_data *rxq;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        struct xsc_txq_data *txq;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+        for (i = 0; i < rxqs_n; ++i) {</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                rxq = xsc_rxq_get(priv, i);</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                if (unlikely(rxq == NULL))</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                        continue;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                idx = rxq->idx;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                if (idx < RTE_ETHDEV_QUEUE_STAT_CNTRS) {</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                        stats->q_ipackets[idx] += rxq->stats.rx_pkts;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                        stats->q_ibytes[idx] += rxq->stats.rx_bytes;</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                        stats->q_errors[idx] += (rxq->stats.rx_errors +</div><div dir="auto" style="font-size: 14px; padding-left: 12px;">+                                                 rxq->stats.rx_nombuf);</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;">Paren not needed here, but ok.</div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div></blockquote><div data-zone-id="0" data-line-index="78" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;"> Agree with you, I will remove it next time.</div></div><blockquote style="padding-left: 0px; color: rgb(100, 106, 115); border-left: 2px solid rgb(187, 191, 196); margin: 0px;" class="lark-mail-doc-quote"><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div><div dir="auto" style="font-size: 14px; padding-left: 12px;"><span> 
</span></div></blockquote><div data-zone-id="0" data-line-index="81" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;"><br/></div></div><div data-zone-id="0" data-line-index="82" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;"><br/></div></div><div data-zone-id="0" data-line-index="83" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;">-- </div></div><div data-zone-id="0" data-line-index="84" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;">Thanks,</div></div><div data-zone-id="0" data-line-index="85" data-line="true" style="margin-top: 4px; margin-bottom: 4px; line-height: 1.6;"><div dir="auto" style="font-size: 14px;">WanRenyong</div></div></div></body></html>