Re: [Babel-users] [PATCH 6/6] babeld-whole: Enable single unit compilation of all of babeld

2017-03-09 Thread Dave Taht
I agree this was a very invasive change. The specific thing that it
enables (for me) is the ability to quickly rebuild with one set of
options that the makefile is not otherwise aware of, and cannot
calculate dependencies for, as in my example:

 make EXTRA_DEFINES="-DNO_DEBUG -DHAVE_NEON" babeld-whole

I'm also considerably more pessimistic about link-time optimizations
vs whole program ones.

___
Babel-users mailing list
Babel-users@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users


Re: [Babel-users] [PATCH 6/6] babeld-whole: Enable single unit compilation of all of babeld

2017-03-09 Thread Juliusz Chroboczek
> This adds compile guards and Makefile support to building all
> of babeld in a single shot, as "babeld-whole".

Rejected.  Link-time optimisation achieves the same result, and doesn't
require source changes.

-- Juliusz

___
Babel-users mailing list
Babel-users@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users


Re: [Babel-users] [PATCH 6/6] babeld-whole: Enable single unit compilation of all of babeld

2017-03-09 Thread Juliusz Chroboczek
> I'm also considerably more pessimistic about link-time optimizations
> vs whole program ones.

Only benchmarks will tell.

As to babeld itself, there's enough low-hanging fruit at the algorithmic
level so that I don't bother with compiler optimisations.  In particular,
the naive symmetric difference in xroute.c really needs fixing.

If anyone wants to try their hand at it -- I'm speaking about the
quadratic algorithm at xroute.c:304.  There's an easy fix -- the xroutes
array is already sorted, so you just need to sort routes and then walk the
two arrays in parallel.  Reduces O(n*m) to O(n log n + m).

The more extensive fix is to get kernel_netlink.c to send deltas instead
of full dumps, but that is more difficult.  Finally, Dave has suggested
compiling babeld's filters into BPF and only receiving required routes,
but I believe that this kind of work should be done in BIRD, not in
babeld.

-- Juliusz

___
Babel-users mailing list
Babel-users@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users