tailscale/wgengine
Brad Fitzpatrick db2436c7ff wgengine/magicsock: don't interrupt endpoint updates, merge all mutex into one
Before, endpoint updates were constantly being interrupted and resumed
on Linux due to tons of LinkChange messages from over-zealous Linux
netlink messages (from router_linux.go)

Now that endpoint updates are fast and bounded in time anyway, just
let them run to completion, but note that another needs to be
scheduled after.

Now logs went from pages of noise to just:

root@taildoc:~# grep -i -E 'stun|endpoint update' log
2020/03/13 08:51:29 magicsock.Conn: starting endpoint update (initial)
2020/03/13 08:51:30 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")
2020/03/13 08:51:31 magicsock.Conn: starting endpoint update (link-change-minor)
2020/03/13 08:51:31 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")
2020/03/13 08:51:33 magicsock.Conn: starting endpoint update (link-change-minor)
2020/03/13 08:51:33 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")
2020/03/13 08:51:35 magicsock.Conn: starting endpoint update (link-change-minor)
2020/03/13 08:51:35 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")

Or, seen in another run:

2020/03/13 08:45:41 magicsock.Conn: starting endpoint update (periodic)
2020/03/13 08:46:09 magicsock.Conn: starting endpoint update (periodic)
2020/03/13 08:46:21 magicsock.Conn: starting endpoint update (link-change-major)
2020/03/13 08:46:37 magicsock.Conn: starting endpoint update (periodic)
2020/03/13 08:47:05 magicsock.Conn: starting endpoint update (periodic)

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-13 09:34:11 -07:00
..
filter controlclinet: clone filter.MatchAllowAll 2020-02-28 22:33:06 -05:00
magicsock wgengine/magicsock: don't interrupt endpoint updates, merge all mutex into one 2020-03-13 09:34:11 -07:00
monitor Move linkstate boring change filtering to magicsock 2020-03-10 12:50:03 -07:00
packet wgengine/packet: fix minor lint errors. 2020-02-11 00:01:14 -08:00
winnet Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
faketun.go wgengine: properly clean up freebsd routes and interfaces on close 2020-02-25 16:40:10 -05:00
ifconfig_windows.go wgengine: fix build on linux/freebsd/openbsd/windows 2020-02-19 11:58:59 -05:00
router_darwin.go wgengine: define default tunname for each platform 2020-03-07 21:40:01 -08:00
router_darwin_support.go wgengine: make SetRoutesFunc less appealing to use. 2020-02-10 21:40:00 -08:00
router_default.go wgengine: define default tunname for each platform 2020-03-07 21:40:01 -08:00
router_fake.go wgengine: move link monitor to be owned by the engine, not the router 2020-02-17 09:53:17 -08:00
router_freebsd.go wgengine: define default tunname for each platform 2020-03-07 21:40:01 -08:00
router_linux.go wgengine: define default tunname for each platform 2020-03-07 21:40:01 -08:00
router_openbsd.go wgengine: define default tunname for each platform 2020-03-07 21:40:01 -08:00
router_windows.go wgengine: define default tunname for each platform 2020-03-07 21:40:01 -08:00
rusage.go Move "logger" package to under types, now that we have it. 2020-02-14 20:23:05 -08:00
rusage_nowindows.go wgengine: flesh out some docs 2020-02-12 13:37:45 -08:00
rusage_windows.go Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
userspace.go wgengine: don't Reconfig on boring link changes 2020-03-13 07:45:59 -07:00
watchdog.go ipn, wgengine/magicsock: add ipn.Prefs.DisableDERP bool 2020-03-04 12:53:37 -08:00
watchdog_test.go wgengine: simplify, change some signatures 2020-02-17 08:04:31 -08:00
wgengine.go wgengine: don't Reconfig on boring link changes 2020-03-13 07:45:59 -07:00