On Tue, Feb 20, 2018 at 7:39 PM, Lorenzo Bianconi < [email protected]> wrote:
> > On Fri, Feb 16, 2018 at 05:10:29PM +0100, Jakub Sitnicki wrote: > >> Ben, > >> > >> On Wed, Feb 14, 2018 at 09:54 PM GMT, Ben Pfaff wrote: > >> > Jakub Sitnicki demonstrated that repeatedly calculating row hashes is > >> > expensive, so this should improve ovn-northd performance. > >> > > >> > Reported-by: Jakub Sitnicki <[email protected]> > >> > Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2018- > February/344404.html > >> > Signed-off-by: Ben Pfaff <[email protected]> > >> > --- > >> > ovn/lib/ovn-sb-idl.ann | 20 ++++++++++++++++++++ > >> > ovn/lib/ovn-util.c | 27 +++++++++++++++++++++++++++ > >> > ovn/lib/ovn-util.h | 7 +++++++ > >> > ovn/northd/ovn-northd.c | 28 +++++++++++++++++----------- > >> > 4 files changed, 71 insertions(+), 11 deletions(-) > >> > > >> > >> With this series applied the total of CPU cycles consumed by northd and > >> the per-function profile changes dramatically when running a simple > >> benchmark of creating 15 lswitches, 100 lports per each lswitch. > >> > >> `perf stat` for ovn-northd looks like so: > >> > >> before: > >> > >> Performance counter stats for process id '7091': > >> > >> 85263.043641 task-clock (msec) # 0.843 CPUs > utilized > >> 9,859 context-switches # 0.116 K/sec > >> 575 cpu-migrations # 0.007 K/sec > >> 2,243 page-faults # 0.026 K/sec > >> 225,663,620,029 cycles # 2.647 GHz > >> 302,290,105,647 instructions # 1.34 insn per > cycle > >> 53,556,381,940 branches # 628.131 M/sec > >> 435,374,510 branch-misses # 0.81% of all > branches > >> > >> 101.202109604 seconds time elapsed > >> > >> after: > >> > >> Performance counter stats for process id '25306': > >> > >> 50362.124282 task-clock (msec) # 0.474 CPUs > utilized > >> 5,120 context-switches # 0.102 K/sec > >> 1,025 cpu-migrations # 0.020 K/sec > >> 9,546 page-faults # 0.190 K/sec > >> 134,756,308,237 cycles # 2.676 GHz > >> 154,810,279,583 instructions # 1.15 insn per > cycle > >> 27,350,003,179 branches # 543.067 M/sec > >> 216,219,142 branch-misses # 0.79% of all > branches > >> > >> 106.207558198 seconds time elapsed > >> > >> CPU time spent in ovn_lflow_find becomes insignificant (<0.1%) after the > >> changes, so instead let's look at the total cycles spent processing NBDB > >> contents: > >> > >> Children Self Command Shared Object Symbol > >> before: > >> 75.95% 0.01% ovn-northd ovn-northd [.] ovnnb_db_run > >> after: > >> 8.55% 0.02% ovn-northd ovn-northd [.] ovnnb_db_run > >> > >> Honestly, I am not sure where the huge boost comes from. I need to read > >> through the changes more closely. Feel free to add my: > >> > >> Tested-by: Jakub Sitnicki <[email protected]> > > > > Thanks a lot for the testing. Please do feel free to continue reading > > the patch series. I am also surprised that there was so much impact--I > > guess that hashing text strings is really expensive! > > > > Thanks, > > > > Ben. > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > Hi Ben, > > working on automatic test support for OVN ACL reject action I > discovered this commit breaks some ovn.at tests. > In particular: > - 2371: ovn -- dns lookup : 1 HV, 2 LS, 2 LSPs/LS > - 2374: ovn -- 1 LR with distributed router gateway port > > I run git bisect on the current master branch (commit 430d7d156). > Numan reproduced same issues. > I guess they are probably timing issues > > Thanks Lorenzo. I am looking into these failures. Numan > Regards, > Lorenzo > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
