[patch 0/4] KVM virtual PTP driver (v5)
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 37711 +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 37710 -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 37711 +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 37711 -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
[patch 0/4] KVM virtual PTP driver (v5)
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 37711 +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 37710 -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 37711 +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 37711 -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