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
For developers, this can provide a measurement of something that is
either finer or coarser-grained than what is easily measured with a
v2 -> v3:
* A background thread has been introduced that maintains the performance
* 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
dev mailing list