[Babel-users] profiling at 10,000 routes

Dave Taht dave.taht at gmail.com
Wed Oct 10 12:50:39 BST 2018


I think I found your optimization for "3" from those years back -
RESEND_MAX = 3?

'cause

 92.52     18.17    18.17 38243948     0.00     0.00  find_resend
  1.88     18.54     0.37  2167210     0.00     0.00  find_route_slot
  1.22     18.78     0.24 42087697     0.00     0.00  timeval_minus_msec
  0.66     18.91     0.13     9229     0.01     1.98  recompute_resend_time
  0.31     18.97     0.06      672     0.09     8.32  update_neighbour_metric

fix with binary search? timer wheel? ?

as a side note:

You will be pleased to know that, merely 15 years after posix 2003
obsoleted bcmp,
that gcc 7 (and llvm) actually does do the right thing with turning
memcmp(a,b,16) ==0  into something better than a human can write.

on x86_64 it generates my beloved xors, but reloads the regs for the
constant prefix being compared. on mips it generates some pretty
branchy code but has much better register reuse. The gcc optimization
is based on the idea that most of the
time a compare has a difference in under 7 bytes.

prior to 7, no (openwrt is gcc 7, ubuntu 16.x is 5.3).

I'd definitely inline v4mapped in util.h though (says this increasingly decrepit
old assembly language programmer). I have a couple other "better"
fixes that fell out
of it (notably reorging multiple structures to have less holes and
better alignment
on 64 bit arches, checking for ENOBUFS), and yep, lots of routes does you in

Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::230:18ff:fec9:de9c
Late hello: bufferbloated neighbor fe80::230:18ff:fec9:de9c
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::f6f2:6dff:feb6:a01c
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::46d9:e7ff:fe93:822e
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353
Late hello: bufferbloated neighbor fe80::e091:f5ff:febe:a353


--
Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-205-9740



More information about the Babel-users mailing list