mbox series

[ovs-dev,v2,0/3] : dpif-netdev: Detailed PMD performance metrics and supervision

Message ID CFF8EF42F1132E4CBE2BF0AB6C21C58D7883B164@ESESSMB107.ericsson.se
Headers show
Series : dpif-netdev: Detailed PMD performance metrics and supervision | expand

Message

Jan Scheurich Oct. 18, 2017, 10:46 a.m. UTC
Friendly reminder to test and/or review this patch series.

The run-time performance of PMDs is often difficult to understand and trouble-shoot. The existing PMD statistics counters only provide a coarse grained average picture. At packet rates of several Mpps sporadic drops of packet bursts happen at sub-millisecond time scales and are impossible to capture and analyze with existing tools.

This patch set refactors the existing PMD statistics into a dedicated submodule and collects a large number of important PMD performance metrics per PMD iteration, maintaining histograms and circular histories for iteration metrics and millisecond averages. To capture sporadic drop events, the patch set can be configured to monitor iterations for suspicious metrics and to log the neighborhood of such iterations for off-line analysis.

The extra cost for the performance metric collection and the supervision has been measured to be in the order of 1% compared to the base commit in a phy-to-phy setup with VXLAN tunnels (two datapath passes per packet). We believe this is fast enough to not warrant a build- or run-time configuration option to disable this.

The first patch in the series fully includes the changes proposed in Darrel's earlier "[patch_v5 0/3] dpif-netdev: Fix and refactor pmd stats" (https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337686.html).

Jan Scheurich (3)
	Patch 1/3: Refactor PMD performance into dpif-netdev-perf
	Patch 2/3: Detailed performance stats for PMDs
	Patch 3/3: Detection and logging of suspicious PMD iterations

v1 -> v2:
	Rebased to OVS master (commit 7468ec788)
	No other changes compared to v1

lib/automake.mk        |   2 +
 lib/dp-packet.h        |   2 +
 lib/dpif-netdev-perf.c | 512 +++++++++++++++++++++++++++++++++++++++++++++++++
 lib/dpif-netdev-perf.h | 317 ++++++++++++++++++++++++++++++
 lib/dpif-netdev.c      | 438 +++++++++++++++++++++++-------------------
 lib/netdev-dpdk.c      |  28 ++-
 lib/netdev-dpdk.h      |  14 ++
 ofproto/ofproto-dpif.c |   3 +-
 tests/pmd.at           |  22 ++-
 9 files changed, 1132 insertions(+), 206 deletions(-)

Comments

Jan Scheurich Nov. 21, 2017, 8:56 a.m. UTC | #1
I submitted a rebased version of this series yesterday.
Please look at the new v3 series instead.
/Jan

> -----Original Message-----
> From: Jan Scheurich
> Sent: Wednesday, 18 October, 2017 12:46
> To: 'ovs-dev@openvswitch.org' <ovs-dev@openvswitch.org>
> Cc: Jan Scheurich <jan.scheurich@ericsson.com>
> Subject: [PATCH v2 0/3]: dpif-netdev: Detailed PMD performance metrics and supervision
> 
> Friendly reminder to test and/or review this patch series.
> 
> The run-time performance of PMDs is often difficult to understand and trouble-shoot. The existing PMD statistics counters only provide a
> coarse grained average picture. At packet rates of several Mpps sporadic drops of packet bursts happen at sub-millisecond time scales
> and are impossible to capture and analyze with existing tools.
> 
> This patch set refactors the existing PMD statistics into a dedicated submodule and collects a large number of important PMD
> performance metrics per PMD iteration, maintaining histograms and circular histories for iteration metrics and millisecond averages. To
> capture sporadic drop events, the patch set can be configured to monitor iterations for suspicious metrics and to log the neighborhood of
> such iterations for off-line analysis.
> 
> The extra cost for the performance metric collection and the supervision has been measured to be in the order of 1% compared to the
> base commit in a phy-to-phy setup with VXLAN tunnels (two datapath passes per packet). We believe this is fast enough to not warrant a
> build- or run-time configuration option to disable this.
> 
> The first patch in the series fully includes the changes proposed in Darrel's earlier "[patch_v5 0/3] dpif-netdev: Fix and refactor pmd stats"
> (https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337686.html).
> 
> Jan Scheurich (3)
> 	Patch 1/3: Refactor PMD performance into dpif-netdev-perf
> 	Patch 2/3: Detailed performance stats for PMDs
> 	Patch 3/3: Detection and logging of suspicious PMD iterations
> 
> v1 -> v2:
> 	Rebased to OVS master (commit 7468ec788)
> 	No other changes compared to v1
> 
> lib/automake.mk        |   2 +
>  lib/dp-packet.h        |   2 +
>  lib/dpif-netdev-perf.c | 512 +++++++++++++++++++++++++++++++++++++++++++++++++
>  lib/dpif-netdev-perf.h | 317 ++++++++++++++++++++++++++++++
>  lib/dpif-netdev.c      | 438 +++++++++++++++++++++++-------------------
>  lib/netdev-dpdk.c      |  28 ++-
>  lib/netdev-dpdk.h      |  14 ++
>  ofproto/ofproto-dpif.c |   3 +-
>  tests/pmd.at           |  22 ++-
>  9 files changed, 1132 insertions(+), 206 deletions(-)