[patch 0/5] KVM virtual PTP driver (v4)

From: Marcelo Tosatti
Date: Fri Jan 20 2017 - 09:56:57 EST


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 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)



PHC0 0 3 377 7 -141ns[ +234ns] +/- 7ns
#* PHC0 0 3 377 5 -197ns[ -403ns] +/- 3ns
#* PHC0 0 3 377 11 +157ns[ +264ns] +/- 3ns
#* PHC0 0 3 377 9 +92ns[ +304ns] +/- 2ns
#* PHC0 0 3 377 7 -102ns[ -164ns] +/- 3ns
#* PHC0 0 3 377 5 -157ns[ -269ns] +/- 2ns
#* PHC0 0 3 377 10 -63ns[ -98ns] +/- 2ns
#* PHC0 0 3 377 8 +351ns[ +399ns] +/- 2ns
#* PHC0 0 3 377 6 +385ns[ +399ns] +/- 4ns
#* PHC0 0 3 377 4 -133ns[ -110ns] +/- 6ns
#* PHC0 0 3 377 10 -59ns[ -90ns] +/- 3ns
#* PHC0 0 3 377 8 -90ns[ +381ns] +/- 9ns
#* PHC0 0 3 377 6 +6ns[ +216ns] +/- 6ns
#* PHC0 0 3 377 4 +166ns[ -666ns] +/- 11ns
#* PHC0 0 3 377 10 -18ns[ +323ns] +/- 10ns
#* PHC0 0 3 377 8 -12ns[ +121ns] +/- 5ns
#* PHC0 0 3 377 5 +4ns[ +218ns] +/- 7ns
#* PHC0 0 3 377 4 +162ns[ -683ns] +/- 11ns
#* PHC0 0 3 377 10 -82ns[ +310ns] +/- 12ns
#* PHC0 0 3 377 7 +5ns[ -320ns] +/- 9ns
#* PHC0 0 3 377 5 -13ns[ +165ns] +/- 7ns
#* PHC0 0 3 377 3 +6ns[ +105ns] +/- 2ns
#* PHC0 0 3 377 9 -19ns[ -67ns] +/- 3ns
#* PHC0 0 3 377 8 +89ns[ +181ns] +/- 3ns
#* PHC0 0 3 377 6 +93ns[ +168ns] +/- 2ns
#* PHC0 0 3 377 4 +100ns[ +154ns] +/- 2ns
#* PHC0 0 3 377 10 -249ns[ +180ns] +/- 7ns
#* PHC0 0 3 377 8 +158ns[ -582ns] +/- 22ns
#* PHC0 0 3 377 6 +10ns[ +213ns] +/- 9ns
#* PHC0 0 3 377 3 -35ns[ +258ns] +/- 5ns
#* PHC0 0 3 377 10 +25ns[ -620ns] +/- 8ns
#* PHC0 0 3 377 7 +13ns[ +153ns] +/- 2ns