From: "Van Haaren, Harry" <harry.van.haaren@intel.com>
To: "Horton, Remy" <remy.horton@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Pattan, Reshma" <reshma.pattan@intel.com>,
Thomas Monjalon <thomas.monjalon@6wind.com>
Subject: Re: [dpdk-dev] [PATCH v7 2/6] app/proc_info: add metrics displaying
Date: Tue, 17 Jan 2017 11:08:08 +0000 [thread overview]
Message-ID: <E923DB57A917B54B9182A2E928D00FA6129E3B77@IRSMSX102.ger.corp.intel.com> (raw)
In-Reply-To: <1484583573-30163-3-git-send-email-remy.horton@intel.com>
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Remy Horton
> Sent: Monday, January 16, 2017 4:19 PM
> To: dev@dpdk.org
> Cc: Pattan, Reshma <reshma.pattan@intel.com>; Thomas Monjalon <thomas.monjalon@6wind.com>
> Subject: [dpdk-dev] [PATCH v7 2/6] app/proc_info: add metrics displaying
>
> From: Reshma Pattan <reshma.pattan@intel.com>
>
> Modify the dpdk-procinfo process to display the newly added metrics.
> Added new command line option "--metrics" to display metrics.
>
> Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
> Signed-off-by: Remy Horton <remy.horton@intel.com>
Note that current git HEAD has a bug in secondary process - this has already
been raised and fixed in patches on the ML. In testing, I manually fixed the
secondary proc issue, after which testing here worked successfully.
Comments inline.
> ---
> app/proc_info/main.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 73 insertions(+)
>
> diff --git a/app/proc_info/main.c b/app/proc_info/main.c
> index 2c56d10..e5d626e 100644
> --- a/app/proc_info/main.c
> +++ b/app/proc_info/main.c
> @@ -57,6 +57,7 @@
> #include <rte_atomic.h>
> #include <rte_branch_prediction.h>
> #include <rte_string_fns.h>
> +#include <rte_metrics.h>
>
> /* Maximum long option length for option parsing. */
> #define MAX_LONG_OPT_SZ 64
> @@ -68,6 +69,8 @@ static uint32_t enabled_port_mask;
> static uint32_t enable_stats;
> /**< Enable xstats. */
> static uint32_t enable_xstats;
> +/**< Enable metrics. */
> +static uint32_t enable_metrics;
> /**< Enable stats reset. */
> static uint32_t reset_stats;
> /**< Enable xstats reset. */
> @@ -85,6 +88,8 @@ proc_info_usage(const char *prgname)
> " --stats: to display port statistics, enabled by default\n"
> " --xstats: to display extended port statistics, disabled by "
> "default\n"
> + " --metrics: to display derived metrics of the ports, disabled by "
> + "default\n"
> " --stats-reset: to reset port statistics\n"
> " --xstats-reset: to reset port extended statistics\n",
I presume there is no need for a --metrics-reset as the values are reset when printed, correct?
> prgname);
> @@ -127,6 +132,7 @@ proc_info_parse_args(int argc, char **argv)
> {"stats", 0, NULL, 0},
> {"stats-reset", 0, NULL, 0},
> {"xstats", 0, NULL, 0},
> + {"metrics", 0, NULL, 0},
> {"xstats-reset", 0, NULL, 0},
> {NULL, 0, 0, 0}
> };
> @@ -159,6 +165,10 @@ proc_info_parse_args(int argc, char **argv)
> else if (!strncmp(long_option[option_index].name, "xstats",
> MAX_LONG_OPT_SZ))
> enable_xstats = 1;
> + else if (!strncmp(long_option[option_index].name,
> + "metrics",
> + MAX_LONG_OPT_SZ))
> + enable_metrics = 1;
> /* Reset stats */
> if (!strncmp(long_option[option_index].name, "stats-reset",
> MAX_LONG_OPT_SZ))
> @@ -301,6 +311,63 @@ nic_xstats_clear(uint8_t port_id)
> printf("\n NIC extended statistics for port %d cleared\n", port_id);
> }
>
> +static void
> +metrics_display(int port_id)
> +{
> + struct rte_metric_value *metrics;
> + struct rte_metric_name *names;
> + int len, ret;
> + static const char *nic_stats_border = "########################";
> +
> + memset(&metrics, 0, sizeof(struct rte_metric_value));
> + len = rte_metrics_get_names(NULL, 0);
> + if (len < 0) {
> + printf("Cannot get metrics count\n");
> + return;
> + }
> +
> + metrics = malloc(sizeof(struct rte_metric_value) * len);
> + if (metrics == NULL) {
> + printf("Cannot allocate memory for metrics\n");
> + return;
> + }
Is malloc() favoured over rte_malloc() for a reason?
> +
> + names = malloc(sizeof(struct rte_metric_name) * len);
> + if (names == NULL) {
> + printf("Cannot allocate memory for metrcis names\n");
> + free(metrics);
> + return;
> + }
> +
> + if (len != rte_metrics_get_names(names, len)) {
> + printf("Cannot get metrics names\n");
> + free(metrics);
> + free(names);
> + return;
> + }
> +
> + if (port_id == RTE_METRICS_GLOBAL)
> + printf("###### Non port specific metrics #########\n");
> + else
> + printf("###### metrics for port %-2d #########\n", port_id);
> + printf("%s############################\n", nic_stats_border);
> + ret = rte_metrics_get_values(port_id, metrics, len);
> + if (ret < 0 || ret > len) {
> + printf("Cannot get metrics values\n");
> + free(metrics);
> + free(names);
> + return;
> + }
> +
> + int i;
> + for (i = 0; i < len; i++)
> + printf("%s: %"PRIu64"\n", names[i].name, metrics[i].value);
> +
> + printf("%s############################\n", nic_stats_border);
> + free(metrics);
> + free(names);
> +}
> +
> int
> main(int argc, char **argv)
> {
> @@ -360,8 +427,14 @@ main(int argc, char **argv)
> nic_stats_clear(i);
> else if (reset_xstats)
> nic_xstats_clear(i);
> + else if (enable_metrics)
> + metrics_display(i);
> }
> }
>
> + /* print port independent stats */
> + if (enable_metrics)
> + metrics_display(RTE_METRICS_GLOBAL);
> +
> return 0;
> }
> --
> 2.5.5
next prev parent reply other threads:[~2017-01-17 11:08 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-24 14:58 [dpdk-dev] [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 ` [dpdk-dev] [PATCH v2 0/3] expanded statistic reporting Remy Horton
2016-10-28 1:04 ` [dpdk-dev] [RFC PATCH v2 1/3] lib: add information metrics library Remy Horton
2016-10-28 1:04 ` [dpdk-dev] [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 ` [dpdk-dev] [RFC PATCH v2 3/3] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-04 3:36 ` [dpdk-dev] [PATCH v3 0/3] Expanded statistics reporting Remy Horton
2016-11-04 3:36 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v3 2/3] lib: add bitrate statistics library Remy Horton
2016-11-04 3:36 ` [dpdk-dev] [PATCH v3 3/3] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-15 7:15 ` [dpdk-dev] [PATCH v4 0/3] Expanded statistics reporting Remy Horton
2016-11-15 7:15 ` [dpdk-dev] [PATCH v4 1/3] lib: add information metrics library Remy Horton
2016-11-15 7:15 ` [dpdk-dev] [PATCH v4 2/3] lib: add bitrate statistics library Remy Horton
2016-11-15 15:17 ` Pattan, Reshma
2016-11-15 7:15 ` [dpdk-dev] [PATCH v4 3/3] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-18 8:00 ` [dpdk-dev] [PATCH v5 0/4] Expanded statistics reporting Remy Horton
2016-11-18 8:00 ` [dpdk-dev] [PATCH v5 1/4] lib: add information metrics library Remy Horton
2016-11-18 8:00 ` [dpdk-dev] [PATCH v5 2/4] lib: add bitrate statistics library Remy Horton
2016-11-18 8:00 ` [dpdk-dev] [PATCH v5 3/4] app/test-pmd: add support for bitrate statistics Remy Horton
2016-11-18 8:00 ` [dpdk-dev] [PATCH v5 4/4] latencystats: added new library for latency stats Remy Horton
2017-01-11 16:03 ` [dpdk-dev] [PATCH v6 0/4] Expanded statistics reporting Remy Horton
2017-01-11 16:03 ` [dpdk-dev] [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 ` [dpdk-dev] [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 ` [dpdk-dev] [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 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v6 0/4] Expanded statistics reporting Thomas Monjalon
2017-01-16 16:19 ` [dpdk-dev] [PATCH v7 0/6] " Remy Horton
2017-01-16 16:19 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v7 2/6] app/proc_info: add metrics displaying Remy Horton
2017-01-17 11:08 ` Van Haaren, Harry [this message]
2017-01-17 14:27 ` Remy Horton
2017-01-16 16:19 ` [dpdk-dev] [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 ` [dpdk-dev] [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 ` [dpdk-dev] [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 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v8 0/7] Expanded statistics reporting Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 1/7] lib: add information metrics library Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 2/7] app/proc_info: add metrics displaying Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 3/7] lib: add bitrate statistics library Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 6/7] lib: added new library for latency stats Remy Horton
2017-01-17 23:24 ` [dpdk-dev] [PATCH v8 7/7] app/test-pmd: add latency statistics calculation Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [PATCH v9 0/7] Expanded statistics reporting Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v9 2/7] app/proc_info: add metrics displaying Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [PATCH v9 3/7] lib: add bitrate statistics library Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [PATCH v9 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [PATCH v9 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [PATCH v9 6/7] lib: added new library for latency stats Remy Horton
2017-01-18 15:05 ` [dpdk-dev] [PATCH v9 7/7] app/test-pmd: add latency statistics calculation Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 0/7] Expanded statistics reporting Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 1/7] lib: add information metrics library Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 2/7] app/proc_info: add metrics displaying Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 3/7] lib: add bitrate statistics library Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 5/7] mbuf: add a timestamp to the mbuf for latencystats Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 6/7] lib: added new library for latency stats Remy Horton
2017-02-03 10:33 ` [dpdk-dev] [PATCH v10 7/7] app/test-pmd: add latency statistics calculation Remy Horton
2017-02-16 10:53 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v11 " Remy Horton
2017-03-09 16:25 ` [dpdk-dev] [PATCH v11 1/7] lib: add information metrics library Remy Horton
2017-03-09 16:25 ` [dpdk-dev] [PATCH v11 2/7] app/proc_info: add metrics displaying Remy Horton
2017-03-09 16:25 ` [dpdk-dev] [PATCH v11 3/7] lib: add bitrate statistics library Remy Horton
2017-03-09 16:25 ` [dpdk-dev] [PATCH v11 4/7] app/test-pmd: add bitrate statistics calculation Remy Horton
2017-03-09 16:25 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v11 6/7] lib: added new library for latency stats Remy Horton
2017-03-09 16:25 ` [dpdk-dev] [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=E923DB57A917B54B9182A2E928D00FA6129E3B77@IRSMSX102.ger.corp.intel.com \
--to=harry.van.haaren@intel.com \
--cc=dev@dpdk.org \
--cc=remy.horton@intel.com \
--cc=reshma.pattan@intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).