[ovs-dev] [PATCH v8 0/3] dpif-netdev: Detailed PMD performance metrics and supervision
Jan Scheurich
jan.scheurich at ericsson.com
Thu Feb 15 16:32:42 UTC 2018
Yes, I tested both variants. The rxq_recv() variant is a bit faster.
The main reason I settled on the rxq_recv() option is that it is much simpler and has a potential use case also in Billy's upcoming patch for rxq priority polling, where it might add value to know the remaining packets in the queue.
BR, Jan
> -----Original Message-----
> From: Ilya Maximets [mailto:i.maximets at samsung.com]
> Sent: Thursday, 15 February, 2018 15:58
> To: Jan Scheurich <jan.scheurich at ericsson.com>; dev at openvswitch.org
> Cc: ktraynor at redhat.com; ian.stokes at intel.com; billy.o.mahony at intel.com
> Subject: Re: [PATCH v8 0/3] dpif-netdev: Detailed PMD performance metrics and supervision
>
> Hello Jan.
>
> I have a question: Have you tested the performance difference between
> netdev_rxq_length() and rxq_recv() parameter approaches to get the rx queue size?
>
> Best regards, Ilya Maximets.
>
> On 13.02.2018 19:03, Jan Scheurich wrote:
> > Gentle reminder to review this series which unfortunately missed the 2.9 deadline.
> >
> > I checked and the patches still apply on today's master.
> > So far I have received one comment from Billy
> > https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343808.html
> >
> > Thanks, Jan
> >
> >> -----Original Message-----
> >> From: Jan Scheurich
> >> Sent: Friday, 26 January, 2018 13:20
> >> To: dev at openvswitch.org
> >> Cc: ktraynor at redhat.com; ian.stokes at intel.com; i.maximets at samsung.com; billy.o.mahony at intel.com; Jan Scheurich
> >> <jan.scheurich at ericsson.com>
> >> Subject: [PATCH v8 0/3] dpif-netdev: Detailed PMD performance metrics and supervision
> >>
> >> 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 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.
> >>
> >> v7 -> v8:
> >> * Rebased on to master (commit 4e99b70df)
> >> * Implemented comments from Ilya Maximets and Billy O'Mahony.
> >> * Replaced netdev_rxq_length() introduced in v7 by optional out
> >> parameter for the remaining rx queue len in netdev_rxq_recv().
> >> * Fixed thread synchronization issues in clearing PMD stats:
> >> - Use mutex to control whether to clear from main thread directly
> >> or in PMD at start of next iteration.
> >> - Use mutex to prevent concurrent clearing and printing of metrics.
> >> * Added tx packet and batch stats to pmd-perf-show output.
> >> * Delay warning for suspicious iteration to the iteration in which
> >> we also log the neighborhood to not pollute the logged iteration
> >> stats with logging costs.
> >> * Corrected the exact number of iterations logged before and after a
> >> supicious iteration.
> >> * Introduced options -e and -ne in pmd-perf-log-set to control whether
> >> to *extend* the range of logged iterations when additional supicious
> >> iterations are detected before the scheduled end of logging interval
> >> is reached.
> >> * Exclude logging cycles from the iteration stats to avoid confusing
> >> ghost peaks.
> >> * Performance impact compared to master less than 1% even with
> >> supervision enabled.
> >>
> >> v5 -> v7:
> >> * Rebased on to dpdk_merge (commit e666668)
> >> - New base contains earlier refactoring parts of series.
> >> * Implemented comments from Ilya Maximets and Billy O'Mahony.
> >> * Replaced piggybacking qlen on dp_packet_batch with a new netdev API
> >> netdev_rxq_length().
> >> * Thread-safe clearing of pmd counters in pmd_perf_start_iteration().
> >> * Fixed bug in reporting datapath stats.
> >> * Work-around a bug in DPDK rte_vhost_rx_queue_count() which sometimes
> >> returns bogus in the upper 16 bits of the uint32_t return value.
> >>
> >> 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):
> >> netdev: Add optional qfill output parameter to rxq_recv()
> >> dpif-netdev: Detailed performance stats for PMDs
> >> dpif-netdev: Detection and logging of suspicious PMD iterations
> >>
> >> NEWS | 5 +
> >> lib/automake.mk | 1 +
> >> lib/dpif-netdev-perf.c | 551 +++++++++++++++++++++++++++++++++++++++++++-
> >> lib/dpif-netdev-perf.h | 300 +++++++++++++++++++++++-
> >> lib/dpif-netdev-unixctl.man | 216 +++++++++++++++++
> >> lib/dpif-netdev.c | 187 ++++++++++++++-
> >> lib/netdev-bsd.c | 8 +-
> >> lib/netdev-dpdk.c | 25 +-
> >> lib/netdev-dummy.c | 8 +-
> >> lib/netdev-linux.c | 7 +-
> >> lib/netdev-provider.h | 7 +-
> >> lib/netdev.c | 5 +-
> >> lib/netdev.h | 3 +-
> >> manpages.mk | 2 +
> >> vswitchd/ovs-vswitchd.8.in | 27 +--
> >> vswitchd/vswitch.xml | 12 +
> >> 16 files changed, 1302 insertions(+), 62 deletions(-)
> >> create mode 100644 lib/dpif-netdev-unixctl.man
> >>
> >> --
> >> 1.9.1
> >
> >
> >
> >
More information about the dev
mailing list