From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 10F6911001 for ; Thu, 30 Mar 2017 15:18:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490879936; x=1522415936; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=t20/l2OP9WFKq/5lK46Jikndd3YDj7uBvZ04XVWa0w0=; b=ZlIcTKPGaH6Ct3FAor9PMwOIZq009A+RPMP5Ie9Pcdi4HqzQyrDFN41z ikIZnAgFEjKOl/rtYGtWNDKIiEWp1A==; Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Mar 2017 06:18:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,246,1486454400"; d="scan'208";a="242033822" Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by fmsmga004.fm.intel.com with ESMTP; 30 Mar 2017 06:18:53 -0700 Received: from irsmsx110.ger.corp.intel.com ([169.254.15.151]) by IRSMSX102.ger.corp.intel.com ([169.254.2.153]) with mapi id 14.03.0319.002; Thu, 30 Mar 2017 14:18:52 +0100 From: "Pattan, Reshma" To: "Horton, Remy" , "dev@dpdk.org" CC: Thomas Monjalon Thread-Topic: [dpdk-dev] [PATCH v13 0/6] Expanded statistics reporting Thread-Index: AQHSqMoHqQfE3e2u9k291FlHpSBeW6GtXelg Date: Thu, 30 Mar 2017 13:18:52 +0000 Message-ID: <3AEA2BF9852C6F48A459DA490692831F0112F4B3@irsmsx110.ger.corp.intel.com> References: <1490646097-27803-1-git-send-email-remy.horton@intel.com> <1490812128-4172-1-git-send-email-remy.horton@intel.com> In-Reply-To: <1490812128-4172-1-git-send-email-remy.horton@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYmRiMjE3ZWMtODYzNy00MjNlLThmNDEtMGFiMTZjNDU4YWM1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IldSYk1WcXRIbktlTW16R1c5XC9BV3lmZG9oUFVmNnNrWU16SlRkN2t4aDg4PSJ9 x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v13 0/6] Expanded statistics reporting X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2017 13:18:56 -0000 > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Remy Horton > Sent: Wednesday, March 29, 2017 7:29 PM > To: dev@dpdk.org > Cc: Thomas Monjalon > Subject: [dpdk-dev] [PATCH v13 0/6] Expanded statistics reporting >=20 > This patchset consists of three libraries: A Metrics library for distribu= ting > device information, a library that calculates bit-rate statistics, and a = library > that calculates latency statistics. The latter two libraries make use of = the first > library. >=20 > Metrics Library > --------------- > The Metrics library implements a mechanism by which producers can publish > numeric information for later querying by consumers. > In practice producers will typically be other libraries or primary proces= ses, > whereas consumers will typically be applications. >=20 > Metrics themselves are statistics that are not generated by PMDs. > Metric information is populated using a push model, where producers > update the values contained within the metric library by calling an updat= e > function on the relevant metrics. Consumers receive metric information by > querying the central metric data, which is held in shared memory so it ca= n > also be accessed by secondary processes. >=20 > For each metric, a separate value is maintained for each port id, and whe= n > publishing metric values the producers need to specify which port is bein= g > updated. In addition there is a special id RTE_METRICS_GLOBAL that is > intended for global statistics that are not associated with any individua= l > device. Since the metrics library is self-contained, the only restriction= on port > numbers is that they are less than RTE_MAX_ETHPORTS - there is no > requirement for the ports to actually exist. >=20 > Metrics must first be registered, which is the way producers declare the > names of the metrics they will be publishing. Registration can either be = done > individually, or as a group as a metric set. The intention is for all met= rics in a > set to be updated in one go, although it is also possible for metrics wit= hin a > set to be updated individually. It is up to the producers to update metri= cs as > required. >=20 > Bit-rate statistics library > --------------------------- > The bit-rate library calculates the mean, the exponentially-weighted movi= ng > average, and peak bit-rates for each active port (i.e. network device). T= hese > statistics are then reported via the metrics library using the following = names: > mean_bits_in, mean_bits_out, ewma_bits_in, ewma_bits_out, peak_bits_in, > and peak_bits_out. The sampling window used for calculation is decided by > the application requiring the statistics. >=20 > Latency statistics library > -------------------------- > The latency statistics library calculates the port-to-port latency of pac= ket > processing by a DPDK application, reporting the minimum, average, and > maximum nano-seconds that packet processing takes, as well as the jitter = in > processing delay. These statistics are then reported via the metrics libr= ary > using the following names: min_latency_ns, avg_latency_ns, mac_latency_ns= , > and jitter_ns. >=20 > This is dependent on http://dpdk.org/dev/patchwork/patch/21607/ for the > timestamp MBUF field. >=20 > For more details on the metrics library and the Bit-rate and Latency > components see the Programmer's Guide updates in the patchset. > -- > v13 changes: > * Rebased to latest master (b88161be4227) > * Updated copyright years to 2017 > * Some release notes were in wrong file (17.02 rather than 17.05) > * Added a missing NULL check > * Doxygen & comment spelling corrections > * Authorship of some patches changed to reflect main contributer > * EWMA calculation for inbound and outbound bitrates were subtly > different > * Use sizeof() rather than magic numbers for array sizes > * The recent feb9f680cd2c ("mk: optimize directory dependencies") require= d > DEPDIRS-librte_ dependency information to be added to lib/Makefile >=20 > v12 changes: > * Rebased to latest master > * Misspellings in MAINTAINERS corrected > * Removed MBUF modifications (use Olivier's MBUF rework) >=20 > v11 changes: > * Rebased > * .map references to 17.02 changed to 17.05 > * Release ntoes moved to release_17_05.rst > * Bit-rate library now also gives unfiltered average >=20 > v10 changes: > * Rebased > * Relocated some config-related directives. > * Removed incorrect capitalisations in API docs. > * Formatting & detail corrections in release notes. > * Moved around struct member descriptions. > * Rewritten rte_metrics.h file description. > * Rewritten description of RTE_METRICS_GLOBAL. > * Used 'producers' and 'consumers' as terms. > * Removed markup (bold text) in Doxygen tags. > * Added programming guide section. >=20 > v9 changes: > * Updated .map files to reflect function changes in v8 > * Fixed rte_malloc() of zero bytes in proc_info when no metrics exist > * Fixed rte_metrics_init not being called explicitly in testpmd >=20 > v8 changes: > * Release notes correction > * Updated copyright years > * rte_metric_init() takes socket id & must be explicitly called > * rte_metrics_reg_metric renamed to rte_metrics_reg_name() > * rte_metrics_update_metric() renamed to rte_metrics_update_value() > * Doxygen updates > * Changed malloc()/free() to rte_malloc()/rte_free() > * Removed redundant memset() > * rte_stats_bitrates_s renamed to rte_stats_bitrates_s > * Split mbuf change to own patch for visibility > * CYCLES_PER_NS now a static inline function > * latency: "hidden" pthread creation now has polling API instead. > * Struct declarations and variable definitions cleaned up > * Double initialization of the latency library now returns -EEXIST > * MAINTAINERS entry for layenctstats in correct section >=20 > v7 changes: > * RTE_METRICS_NONPORT renamed to RTE_METRICS_GLOBAL > * Multiple changes to rte_metrics.h doxygen documentation > * Split apart latency patch into lib, test-pmd, & proc_info parts > * Reordered patches by functionality > * Insufficent capacity return value changed from -ERANGE to actual size > * Cache alignment in bitrate library > * Tightened up const usage to avoid STATIC_CONST_CHAR_ARRAY warning > * Reshma reinstated as author for (now split) latency patch > * Rebase to master >=20 > v6 changes: > * Metrics display now has "Non port specific" rather than "port -1" > * Fixed sign issue in EWMA delta calculation > * Rebased to master >=20 > v5 changes: > * Updated Shared Library Versions in release notes > * Merged in Reshma's latencystats library >=20 > v4 changes: > * References to 16.11 changed to 17.02 > * Fetching of non-port values was broken > * Added sanity checks to value fetching > * rte_stat_value renamed to rte_metric_value > * Corrected doxygen descriptions > * Added MAINTAINERS entries > * Added #ifdef directives to bitrate code in test-pmd >=20 > v3 changes: > * Marked rte_stats_bitrate_s as internal > * Minor integer roundoff correction > * Coding style corrections > * Removed spurious object allocation > * Changes to rte_metrics.[ch] moved from Patch 2/3 to 1/3. > * Reintroduced non-port values (RTE_METRICS_NONPORT) > * Added spinlocks to metric library > * Removed spurious test registration/update > * Added release notes entries >=20 > v2 changes: > * Uses a new metrics library rather than being part of ethdev >=20 >=20 > Remy Horton (3): > lib: add information metrics library > lib: add bitrate statistics library > app/test-pmd: add bitrate statistics calculation >=20 > Reshma Pattan (3): > app/proc_info: add metrics displaying > lib: added new library for latency stats > app/test-pmd: add latency statistics calculation >=20 > MAINTAINERS | 12 + > app/proc_info/main.c | 79 ++++- > app/test-pmd/parameters.c | 20 +- > app/test-pmd/testpmd.c | 78 ++++- > app/test-pmd/testpmd.h | 6 +- > config/common_base | 15 + > doc/api/doxy-api-index.md | 5 +- > doc/api/doxy-api.conf | 5 +- > doc/guides/prog_guide/index.rst | 3 +- > doc/guides/prog_guide/metrics_lib.rst | 299 +++++++++++++++= ++ > doc/guides/rel_notes/release_17_05.rst | 21 ++ > lib/Makefile | 6 + > lib/librte_bitratestats/Makefile | 53 +++ > lib/librte_bitratestats/rte_bitrate.c | 145 +++++++++ > lib/librte_bitratestats/rte_bitrate.h | 84 +++++ > .../rte_bitratestats_version.map | 9 + > lib/librte_latencystats/Makefile | 56 ++++ > lib/librte_latencystats/rte_latencystats.c | 361 > +++++++++++++++++++++ > lib/librte_latencystats/rte_latencystats.h | 154 +++++++++ > .../rte_latencystats_version.map | 11 + > lib/librte_metrics/Makefile | 51 +++ > lib/librte_metrics/rte_metrics.c | 302 +++++++++++++++= ++ > lib/librte_metrics/rte_metrics.h | 240 ++++++++++++++ > lib/librte_metrics/rte_metrics_version.map | 13 + > mk/rte.app.mk | 3 + > 25 files changed, 2023 insertions(+), 8 deletions(-) create mode 100644 > doc/guides/prog_guide/metrics_lib.rst > create mode 100644 lib/librte_bitratestats/Makefile create mode 100644 > lib/librte_bitratestats/rte_bitrate.c > create mode 100644 lib/librte_bitratestats/rte_bitrate.h > create mode 100644 lib/librte_bitratestats/rte_bitratestats_version.map > create mode 100644 lib/librte_latencystats/Makefile create mode 100644 > lib/librte_latencystats/rte_latencystats.c > create mode 100644 lib/librte_latencystats/rte_latencystats.h > create mode 100644 lib/librte_latencystats/rte_latencystats_version.map > create mode 100644 lib/librte_metrics/Makefile create mode 100644 > lib/librte_metrics/rte_metrics.c create mode 100644 > lib/librte_metrics/rte_metrics.h create mode 100644 > lib/librte_metrics/rte_metrics_version.map >=20 > -- > 2.5.5 Since I have only very few minor comments on this patch set , I will ack th= is patch, please feel free to add my ack for next patch set. Series Acked-by: Reshma Pattan