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: [email protected] >> Cc: [email protected]; [email protected]; [email protected]; >> [email protected]; Jan Scheurich >> <[email protected]> >> 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 > > > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
