The goal of this series is to add an appctl command to retrieve detailed performance statistics from the pmd thread execution. These statistics include exact match cache and masked classifier hits and rough cycles counters.
This series also fixes some concurrency issues with statistics in the userspace datapath by using atomic operations. v4 -> v5: * Drop 64-bit stats lock and use atomic types for stats and cycles (thanks to Ethan and Jarno). * Split dpif_netdev_pmd_info() into multiple functions. * Remove support for DPIF_FP_ZERO_STATS in the userspace datapath. v3 -> v4: * Avoid creating an empty structure on MSVC 64-bit builds (thanks Ben and Guru) v2 -> v3: * Rename cntlock to seqlock (suggested by Ben) * Initialize flow stats seqlock in dpif-netdev * Change OVS_UNLIKELY to OVS_LIKELY in seqlock.h (v2 erroneously changed the semantics of this) * Minor style and typos fixes * Rebase v1 -> v2: * Group writes to stats variables * Introduce 64-bit stats lock, based on new cntlock (thanks to Jarno) * Fix a typo (thanks to Jarno) * Protect existing dpif-netdev stats updates with new locks (thanks to Jarno) * Protect new stats updates with new locks (thanks to Jarno) * Change rte_get_timer_cycles() to rte_get_tsc_cycles(). This prevents an OVS DPDK build from crashing when DPDK has not been enabled at runtime Daniele Di Proietto (7): dpif-netdev: Remove support for DPIF_FP_ZERO_STATS flag dpif-netdev: Group statistics updates in the slow path. dpif-netdev: Make datapath and flow stats atomic. dpif-netdev: Count exact match cache hits. dpif-netdev: Add simple per pmd-thread cycles counters. dpif-provider: Add class init function. dpif-netdev: Add dpif-netdev/pmd-stats-* appctl commands. INSTALL.DPDK.md | 8 + lib/dpif-netdev.c | 364 +++++++++++++++++++++++++++++++++++++++++---- lib/dpif-netlink.c | 1 + lib/dpif-provider.h | 8 + lib/dpif.c | 8 + vswitchd/ovs-vswitchd.8.in | 18 +++ 6 files changed, 376 insertions(+), 31 deletions(-) -- 2.1.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev