All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/4] More accurate PHC<->system clock synchronization
@ 2018-10-26 16:27 ` Miroslav Lichvar
  0 siblings, 0 replies; 46+ messages in thread
From: Miroslav Lichvar @ 2018-10-26 16:27 UTC (permalink / raw)
  To: netdev; +Cc: intel-wired-lan, Richard Cochran, Jacob Keller, Miroslav Lichvar

This series adds support for a more accurate synchronization between a
PTP hardware clock and the system clock.

The first 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 give a better bound on the maximum error.

The other patches add support for the new ioctl to the e1000e, igb,
and ixgbe driver. Tests with few different NICs in different machines
(and PCIe slots) show that:
- with an I219 (e1000e) the measured delay improved from 2500 to 1300 ns
  and the error in the measured offset, when compared to cross
  timestamping, was reduced by a factor of 5
- with an I210 (igb) the delay improved from 5100 to 1700 ns
- with an I350 (igb) the delay improved from 2300 to 750 ns
- with an X550 (ixgbe) the delay improved from 1950 to 650 ns

There is some duplication of code in the igb and ixgbe drivers, which I
don't like very much, but I thought it's better than extending and
wrapping the existing functions like in the e1000e driver. Also, mixing
SYSTIM and "system time" in the code will probably be confusing.

I wasn't able to find a better name for the ioctl, the structures, and
the driver function. If anyone has suggestions, please let me know.

Miroslav Lichvar (4):
  ptp: add PTP_SYS_OFFSET_EXTENDED ioctl
  e1000e: add support for extended PHC gettime
  igb: add support for extended PHC gettime
  ixgbe: add support for extended PHC gettime

 drivers/net/ethernet/intel/e1000e/e1000.h    |  3 ++
 drivers/net/ethernet/intel/e1000e/netdev.c   | 48 +++++++++++++----
 drivers/net/ethernet/intel/e1000e/ptp.c      | 21 ++++++++
 drivers/net/ethernet/intel/igb/igb_ptp.c     | 43 +++++++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 57 ++++++++++++++++++++
 drivers/ptp/ptp_chardev.c                    | 39 ++++++++++++++
 include/linux/ptp_clock_kernel.h             | 26 +++++++++
 include/uapi/linux/ptp_clock.h               | 12 +++++
 8 files changed, 239 insertions(+), 10 deletions(-)

-- 
2.17.2

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2018-11-01  7:08 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-26 16:27 [RFC PATCH 0/4] More accurate PHC<->system clock synchronization Miroslav Lichvar
2018-10-26 16:27 ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-26 16:27 ` [RFC PATCH 1/4] ptp: add PTP_SYS_OFFSET_EXTENDED ioctl Miroslav Lichvar
2018-10-26 16:27   ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-26 22:16   ` Vinicius Costa Gomes
2018-10-26 22:16     ` Vinicius Costa Gomes
2018-10-29 12:52     ` Miroslav Lichvar
2018-10-29 12:52       ` Miroslav Lichvar
2018-10-31  2:23   ` Richard Cochran
2018-10-31  2:23     ` [Intel-wired-lan] " Richard Cochran
2018-10-31  3:01     ` Richard Cochran
2018-10-31  3:01       ` [Intel-wired-lan] " Richard Cochran
2018-10-26 16:27 ` [RFC PATCH 2/4] e1000e: add support for extended PHC gettime Miroslav Lichvar
2018-10-26 16:27   ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-26 16:27 ` [RFC PATCH 3/4] igb: " Miroslav Lichvar
2018-10-26 16:27   ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-31  2:29   ` Richard Cochran
2018-10-31  2:29     ` [Intel-wired-lan] " Richard Cochran
2018-10-31  9:39     ` Miroslav Lichvar
2018-10-31  9:39       ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-31 16:56       ` Keller, Jacob E
2018-10-31 16:56         ` [Intel-wired-lan] " Keller, Jacob E
2018-10-26 16:27 ` [RFC PATCH 4/4] ixgbe: " Miroslav Lichvar
2018-10-26 16:27   ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-26 16:54   ` Keller, Jacob E
2018-10-26 16:54     ` [Intel-wired-lan] " Keller, Jacob E
2018-10-29 13:31     ` Miroslav Lichvar
2018-10-29 13:31       ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-29 16:02       ` Keller, Jacob E
2018-10-29 16:02         ` [Intel-wired-lan] " Keller, Jacob E
2018-10-31 14:40       ` Richard Cochran
2018-10-31 14:40         ` [Intel-wired-lan] " Richard Cochran
2018-10-31 14:49         ` Miroslav Lichvar
2018-10-31 14:49           ` [Intel-wired-lan] " Miroslav Lichvar
2018-10-31 21:16           ` Richard Cochran
2018-10-31 21:16             ` [Intel-wired-lan] " Richard Cochran
2018-10-31 22:08             ` Keller, Jacob E
2018-10-31 22:08               ` [Intel-wired-lan] " Keller, Jacob E
2018-10-31 16:55         ` Keller, Jacob E
2018-10-31 16:55           ` [Intel-wired-lan] " Keller, Jacob E
2018-10-26 16:40 ` [RFC PATCH 0/4] More accurate PHC<->system clock synchronization Keller, Jacob E
2018-10-26 16:40   ` [Intel-wired-lan] " Keller, Jacob E
2018-10-26 16:51 ` Keller, Jacob E
2018-10-26 16:51   ` [Intel-wired-lan] " Keller, Jacob E
2018-10-31  2:25 ` Richard Cochran
2018-10-31  2:25   ` [Intel-wired-lan] " Richard Cochran

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.