On 08/07/15 17:29, Jan Ceuleers wrote: > On 08/07/15 18:11, Jan Ceuleers wrote: >> On 08/07/15 17:55, Dave Taht wrote: >>> That is a very interesting graph! Does ntp adjust system time backward >>> based on getting nearly all it's samples with well over a 1/2 second >>> of induced delay? >> If there is a consistent asymmetrical delay then yes. > Let me qualify that "yes". > > Normally ntpd will ensure that the system time as observed by the kernel > and applications always increases monotonically. The exception is where > the system time differs too much from what ntpd considers to be the > correct time and where ntpd is given permission to step the time (e.g. > using the -g command-line switch). In this case ntpd can step backwards. . Ouch, I see Dave's point, I had hoped it was unfounded. You don't mean -g, that applies to startup (the "panic threshold" offset of 1000 seconds). Note startup also waits 900 seconds before allowing a step, explicitly in case of transient bufferbloat. You mean "ntpd is given permission to step the time, by *not* passing -x". Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold. (ow ow ow) [The -x] option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually. Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s. Thus, an adjustment as much as 600 s will take almost 14 days to complete. I also looked at phk's blog for the ntimed project again. Apparently everyone filters ntp samples, which suggests massive delays would need to affect more than one sample/poll interval. But I don't know how many more than one, or what patterns it would filter in general. (Would it miss bufferbloat less than some X but greater than the 128ms threshold?). Apparently the filters are the hard part - makes sense but sounds like hard work to analyze. http://phk.freebsd.dk/time/20141024.html > What I meant in my previous message is that ntpd's idea of true time is > arrived at based on the assumption that the network delay is the same in > both directions to its servers. So if there is a systematically > different delay in one direction relative to the other then this > assumption falls down and ntpd's assessment of true time will be skewed. > > The huff-n-puff filter helps in cases where the asymmetry in the delay > is not systematic, e.g. where the upstream channel does not suffer from > bufferbloat. I see that's a tinker option which is not enabled by default, requires manual tuning, is documented as experimental and being designed for dialup :-P. IOW in a way it's less about bloat awareness and more the general problem with NTP (like other projects) being under-resourced global infrastructure... PHK's post definitely suggests he's aware of asymmetry in delay events and exploiting it in the Ntimed filters. OTOH the graphs there don't seem to represent much bufferbloat. Maybe he could benefit from seeing Hal's awesome graph (and for context, the equally awesome graphs at http://www.dslreports.com/speedtest/results/bufferbloat). Alan