From: Remy Horton <remy.horton@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v9 1/7] lib: add information metrics library
Date: Mon, 30 Jan 2017 21:44:17 +0000 [thread overview]
Message-ID: <dbfdcee7-a60a-3d3e-6c6f-b720c7ca6d01@intel.com> (raw)
In-Reply-To: <1659974.13GHXkxjEr@xps13>
Some points addressed. Will cover other ones later.
On 30/01/2017 15:50, Thomas Monjalon wrote:
[..]
>> +CONFIG_RTE_LIBRTE_METRICS=y
> I know the config file is not so well sorted.
> However it would be a bit more logical below CONFIG_RTE_LIBRTE_JOBSTATS.
Done. Rebase merging doesn't help with sorting here.
>> + [Device Metrics] (@ref rte_metrics.h),
> No first letter uppercase in this list.
Fixed.
>> + A library that allows information metrics to be added and update. It is
> update -> updated
Fixed.
> added and updated by who?
Elaborated.
>> + intended to provide a reporting mechanism that is independent of the
>> + ethdev library.
> and independent of the cryptodev library?
Yes. The aim is to have no sub-dependencies.
My original plan was to introduce some form of parameter registration
scheme into xstats to replace the current hard-coded tables, since I
suspected libbitrate/liblatency would not be the last additions. I
decided to spin it out into a library in its own right, as it seemed
cleaner than shoving a load of non-driver stuff into xstats.
> Does it apply to other types of devices (cryptodev/eventdev)?
I've not been following cryptodev/eventdev, but short answer yes.
>> This section is a comment. do not overwrite or remove it.
>> Also, make sure to start the actual text at the margin.
>> =========================================================
> Your text should start below this line, and indented at the margin.
Fixed.
>> + + librte_bitratestats.so.1
> not part of this patch
Fixed. Artefact of sorting out a merge mess-up.
>> +DIRS-$(CONFIG_RTE_LIBRTE_METRICS) += librte_metrics
> insert it below librte_jobstats is a better choice
Done.
>> +struct rte_metrics_meta_s {
>> + char name[RTE_METRICS_MAX_NAME_LEN];
>> + uint64_t value[RTE_MAX_ETHPORTS];
>> + uint64_t nonport_value;
>> + uint16_t idx_next_set;
>> + uint16_t idx_next_stat;
>> +};
> It would be a lot easier to read with comments near each field.
> It would avoid to forget some fields like nonport_value in this struct.
> You do not need to use a doxygen syntax in a .c file.
Noted. Even though Doxygen isn't required, I think it preferable to use
a consistent style in both .c and .h files.
>> + * RTE Metrics module
> RTE is not meaningful here.
> Please prefer DPDK.
Fixed.
>> + * Metric information is populated using a push model, where the
>> + * information provider calls an update function on the relevant
>> + * metrics. Currently only bulk querying of metrics is supported.
>> + */
> This description should explain who is a provider (drivers?) and who
> is the reader (registered thread?).
Noted. Will elaborate.
> What do you mean by "push model"? A callback is used?
Updating is done in response to producers having new information. In
contrast in a pull model an update would happen in response to a polling
by a consumer.
Originally (back in August I think) I used a pull model where producers
would register callbacks that were called in response to
rte_metrics_get() by a consumer, but that assumed that producers and
consumers were within the same process. Using shared memory and making
it ASLR-safe means not using pointers.
Aside: In this former pull model, port_id was passed verbatim to the
producers' callbacks to interpret in whatever way they saw fit, so there
was no inherant need to stop "magic" values outside the usual 0-255 used
for port ids. Hence where the next thing originally came from...
>> +/**
>> + * Global (rather than port-specific) metric.
> It does not say what kind of constant it is. A special metric id?
Yes. Elaborated.
>> + *
>> + * When used instead of port number by rte_metrics_update_metric()
>> + * or rte_metrics_update_metric(), the global metrics, which are
>> + * not associated with any specific port, are updated.
>> + */
>> +#define RTE_METRICS_GLOBAL -1
>
> I thought you agreed that "port" is not really a good wording.
Certainly within the constant name. Don't see what's wrong with
referring to it in description though.
>> + * An array of this structure is returned by rte_metrics_get_names().
>> + * The struct rte_eth_stats references these names via their array index.
> rte_eth_stats?
Good question - was going to put it down to cut'n'paste while baseing
the descriptions on Olivier Matz's rewording, but that was for xstats..
>> + * Initializes metric module. This function must be called from
>> + * a primary process before metrics are used.
>
> Why not integrating it in the global init?
> Is there some performance drawbacks?
There shouldn't be any significant performance penalities, but I am not
particularly fond in principle of initalising component libraries
regardless of whether they are used. (Actually it was previously
initalised on first use, but that had a race condition.)
>> + * Registering a metric is the way third-parties declare a parameter
> third-party? You mean the provider?
Yes.
>> + * - \b -EINVAL: Error, invalid parameters
>> + * - \b -ENOMEM: Error, maximum metrics reached
> Please, no extra formatting in doxygen.
Fixed.
next prev parent reply other threads:[~2017-01-30 21:44 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
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 [this message]
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=dbfdcee7-a60a-3d3e-6c6f-b720c7ca6d01@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 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).