sync patches from 22.07 for hns3, dma and testpmd etc. Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> (cherry picked from commit 7beb6a72fff2920a2d993030b0b02822249707fb)
80 lines
2.6 KiB
Diff
80 lines
2.6 KiB
Diff
From 5059d5fd27626e1d34b6dcaa2e74c7a5f1c7ee1f Mon Sep 17 00:00:00 2001
|
|
From: Chengwen Feng <fengchengwen@huawei.com>
|
|
Date: Sun, 24 Apr 2022 14:07:40 +0800
|
|
Subject: [PATCH 100/122] examples/dma: fix Tx drop statistics
|
|
|
|
The Tx drop statistic was designed to be collected by
|
|
rte_eth_dev_tx_buffer mechanism, but the application uses
|
|
rte_eth_tx_burst to send packets and this lead the Tx drop statistic
|
|
was not collected.
|
|
|
|
This patch removes rte_eth_dev_tx_buffer mechanism to fix the problem.
|
|
|
|
Fixes: 632bcd9b5d4f ("examples/ioat: print statistics")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
|
|
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|
|
Acked-by: Kevin Laatz <kevin.laatz@intel.com>
|
|
---
|
|
examples/dma/dmafwd.c | 27 +++++----------------------
|
|
1 file changed, 5 insertions(+), 22 deletions(-)
|
|
|
|
diff --git a/examples/dma/dmafwd.c b/examples/dma/dmafwd.c
|
|
index cfd978ec6c..d7d39b6a14 100644
|
|
--- a/examples/dma/dmafwd.c
|
|
+++ b/examples/dma/dmafwd.c
|
|
@@ -122,7 +122,6 @@ static uint32_t max_frame_size;
|
|
/* ethernet addresses of ports */
|
|
static struct rte_ether_addr dma_ports_eth_addr[RTE_MAX_ETHPORTS];
|
|
|
|
-static struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
|
|
struct rte_mempool *dma_pktmbuf_pool;
|
|
|
|
/* Print out statistics for one port. */
|
|
@@ -484,10 +483,13 @@ dma_tx_port(struct rxtx_port_config *tx_config)
|
|
|
|
port_statistics.tx[tx_config->rxtx_port] += nb_tx;
|
|
|
|
- /* Free any unsent packets. */
|
|
- if (unlikely(nb_tx < nb_dq))
|
|
+ if (unlikely(nb_tx < nb_dq)) {
|
|
+ port_statistics.tx_dropped[tx_config->rxtx_port] +=
|
|
+ (nb_dq - nb_tx);
|
|
+ /* Free any unsent packets. */
|
|
rte_mempool_put_bulk(dma_pktmbuf_pool,
|
|
(void *)&mbufs[nb_tx], nb_dq - nb_tx);
|
|
+ }
|
|
}
|
|
}
|
|
/* >8 End of transmitting packets from dmadev. */
|
|
@@ -970,25 +972,6 @@ port_init(uint16_t portid, struct rte_mempool *mbuf_pool, uint16_t nb_queues)
|
|
"rte_eth_tx_queue_setup:err=%d,port=%u\n",
|
|
ret, portid);
|
|
|
|
- /* Initialize TX buffers */
|
|
- tx_buffer[portid] = rte_zmalloc_socket("tx_buffer",
|
|
- RTE_ETH_TX_BUFFER_SIZE(MAX_PKT_BURST), 0,
|
|
- rte_eth_dev_socket_id(portid));
|
|
- if (tx_buffer[portid] == NULL)
|
|
- rte_exit(EXIT_FAILURE,
|
|
- "Cannot allocate buffer for tx on port %u\n",
|
|
- portid);
|
|
-
|
|
- rte_eth_tx_buffer_init(tx_buffer[portid], MAX_PKT_BURST);
|
|
-
|
|
- ret = rte_eth_tx_buffer_set_err_callback(tx_buffer[portid],
|
|
- rte_eth_tx_buffer_count_callback,
|
|
- &port_statistics.tx_dropped[portid]);
|
|
- if (ret < 0)
|
|
- rte_exit(EXIT_FAILURE,
|
|
- "Cannot set error callback for tx buffer on port %u\n",
|
|
- portid);
|
|
-
|
|
/* Start device. 8< */
|
|
ret = rte_eth_dev_start(portid);
|
|
if (ret < 0)
|
|
--
|
|
2.22.0
|
|
|