This set of commits adds a new library for OVS that allows for measuring the performance of operations in OVS and compiling statistics from these measurements.
For developers, this can provide a measurement of something that is either finer or coarser-grained than what is easily measured with a profiler. v2 -> v3: * A background thread has been introduced that maintains the performance structures. * To reduce contention in the threads that are reporting performance measurements, they no longer acquire a mutex. Instead, they pass information over a pipe to the background thread. * To reduce memory usage, the sample vectors have a maximum size they can reach. In addition, the measured intervals are now smaller. Rather than one minute, five minute, and ten minute measurements, we now do ten second, thirty second, and one minute measurements. v1 -> v2: In version 1, there was a patch included that would save statistics to the OVS database. Based on feedback from that, I decided to forgo database support for the time being. If database support were to be added, using a time series database rather than the OVS database would be the way to go. Removal of the database patch had a snowball effect that has reduced the overall size of the patchset. Mark Michelson (2): Add performance measuring API Measure performance of ovn-controller loop. lib/automake.mk | 2 + lib/performance.c | 497 ++++++++++++++++++++++++++++++++++++++++ lib/performance.h | 41 ++++ ovn/controller/ovn-controller.c | 17 ++ 4 files changed, 557 insertions(+) create mode 100644 lib/performance.c create mode 100644 lib/performance.h -- 2.13.6 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev