All of lore.kernel.org
 help / color / mirror / Atom feed
From: Remy Horton <remy.horton@intel.com>
To: dev@dpdk.org
Cc: Thomas Monjalon <thomas.monjalon@6wind.com>
Subject: [PATCH v9 4/7] app/test-pmd: add bitrate statistics calculation
Date: Wed, 18 Jan 2017 15:05:40 +0000	[thread overview]
Message-ID: <1484751943-22877-5-git-send-email-remy.horton@intel.com> (raw)
In-Reply-To: <1484751943-22877-1-git-send-email-remy.horton@intel.com>

Calculate bitrate statistics using the bitrate stats library. The
resulting statistics can be viewed via proc_info.

Signed-off-by: Remy Horton <remy.horton@intel.com>
---
 app/test-pmd/testpmd.c | 41 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index bfb2f8e..b31a300 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2017 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
@@ -79,6 +79,10 @@
 #include <rte_pdump.h>
 #endif
 #include <rte_flow.h>
+#include <rte_metrics.h>
+#ifdef RTE_LIBRTE_BITRATE
+#include <rte_bitrate.h>
+#endif
 
 #include "testpmd.h"
 
@@ -323,6 +327,9 @@ uint16_t nb_rx_queue_stats_mappings = 0;
 
 unsigned max_socket = 0;
 
+/* Bitrate statistics */
+struct rte_stats_bitrates *bitrate_data;
+
 /* Forward function declarations */
 static void map_port_queue_stats_mapping_registers(uint8_t pi, struct rte_port *port);
 static void check_all_ports_link_status(uint32_t port_mask);
@@ -922,12 +929,32 @@ run_pkt_fwd_on_lcore(struct fwd_lcore *fc, packet_fwd_t pkt_fwd)
 	struct fwd_stream **fsm;
 	streamid_t nb_fs;
 	streamid_t sm_id;
+#ifdef RTE_LIBRTE_BITRATE
+	uint64_t tics_per_1sec;
+	uint64_t tics_datum;
+	uint64_t tics_current;
+	uint8_t idx_port, cnt_ports;
+#endif
 
+#ifdef RTE_LIBRTE_BITRATE
+	cnt_ports = rte_eth_dev_count();
+	tics_datum = rte_rdtsc();
+	tics_per_1sec = rte_get_timer_hz();
+#endif
 	fsm = &fwd_streams[fc->stream_idx];
 	nb_fs = fc->stream_nb;
 	do {
 		for (sm_id = 0; sm_id < nb_fs; sm_id++)
 			(*pkt_fwd)(fsm[sm_id]);
+#ifdef RTE_LIBRTE_BITRATE
+		tics_current = rte_rdtsc();
+		if (tics_current - tics_datum >= tics_per_1sec) {
+			/* Periodic bitrate calculation */
+			for (idx_port = 0; idx_port < cnt_ports; idx_port++)
+				rte_stats_bitrate_calc(bitrate_data, idx_port);
+			tics_datum = tics_current;
+		}
+#endif
 	} while (! fc->stopped);
 }
 
@@ -2139,6 +2166,18 @@ main(int argc, char** argv)
 	FOREACH_PORT(port_id, ports)
 		rte_eth_promiscuous_enable(port_id);
 
+	/* Init metrics library */
+	rte_metrics_init(rte_socket_id());
+
+	/* Setup bitrate stats */
+#ifdef RTE_LIBRTE_BITRATE
+	bitrate_data = rte_stats_bitrate_create();
+	if (bitrate_data == NULL)
+		rte_exit(EXIT_FAILURE, "Could not allocate bitrate data.\n");
+	rte_stats_bitrate_reg(bitrate_data);
+#endif
+
+
 #ifdef RTE_LIBRTE_CMDLINE
 	if (interactive == 1) {
 		if (auto_start) {
-- 
2.5.5

  parent reply	other threads:[~2017-01-18 15:05 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-24 14:58 [RFC PATCH v1] rte: add bit-rate metrics to xstats Remy Horton
2016-08-26 13:28 ` Pattan, Reshma
2016-08-29 10:01 ` Pattan, Reshma
2016-08-29 11:19   ` Remy Horton
2016-10-28  1:04 ` [PATCH v2 0/3] expanded statistic reporting Remy Horton
2016-10-28  1:04   ` [RFC PATCH v2 1/3] lib: add information metrics library Remy Horton
2016-10-28  1:04   ` [RFC PATCH v2 2/3] lib: add bitrate statistics library Remy Horton
2016-10-28  1:12     ` Stephen Hemminger
2016-10-28  7:48       ` Remy Horton
2016-10-28  7:39     ` Morten Brørup
2016-11-01  1:53       ` Remy Horton
2016-10-28  1:04   ` [RFC PATCH v2 3/3] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-04  3:36   ` [PATCH v3 0/3] Expanded statistics reporting Remy Horton
2016-11-04  3:36     ` [PATCH v3 1/3] lib: add information metrics library Remy Horton
2016-11-04 16:42       ` Pattan, Reshma
2016-11-07 15:25         ` Pattan, Reshma
2016-11-08  3:19           ` Remy Horton
2016-11-04  3:36     ` [PATCH v3 2/3] lib: add bitrate statistics library Remy Horton
2016-11-04  3:36     ` [PATCH v3 3/3] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-15  7:15     ` [PATCH v4 0/3] Expanded statistics reporting Remy Horton
2016-11-15  7:15       ` [PATCH v4 1/3] lib: add information metrics library Remy Horton
2016-11-15  7:15       ` [PATCH v4 2/3] lib: add bitrate statistics library Remy Horton
2016-11-15 15:17         ` Pattan, Reshma
2016-11-15  7:15       ` [PATCH v4 3/3] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-18  8:00       ` [PATCH v5 0/4] Expanded statistics reporting Remy Horton
2016-11-18  8:00         ` [PATCH v5 1/4] lib: add information metrics library Remy Horton
2016-11-18  8:00         ` [PATCH v5 2/4] lib: add bitrate statistics library Remy Horton
2016-11-18  8:00         ` [PATCH v5 3/4] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-18  8:00         ` [PATCH v5 4/4] latencystats: added new library for latency stats Remy Horton
2017-01-11 16:03         ` [PATCH v6 0/4] Expanded statistics reporting Remy Horton
2017-01-11 16:03           ` [PATCH v6 1/4] lib: add information metrics library Remy Horton
2017-01-12 13:22             ` Thomas Monjalon
2017-01-12 15:30               ` Remy Horton
2017-01-12 19:05                 ` Thomas Monjalon
2017-01-16 10:27                   ` Remy Horton
2017-01-11 16:03           ` [PATCH v6 2/4] lib: add bitrate statistics library Remy Horton
2017-01-11 16:15             ` Stephen Hemminger
2017-01-16 13:18               ` Remy Horton
2017-01-11 16:03           ` [PATCH v6 3/4] app/test-pmd: add support for bitrate statistics Remy Horton
2017-01-12 13:32             ` Thomas Monjalon
2017-01-11 16:03           ` [PATCH v6 4/4] latencystats: added new library for latency stats Remy Horton
2017-01-12 13:41             ` Thomas Monjalon
2017-01-12 14:44               ` Remy Horton
2017-01-13  9:45               ` Mcnamara, John
2017-01-13  9:53                 ` Thomas Monjalon
2017-01-16 16:18                   ` Mcnamara, John
2017-01-11 16:58           ` [PATCH v6 0/4] Expanded statistics reporting Thomas Monjalon
2017-01-16 16:19           ` [PATCH v7 0/6] " Remy Horton
2017-01-16 16:19             ` [PATCH v7 1/6] lib: add information metrics library Remy Horton
2017-01-17 11:01               ` Van Haaren, Harry
2017-01-17 13:40                 ` Remy Horton
2017-01-17 14:23                   ` Van Haaren, Harry
2017-01-16 16:19             ` [PATCH v7 2/6] app/proc_info: add metrics displaying Remy Horton
2017-01-17 11:08               ` Van Haaren, Harry
2017-01-17 14:27                 ` Remy Horton
2017-01-16 16:19             ` [PATCH v7 3/6] lib: add bitrate statistics library Remy Horton
2017-01-17 11:16               ` Van Haaren, Harry
2017-01-17 15:37                 ` Remy Horton
2017-01-16 16:19             ` [PATCH v7 4/6] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-01-17 11:19               ` Van Haaren, Harry
2017-01-16 16:19             ` [PATCH v7 5/6] lib: added new library for latency stats Remy Horton
2017-01-17  4:29               ` Jerin Jacob
2017-01-17  6:48                 ` Remy Horton
2017-01-17  7:35                   ` Jerin Jacob
2017-01-17 11:19                 ` Mcnamara, John
2017-01-17 12:34                   ` Jerin Jacob
2017-01-17 14:53                     ` Mcnamara, John
2017-01-17 16:25                       ` Jerin Jacob
2017-01-18 20:11                         ` Olivier Matz
2017-01-24 15:24                           ` Olivier MATZ
2017-01-17 11:41               ` Van Haaren, Harry
2017-01-16 16:19             ` [PATCH v7 6/6] app/test-pmd: add latency statistics calculation Remy Horton
2017-01-17 11:45               ` Van Haaren, Harry
2017-01-17 23:24             ` [PATCH v8 0/7] Expanded statistics reporting Remy Horton
2017-01-17 23:24               ` [PATCH v8 1/7] lib: add information metrics library Remy Horton
2017-01-17 23:24               ` [PATCH v8 2/7] app/proc_info: add metrics displaying Remy Horton
2017-01-17 23:24               ` [PATCH v8 3/7] lib: add bitrate statistics library Remy Horton
2017-01-17 23:24               ` [PATCH v8 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-01-17 23:24               ` [PATCH v8 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-01-17 23:24               ` [PATCH v8 6/7] lib: added new library for latency stats Remy Horton
2017-01-17 23:24               ` [PATCH v8 7/7] app/test-pmd: add latency statistics calculation Remy Horton
2017-01-18 15:05               ` [PATCH v9 0/7] Expanded statistics reporting Remy Horton
2017-01-18 15:05                 ` [PATCH v9 1/7] lib: add information metrics library Remy Horton
2017-01-30 15:50                   ` Thomas Monjalon
2017-01-30 21:44                     ` Remy Horton
2017-01-31 13:13                     ` Mcnamara, John
2017-01-31 13:28                       ` Bruce Richardson
2017-02-02 17:22                         ` Thomas Monjalon
2017-01-18 15:05                 ` [PATCH v9 2/7] app/proc_info: add metrics displaying Remy Horton
2017-01-18 15:05                 ` [PATCH v9 3/7] lib: add bitrate statistics library Remy Horton
2017-01-18 15:05                 ` Remy Horton [this message]
2017-01-18 15:05                 ` [PATCH v9 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-01-18 15:05                 ` [PATCH v9 6/7] lib: added new library for latency stats Remy Horton
2017-01-18 15:05                 ` [PATCH v9 7/7] app/test-pmd: add latency statistics calculation Remy Horton
2017-02-03 10:33                 ` [PATCH v10 0/7] Expanded statistics reporting Remy Horton
2017-02-03 10:33                   ` [PATCH v10 1/7] lib: add information metrics library Remy Horton
2017-02-03 10:33                   ` [PATCH v10 2/7] app/proc_info: add metrics displaying Remy Horton
2017-02-03 10:33                   ` [PATCH v10 3/7] lib: add bitrate statistics library Remy Horton
2017-02-03 10:33                   ` [PATCH v10 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-02-03 10:33                   ` [PATCH v10 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-02-03 10:33                   ` [PATCH v10 6/7] lib: added new library for latency stats Remy Horton
2017-02-03 10:33                   ` [PATCH v10 7/7] app/test-pmd: add latency statistics calculation Remy Horton
2017-02-16 10:53                   ` [PATCH v10 0/7] Expanded statistics reporting Thomas Monjalon
2017-02-23  7:09                     ` Remy Horton
2017-02-23  8:45                       ` Thomas Monjalon
2017-03-09 16:25                   ` [PATCH v11 " Remy Horton
2017-03-09 16:25                     ` [PATCH v11 1/7] lib: add information metrics library Remy Horton
2017-03-09 16:25                     ` [PATCH v11 2/7] app/proc_info: add metrics displaying Remy Horton
2017-03-09 16:25                     ` [PATCH v11 3/7] lib: add bitrate statistics library Remy Horton
2017-03-09 16:25                     ` [PATCH v11 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-03-09 16:25                     ` [PATCH v11 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-03-09 19:02                       ` Stephen Hemminger
2017-03-10  9:48                         ` Van Haaren, Harry
2017-03-09 16:25                     ` [PATCH v11 6/7] lib: added new library for latency stats Remy Horton
2017-03-09 16:25                     ` [PATCH v11 7/7] app/test-pmd: add latency statistics calculation Remy Horton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1484751943-22877-5-git-send-email-remy.horton@intel.com \
    --to=remy.horton@intel.com \
    --cc=dev@dpdk.org \
    --cc=thomas.monjalon@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.