[dpdk-stable] patch 'app/testpmd: fix CPU cycles per packet stats on Tx modes' has been queued to stable release 19.11.4

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri Jul 24 13:59:38 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/26/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From ffe4a7b9ac0cb5fabe3e2a178c73e813eba04a5e Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang at arm.com>
Date: Mon, 22 Jun 2020 17:04:42 +0800
Subject: [PATCH] app/testpmd: fix CPU cycles per packet stats on Tx modes

[ upstream commit 3a164e002af00a6c1f2f06f4d86a6d383d1d08f7 ]

In txonly and flowgen forwarding mode, calculating CPU per packets with
total received packets is not accurate. Use total transmitted packets
for these cases.

The error output under txonly mode:
testpmd> show fwd stats all

---------------------- Forward statistics for port 0  -------------------
RX-packets: 0              RX-dropped: 0             RX-total: 0
TX-packets: 3582891927     TX-dropped: 401965824     TX-total: 3984857751
TX-bursts : 86381636 [0% of 0 pkts + 85% of 64 pkts + 15% of 32 pkts]
-------------------------------------------------------------------------

---------------------- Forward statistics for port 1  -------------------
RX-packets: 1              RX-dropped: 394351696     RX-total: 394351697
TX-packets: 3582890632     TX-dropped: 401965568     TX-total: 3984856200
TX-bursts : 86381679 [0% of 0 pkts + 85% of 64 pkts + 15% of 32 pkts]
-------------------------------------------------------------------------

+++++++++++++++ Accumulated forward statistics for all ports+++++++++++++
RX-packets: 1              RX-dropped: 394351696     RX-total: 394351697
TX-packets: 7165782559     TX-dropped: 803931392     TX-total: 7969713951
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

CPU cycles/packet=54984156291.00 \
(total cycles=54984156291 / total RX packets=1) at 200 MHz Clock

Fixes: 53324971a14e ("app/testpmd: display/clear forwarding stats on demand")

Signed-off-by: Phil Yang <phil.yang at arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
Tested-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
 app/test-pmd/testpmd.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 8ab6cfc6c..0ef7ecfe8 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1698,11 +1698,22 @@ fwd_stats_display(void)
 	       "%s\n",
 	       acc_stats_border, acc_stats_border);
 #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
-	if (total_recv > 0)
-		printf("\n  CPU cycles/packet=%u (total cycles="
-		       "%"PRIu64" / total RX packets=%"PRIu64")\n",
-		       (unsigned int)(fwd_cycles / total_recv),
-		       fwd_cycles, total_recv);
+#define CYC_PER_MHZ 1E6
+	if (total_recv > 0 || total_xmit > 0) {
+		uint64_t total_pkts = 0;
+		if (strcmp(cur_fwd_eng->fwd_mode_name, "txonly") == 0 ||
+		    strcmp(cur_fwd_eng->fwd_mode_name, "flowgen") == 0)
+			total_pkts = total_xmit;
+		else
+			total_pkts = total_recv;
+
+		printf("\n  CPU cycles/packet=%.2F (total cycles="
+		       "%"PRIu64" / total %s packets=%"PRIu64") at %"PRIu64
+		       " MHz Clock\n",
+		       (double) fwd_cycles / total_pkts,
+		       fwd_cycles, cur_fwd_eng->fwd_mode_name, total_pkts,
+		       (uint64_t)(rte_get_tsc_hz() / CYC_PER_MHZ));
+	}
 #endif
 }
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-07-24 12:53:53.957828946 +0100
+++ 0140-app-testpmd-fix-CPU-cycles-per-packet-stats-on-Tx-mo.patch	2020-07-24 12:53:48.475009962 +0100
@@ -1,8 +1,10 @@
-From 3a164e002af00a6c1f2f06f4d86a6d383d1d08f7 Mon Sep 17 00:00:00 2001
+From ffe4a7b9ac0cb5fabe3e2a178c73e813eba04a5e Mon Sep 17 00:00:00 2001
 From: Phil Yang <phil.yang at arm.com>
 Date: Mon, 22 Jun 2020 17:04:42 +0800
 Subject: [PATCH] app/testpmd: fix CPU cycles per packet stats on Tx modes
 
+[ upstream commit 3a164e002af00a6c1f2f06f4d86a6d383d1d08f7 ]
+
 In txonly and flowgen forwarding mode, calculating CPU per packets with
 total received packets is not accurate. Use total transmitted packets
 for these cases.
@@ -31,25 +33,29 @@
 (total cycles=54984156291 / total RX packets=1) at 200 MHz Clock
 
 Fixes: 53324971a14e ("app/testpmd: display/clear forwarding stats on demand")
-Cc: stable at dpdk.org
 
 Signed-off-by: Phil Yang <phil.yang at arm.com>
 Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
 Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
 Tested-by: Ferruh Yigit <ferruh.yigit at intel.com>
 ---
- app/test-pmd/testpmd.c | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
+ app/test-pmd/testpmd.c | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
 
 diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
-index e7516673b..92e00cf7a 100644
+index 8ab6cfc6c..0ef7ecfe8 100644
 --- a/app/test-pmd/testpmd.c
 +++ b/app/test-pmd/testpmd.c
-@@ -1956,13 +1956,21 @@ fwd_stats_display(void)
+@@ -1698,11 +1698,22 @@ fwd_stats_display(void)
+ 	       "%s\n",
  	       acc_stats_border, acc_stats_border);
  #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
- #define CYC_PER_MHZ 1E6
 -	if (total_recv > 0)
+-		printf("\n  CPU cycles/packet=%u (total cycles="
+-		       "%"PRIu64" / total RX packets=%"PRIu64")\n",
+-		       (unsigned int)(fwd_cycles / total_recv),
+-		       fwd_cycles, total_recv);
++#define CYC_PER_MHZ 1E6
 +	if (total_recv > 0 || total_xmit > 0) {
 +		uint64_t total_pkts = 0;
 +		if (strcmp(cur_fwd_eng->fwd_mode_name, "txonly") == 0 ||
@@ -58,15 +64,12 @@
 +		else
 +			total_pkts = total_recv;
 +
- 		printf("\n  CPU cycles/packet=%.2F (total cycles="
--		       "%"PRIu64" / total RX packets=%"PRIu64") at %"PRIu64
++		printf("\n  CPU cycles/packet=%.2F (total cycles="
 +		       "%"PRIu64" / total %s packets=%"PRIu64") at %"PRIu64
- 		       " MHz Clock\n",
--		       (double) fwd_cycles / total_recv,
--		       fwd_cycles, total_recv,
++		       " MHz Clock\n",
 +		       (double) fwd_cycles / total_pkts,
 +		       fwd_cycles, cur_fwd_eng->fwd_mode_name, total_pkts,
- 		       (uint64_t)(rte_get_tsc_hz() / CYC_PER_MHZ));
++		       (uint64_t)(rte_get_tsc_hz() / CYC_PER_MHZ));
 +	}
  #endif
  }


More information about the stable mailing list