[PATCH v5 0/3] hv_util: adjust system time smoothly

From: Vitaly Kuznetsov
Date: Mon Jan 30 2017 - 06:10:14 EST

With TimeSync version 4 protocol support we started updating system time
continuously through the whole lifetime of Hyper-V guests. Every 5 seconds
there is a time sample from the host which triggers do_settimeofday[64]().
While the time from the host is very accurate such adjustments may cause
- Time is jumping forward and backward, some applications may misbehave.
- In case an NTP server runs in parallel and uses something else for time
sync (network, PTP,...) system time will never converge.
- Systemd starts annoying you by printing "Time has been changed" every 5
seconds to the system log.

Instead of doing in-kernel time adjustments offload the work to an
NTP client by exposing TimeSync messages as a PTP device. Users may now
decide what they want to use as a source.

Changes since v4:
- Rebase to the current char-misc-next tree [K. Y.]
- Drop const qualifier from ptp_hyperv_info [kbuild test robot]
- Implement .getcrosststamp() callback [Radim Krcmar]

Vitaly Kuznetsov (3):
hv_util: switch to using timespec64
hv: export current Hyper-V clocksource
hv_utils: implement Hyper-V PTP source

arch/x86/hyperv/hv_init.c | 13 ++-
arch/x86/include/asm/mshyperv.h | 3 +
drivers/hv/hv_util.c | 183 +++++++++++++++++++++++++++++++++-------
3 files changed, 166 insertions(+), 33 deletions(-)