Merge branch 'tcp-TCP-TS-option-use-1-ms-clock'
authorDavid S. Miller <davem@davemloft.net>
Wed, 17 May 2017 20:06:03 +0000 (16:06 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 May 2017 20:06:03 +0000 (16:06 -0400)
commite26925ec03b31f5ae4c1fc544515486229334ef9
tree6f1502edf55ecb7205660d62bd683ebcf912cfea
parent9d4f97f97bb8adc47f569d995402c33de9a4fa19
parent9a568de4818dea9a05af141046bd3e589245ab83
Merge branch 'tcp-TCP-TS-option-use-1-ms-clock'

Eric Dumazet says:

====================
tcp: TCP TS option use 1 ms clock

TCP Timestamps option is defined in RFC 7323

Traditionally on linux, it has been tied to the internal
'jiffy' variable, because it had been a cheap and good enough
generator.

Unfortunately some distros use HZ=250 or even HZ=100 leading
to not very useful TCP timestamps.

For TCP flows in the DC, Google has used usec resolution for more
than two years with great success [1].
RCVBUF autotuning is more precise.

This series converts tp->tcp_mstamp to a plain u64 value storing
a 1 usec TCP clock.

This choice will allow us to upstream the 1 usec TS option as
discussed in IETF 97.

Kathleen Nichols [2] and others advocate for 1ms TS clocks for
network analysis. (1ms being the lowest value supported by RFC 7323.)

[1] https://www.ietf.org/proceedings/97/slides/slides-97-tcpm-tcp-options-for-low-latency-00.pdf
[2] http://netseminar.stanford.edu/seminars/02_02_17.pdf
====================

Signed-off-by: David S. Miller <davem@davemloft.net>