tailscale/net
Josh Bleecher Snyder bcf23313b7 tstime: add MonotonicCoarse
MonotonicCoarse provides a coarse monotonic time.
On some platforms, it is implemented in assembly,
which lets us do much less work than time.Now,
which gets a high precision monotonic time and
a high precision wall time.

The assembly code is tied to a particular Go release
because it reaches into the Go internals
in order to switch to the system stack for the vdso call.

On my darwin/arm64 machine, there is no perf difference.
On my linux/amd64 machine, MonotonicCoarse is 5x faster (50ns -> 10ns).
On my linux/arm64 VM, MonotonicCoarse is 16x faster (64ns -> 4ns).

We could also use this in the rate limiter and magicsock,
which are two other uses of time.Now that show up in the CPU pprof
when doing throughput benchmarking.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2021-07-19 15:32:56 -07:00
..
dns net/dns/resolver: upgrade forwarded MagicDNS queries to DoH when IP known 2021-07-15 12:03:52 -07:00
dnscache control/controlclient, net/{dnscache,dnsfallback}: add DNS fallback mechanism 2021-03-01 18:42:03 -08:00
dnsfallback net/dnsfallback: regenerate 2021-07-19 15:31:56 -07:00
flowtrack net/packet, wgengine/filter: support SCTP 2021-03-20 21:34:13 -07:00
interfaces net/interface: add AWS App Runner /proc/net/route test 2021-07-14 10:01:14 -07:00
netcheck net/{interfaces,netcheck}: rename some fields, funcs 2021-06-17 17:50:13 -07:00
netns netns_linux: remove special handling for tests. 2021-07-14 10:01:14 -07:00
netstat all: adapt to opaque netaddr types 2021-05-16 14:52:00 -07:00
nettest net/nettest: make nettest.NewConn pass x/net/nettest.TestConn. 2021-04-06 15:34:29 -07:00
packet net/packet: use netaddr AppendTo methods 2021-05-20 20:42:18 -07:00
portmapper control/{controlknobs,controlclient}: simplify knobs API, fix controlclient crash 2021-07-15 22:34:50 -07:00
socks5 net/socks5/tssocks: add a SOCKS5 dialer type, method-ifying code 2021-06-28 13:12:42 -07:00
speedtest Implemented Commandline Download Speedtest (#2064) 2021-07-15 14:43:13 -04:00
stun tstest/integration: add testNode.AwaitListening, DERP+STUN, improve proxy trap 2021-05-03 12:14:20 -07:00
tlsdial net/tlsdial, derp/derphttp: finish DERPNode.CertName validation 2020-06-01 09:01:37 -07:00
tsaddr net/tsaddr: simplify TailscaleServiceIP 2021-05-28 20:36:26 -07:00
tshttpproxy net/tshttpproxy: call winhttp calls from a fixed OS thread 2021-03-03 19:16:04 -08:00
tstun tstime: add MonotonicCoarse 2021-07-19 15:32:56 -07:00