When I was looking at the timesyncd code I noticed few issues that I
thought could be easily fixed and you might be interested in.

The last two patches is an attempt to fix the problem with frequent
polling. I'm not sure if this is robust enough, I feel like a minor
change in the code could break it easily, a more general approach
might be needed, maybe track timing of requests to each address
separately.

I didn't try to fix the crash in resolving as Lennart said he would
look into it, in my testing I just commented out the call flushing the
addresses.

Also, there seems to be a problem in the function adjusting the polling
interval, it doesn't consider jitter. When the jitter is large it
goes for a shorter interval instead of longer, making everything
worse. My suggestion would be to include the approach used in ntpd
(search for CLOCK_PGATE in the sources).

Miroslav Lichvar (8):
  timesyncd: check if stratum is valid
  timesyncd: fix calculation of transmit time
  timesyncd: get kernel timestamp in nanoseconds
  timesyncd: check root distance
  timesyncd: use longer PLL time constant
  timesyncd: allow two missed replies before reselecting server
  timesyncd: don't reset polling interval when reselecting server
  timesyncd: wait before reconnecting to first server

 src/timesync/timesyncd-manager.c | 91 +++++++++++++++++++++++++++++-----------
 src/timesync/timesyncd-manager.h |  2 +
 2 files changed, 69 insertions(+), 24 deletions(-)

-- 
1.9.3

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to