[ovs-dev] [PATCH v5 0/3] dpif-netdev: Detailed PMD performance metrics and supervision
Jan Scheurich
jan.scheurich at ericsson.com
Thu Jan 4 12:07:43 UTC 2018
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 PVP
setup with L3 pipeline over VXLAN tunnels. For that reason the metrics
collection is disabled by default and can be enabled at run-time through
configuration.
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).
v4->v5:
Rebased to master (commit e9de6c0)
Implemented comments from Aaron Conole and Darrel Ball
v3->v4:
Rebased to master (commit 4d0a31b)
Reverting changes to struct dp_netdev_pmd_thread
Make metrics collection configurable
Several bugfixes
v2->v3:
Rebased to OVS master (commit 3728b3b)
Non-trivial adaptation to struct dp_netdev_pmd_thread
refactored in commit a807c157 (Bhanu)
No other changes compared to v2
v1 -> v2:
Rebased to OVS master (commit 7468ec788)
No other changes compared to v1
Jan Scheurich (3):
dpif-netdev: Refactor PMD performance into dpif-netdev-perf
dpif-netdev: Detailed performance stats for PMDs
dpif-netdev: Detection and logging of suspicious PMD iterations
lib/automake.mk | 2 +
lib/dp-packet.h | 2 +
lib/dpif-netdev-perf.c | 515 +++++++++++++++++++++++++++++++++++++++++++++++++
lib/dpif-netdev-perf.h | 328 +++++++++++++++++++++++++++++++
lib/dpif-netdev.c | 492 +++++++++++++++++++++++++++-------------------
lib/netdev-dpdk.c | 23 ++-
lib/netdev-dpdk.h | 14 ++
ofproto/ofproto-dpif.c | 3 +-
tests/pmd.at | 22 ++-
9 files changed, 1184 insertions(+), 217 deletions(-)
create mode 100644 lib/dpif-netdev-perf.c
create mode 100644 lib/dpif-netdev-perf.h
--
1.9.1
More information about the dev
mailing list