Skip to content

KVM virtual PTP driver (v5)

Marcelo Tosatti kvm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 9 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4KVM: x86: provide realtime host clock via vsyscall notifiersarch/x86/kvm/x86.c+36 -01 reply
2/4KVM: x86: add KVM_HC_CLOCK_OFFSET hypercallDocumentation/virtual/kvm/hypercalls.txt arch/x86/include/uapi/asm/kvm_para.h arch/x86/kvm/x86.c +1 more+86 -05 replies
3/4kvmclock: export kvmclock clocksource pointerarch/x86/include/asm/kvmclock.h arch/x86/kernel/kvmclock.c+8 -10 replies
4/4PTP: add kvm PTP driverdrivers/ptp/Kconfig drivers/ptp/Makefile drivers/ptp/ptp_kvm.c+215 -03 replies

Reviews trailers per patch

1 of 4 patches has a Reviewed-by or Acked-by.

PatchRichard Cochran
1/4
2/4
3/4
4/4A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [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 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