This patchset implements a virtual PTP driver which allows guest to sync its clock to the host clock with high precision (error is < 1us on an idle guest). Changelog from v4 Drop PTP_SYS_OFFSET emulation via ->crosstimestamp callback (Richard). Emulate ->gettime directly without TSC offset (Radim). Changelog from v3 Patch3: v2: export kvmclock clocksource structure directly (Paolo) Patch4: v2: drop timekeeper spinlock, move back to drivers/ptp/ptp_chardev.c (Paolo) ptp_clock_gettime: support drivers with crosstimestamp but not gettime64 callbacks (Paolo) Patch5: v4: remove gettime64 callback (Paolo) Changelog from v2 Cross timestamping, emulation of PTP_SYS_OFFSET with cross timestamping (Paolo, Miroslav, Radim). Changelog from v1 Patch1: v2: unify nsec_base (Radim) Patch2: v2: improve documentation (Radim) change hypercall name to KVM_HC_CLOCK_PAIRING (Radim) increase padding size Patch3: v2: check for kvmclock (Radim) initialize global variables before device registration (Radim) 30 second output of a idle guest: 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 9 -1ns[ -1ns] +/- 2ns Tue Jan 24 11:46:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 7 -0ns[ -1ns] +/- 2ns Tue Jan 24 11:47:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 5 -1ns[ +0ns] +/- 2ns Tue Jan 24 11:47:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 11 +0ns[ -2ns] +/- 2ns Tue Jan 24 11:48:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 10 -0ns[ -0ns] +/- 2ns Tue Jan 24 11:48:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 7 -0ns[ -0ns] +/- 2ns Tue Jan 24 11:49:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 5 -3ns[ -4ns] +/- 2ns Tue Jan 24 11:49:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 11 +2ns[ +2ns] +/- 2ns Tue Jan 24 11:50:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 9 -1ns[ +1ns] +/- 2ns Tue Jan 24 11:50:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 6 +0ns[ +0ns] +/- 2ns Tue Jan 24 11:51:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 5 +1ns[ +10ns] +/- 2ns Tue Jan 24 11:51:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 11 -5ns[ -6ns] +/- 2ns Tue Jan 24 11:52:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 9 -0ns[ -1ns] +/- 2ns Tue Jan 24 11:52:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 6 +0ns[ -5ns] +/- 2ns Tue Jan 24 11:53:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 4 -0ns[ -0ns] +/- 2ns Tue Jan 24 11:53:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 10 -0ns[ -0ns] +/- 2ns Tue Jan 24 11:54:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 9 -1ns[ -1ns] +/- 2ns Tue Jan 24 11:54:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 6 -1ns[ -2ns] +/- 2ns Tue Jan 24 11:55:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 4 -0ns[ +3ns] +/- 2ns Tue Jan 24 11:55:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 10 -3ns[ -6ns] +/- 2ns Tue Jan 24 11:56:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 8 +2ns[ +3ns] +/- 2ns Tue Jan 24 11:56:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 6 +0ns[ -2ns] +/- 2ns Tue Jan 24 11:57:06 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 4 -0ns[ +1ns] +/- 2ns Tue Jan 24 11:57:36 EST 2017 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 3 377 10 -1ns[ +1ns] +/- 2ns