> -----Original Message----- > From: Miroslav Lichvar [mailto:mlich...@redhat.com] > Sent: Friday, November 09, 2018 2:15 AM > To: netdev@vger.kernel.org > Cc: Richard Cochran <richardcoch...@gmail.com>; Keller, Jacob E > <jacob.e.kel...@intel.com>; Miroslav Lichvar <mlich...@redhat.com>; Marcelo > Tosatti <mtosa...@redhat.com>; Kirsher, Jeffrey T > <jeffrey.t.kirs...@intel.com>; > Michael Chan <michael.c...@broadcom.com> > Subject: [PATCH net-next 0/8] More accurate PHC<->system clock synchronization > > RFC->v1: > - added new patches > - separated PHC timestamp from ptp_system_timestamp > - fixed memory leak in PTP_SYS_OFFSET_EXTENDED > - changed PTP_SYS_OFFSET_EXTENDED to work with array of arrays > - fixed PTP_SYS_OFFSET_EXTENDED to break correctly from loop > - fixed timecounter updates in drivers > - split gettimex in igb driver > - fixed ptp_read_* functions to be available without > CONFIG_PTP_1588_CLOCK > > This series enables a more accurate synchronization between PTP hardware > clocks and the system clock.
Thanks for doing this, Miroslav! > > The first two patches are minor cleanup/bug fixes. > > The third patch adds an extended version of the PTP_SYS_OFFSET ioctl, > which returns three timestamps for each measurement. The idea is to > shorten the interval between the system timestamps to contain just the > reading of the lowest register of the PHC in order to reduce the error > in the measured offset and get a smaller upper bound on the maximum > error. > > The fourth patch deprecates the original gettime function. > > The remaining patches update the gettime function in order to support > the new ioctl in the e1000e, igb, ixgbe, and tg3 drivers. > > Tests with few different NICs in different machines show that: > - with an I219 (e1000e) the measured delay was reduced from 2500 to 1300 > ns and the error in the measured offset, when compared to the cross > timestamping supported by the driver, was reduced by a factor of 5 > - with an I210 (igb) the delay was reduced from 5100 to 1700 ns > - with an I350 (igb) the delay was reduced from 2300 to 750 ns > - with an X550 (ixgbe) the delay was reduced from 1950 to 650 ns > - with a BCM5720 (tg3) the delay was reduced from 2400 to 1200 ns > Impressive results! For the main portions and the Intel driver changes this is Reviewed-by: Jacob Keller <jacob.e.kel...@intel.com> Regards, Jake > > Miroslav Lichvar (8): > ptp: reorder declarations in ptp_ioctl() > ptp: check gettime64 return code in PTP_SYS_OFFSET ioctl > ptp: add PTP_SYS_OFFSET_EXTENDED ioctl > ptp: deprecate gettime64() in favor of gettimex64() > e1000e: extend PTP gettime function to read system clock > igb: extend PTP gettime function to read system clock > ixgbe: extend PTP gettime function to read system clock > tg3: extend PTP gettime function to read system clock > > drivers/net/ethernet/broadcom/tg3.c | 19 ++++-- > drivers/net/ethernet/intel/e1000e/e1000.h | 3 + > drivers/net/ethernet/intel/e1000e/netdev.c | 42 ++++++++++--- > drivers/net/ethernet/intel/e1000e/ptp.c | 16 +++-- > drivers/net/ethernet/intel/igb/igb_ptp.c | 65 +++++++++++++++++--- > drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 54 +++++++++++++--- > drivers/ptp/ptp_chardev.c | 55 ++++++++++++++--- > drivers/ptp/ptp_clock.c | 5 +- > include/linux/ptp_clock_kernel.h | 33 ++++++++++ > include/uapi/linux/ptp_clock.h | 12 ++++ > 10 files changed, 253 insertions(+), 51 deletions(-) > > -- > 2.17.2