[v1,4/4] app/testpmd: show the Rx/Tx burst mode description

Message ID 20190926114818.91063-5-haiyue.wang@intel.com (mailing list archive)
State Superseded, archived
Headers
Series get Rx/Tx packet burst mode information |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Wang, Haiyue Sept. 26, 2019, 11:48 a.m. UTC
  Add the 'Burst mode' section into command 'show rxq|txq info <port_id>
<queue_id>' to show the Rx/Tx burst mode description like:
  "Burst mode: Vector AVX2 Scattered"

Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
 app/test-pmd/config.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
  

Comments

Xiaolong Ye Sept. 26, 2019, 1:57 p.m. UTC | #1
On 09/26, Haiyue Wang wrote:
>Add the 'Burst mode' section into command 'show rxq|txq info <port_id>
><queue_id>' to show the Rx/Tx burst mode description like:
>  "Burst mode: Vector AVX2 Scattered"
>
>Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
>Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
>---
> app/test-pmd/config.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
>diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
>index 957c61fbe..ada89a19d 100644
>--- a/app/test-pmd/config.c
>+++ b/app/test-pmd/config.c
>@@ -330,9 +330,25 @@ nic_stats_mapping_display(portid_t port_id)
> 	       nic_stats_mapping_border, nic_stats_mapping_border);
> }
> 
>+static void
>+burst_mode_options_display(uint64_t options)
>+{
>+	int offset;
>+
>+	while (options != 0) {
>+		offset = rte_bsf64(options);
>+
>+		printf(" %s",
>+		       rte_eth_burst_mode_option_name(1ULL << offset));
>+
>+		options &= ~(1ULL << offset);
>+	}
>+}
>+
> void
> rx_queue_infos_display(portid_t port_id, uint16_t queue_id)
> {
>+	struct rte_eth_burst_mode mode;
> 	struct rte_eth_rxq_info qinfo;
> 	int32_t rc;
> 	static const char *info_border = "*********************";
>@@ -360,12 +376,19 @@ rx_queue_infos_display(portid_t port_id, uint16_t queue_id)
> 	printf("\nRX scattered packets: %s",
> 		(qinfo.scattered_rx != 0) ? "on" : "off");
> 	printf("\nNumber of RXDs: %hu", qinfo.nb_desc);
>+
>+	if (rte_eth_rx_burst_mode_get(port_id, queue_id, &mode) == 0) {
>+		printf("\nBurst mode:");
>+		burst_mode_options_display(mode.options);
>+	}
>+
> 	printf("\n");
> }
> 
> void
> tx_queue_infos_display(portid_t port_id, uint16_t queue_id)
> {
>+	struct rte_eth_burst_mode mode;
> 	struct rte_eth_txq_info qinfo;
> 	int32_t rc;
> 	static const char *info_border = "*********************";
>@@ -389,6 +412,12 @@ tx_queue_infos_display(portid_t port_id, uint16_t queue_id)
> 	printf("\nTX deferred start: %s",
> 		(qinfo.conf.tx_deferred_start != 0) ? "on" : "off");
> 	printf("\nNumber of TXDs: %hu", qinfo.nb_desc);
>+
>+	if (rte_eth_tx_burst_mode_get(port_id, queue_id, &mode) == 0) {
>+		printf("\nBurst mode:");
>+		burst_mode_options_display(mode.options);
>+	}
>+
> 	printf("\n");
> }
> 
>-- 
>2.17.1
>

Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
  

Patch

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 957c61fbe..ada89a19d 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -330,9 +330,25 @@  nic_stats_mapping_display(portid_t port_id)
 	       nic_stats_mapping_border, nic_stats_mapping_border);
 }
 
+static void
+burst_mode_options_display(uint64_t options)
+{
+	int offset;
+
+	while (options != 0) {
+		offset = rte_bsf64(options);
+
+		printf(" %s",
+		       rte_eth_burst_mode_option_name(1ULL << offset));
+
+		options &= ~(1ULL << offset);
+	}
+}
+
 void
 rx_queue_infos_display(portid_t port_id, uint16_t queue_id)
 {
+	struct rte_eth_burst_mode mode;
 	struct rte_eth_rxq_info qinfo;
 	int32_t rc;
 	static const char *info_border = "*********************";
@@ -360,12 +376,19 @@  rx_queue_infos_display(portid_t port_id, uint16_t queue_id)
 	printf("\nRX scattered packets: %s",
 		(qinfo.scattered_rx != 0) ? "on" : "off");
 	printf("\nNumber of RXDs: %hu", qinfo.nb_desc);
+
+	if (rte_eth_rx_burst_mode_get(port_id, queue_id, &mode) == 0) {
+		printf("\nBurst mode:");
+		burst_mode_options_display(mode.options);
+	}
+
 	printf("\n");
 }
 
 void
 tx_queue_infos_display(portid_t port_id, uint16_t queue_id)
 {
+	struct rte_eth_burst_mode mode;
 	struct rte_eth_txq_info qinfo;
 	int32_t rc;
 	static const char *info_border = "*********************";
@@ -389,6 +412,12 @@  tx_queue_infos_display(portid_t port_id, uint16_t queue_id)
 	printf("\nTX deferred start: %s",
 		(qinfo.conf.tx_deferred_start != 0) ? "on" : "off");
 	printf("\nNumber of TXDs: %hu", qinfo.nb_desc);
+
+	if (rte_eth_tx_burst_mode_get(port_id, queue_id, &mode) == 0) {
+		printf("\nBurst mode:");
+		burst_mode_options_display(mode.options);
+	}
+
 	printf("\n");
 }