I recently made a logical flow refactor patch series and was asked to
benchmark it to ensure that we were not introducing any performance
regressions. In my case, I was lucky that the vital incremental engine
nodes already had stopwatches that I could use to compare performance.

However, if I had wanted to test performance of other engine nodes, that
would not have been as easy. That's when I came up with this idea. With
this change set, we add stopwatches to every incremental engine node
automatically. With these stopwatches, we can measure recomputes and we
can measure change handlers.

This will be a helpful metric to have when finding performance
regressions, and it can also offer insight into the time savings between
incremental processing and full recomputes.

With the addition of new stopwatches to incremental nodes, it means that
there are now some redundant stopwatches. For instance, the "lflow_run"
stopwatch introduced in this commit now supersedes the existing
"build_lflows" stopwatch. However, I have not removed any existing
stopwatches in this series. The reason is that I do not want to break
any tests or other scripts that rely on these stopwatches.

Mark Michelson (4):
  inc-proc-eng: Add wrappers for callbacks.
  inc-proc-eng: Add recompute stopwatch.
  inc-proc-eng: Add change handler stopwatches.
  inc-proc-eng: Add command to list node stopwatches.

 lib/inc-proc-eng.c | 60 ++++++++++++++++++++++++++++++++++++++++++----
 lib/inc-proc-eng.h |  5 +++-
 2 files changed, 60 insertions(+), 5 deletions(-)

-- 
2.51.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to