Hello, I'm having an issue getting ptp4l to sync when the local time is significantly behind the reference time. The behaviour is only present when I have two or more client ports configured (connected to the same GM).
With two ports, the first one listed gets stuck in UNCALIBRATED, with the second in LISTENING. If I repeat the process with a single port enabled, the port is able to enter the SLAVE state and the clock syncs fine. I have been able to replicate this on two separate servers with the same config. Could you take a look at these logs and configuration and let me know if you have any suggestions? If you have suggestions for where to look in the code to add some more instrumentation, I'm comfortable hacking at that. The only way that I have been able to correct this is by enabling the step_threshold setting ie. step_theshold 1.0 But I am looking for a way to resolve this without allowing the clock to be stepped outside of startup. Other things I have tried: changing the clock_servo to pi upgrading to v3.1 disabling phc2sys and just running ptp4l ensuring that ntpd and any other time services are not running switching the order of the ports in the config file Please let me know if there is any additional information that would be useful. Thanks, Cole ###Setup systemctl stop ptp4l; systemctl stop phc2sys sudo date 06100800 ; sudo hwclock -w # set to some time in the past, generally over an hour sudo reboot now ###Logs after reboot 2021-06-10T21:26:11.000 host1 ptp4l: info [395.561] selected /dev/ptp8 as PTP clock 2021-06-10T21:26:11.000 host1 ptp4l: warning [395.561] port 2: just a bunch of devices 2021-06-10T21:26:11.000 host1 phc2sys: err [395.585] uds: sendto failed: No such file or directory 2021-06-10T21:26:11.000 host1 ptp4l: notice [395.603] port 1: INITIALIZING to LISTENING on INIT_COMPLETE 2021-06-10T21:26:11.000 host1 ptp4l: notice [395.639] port 2: INITIALIZING to LISTENING on INIT_COMPLETE 2021-06-10T21:26:11.000 host1 ptp4l: notice [395.639] port 0: INITIALIZING to LISTENING on INIT_COMPLETE 2021-06-10T21:26:12.000 host1 phc2sys: notice [396.585] Waiting for ptp4l... 2021-06-10T21:26:12.000 host1 phc2sys: info [396.685] reconfiguring after port state change 2021-06-10T21:26:12.000 host1 phc2sys: info [396.685] selecting ens787f1 for synchronization 2021-06-10T21:26:12.000 host1 phc2sys: info [396.686] selecting ens787f3 for synchronization 2021-06-10T21:26:12.000 host1 phc2sys: info [396.686] no source, selecting ens787f3 as the default clock 2021-06-10T21:26:13.000 host1 ptp4l: notice [396.954] port 2: new foreign master 6805ca.fffe.3a17b0-1 2021-06-10T21:26:13.000 host1 ptp4l: notice [396.954] port 1: new foreign master 6805ca.fffe.3a17b0-1 2021-06-10T21:26:17.000 host1 ptp4l: notice [400.954] selected best master clock 6805ca.fffe.3a17b0 2021-06-10T21:26:17.000 host1 ptp4l: notice [400.954] port 2: LISTENING to UNCALIBRATED on RS_SLAVE 2021-06-10T21:26:17.000 host1 ptp4l: notice [400.954] selected best master clock 6805ca.fffe.3a17b0 2021-06-10T21:26:17.000 host1 ptp4l: notice [400.954] port 1: LISTENING to UNCALIBRATED on RS_SLAVE 2021-06-10T21:26:17.000 host1 ptp4l: notice [400.954] port 2: UNCALIBRATED to LISTENING on RS_PASSIVE 2021-06-10T21:26:17.000 host1 phc2sys: info [400.987] port 6805ca.fffe.3a16d3-2 changed state 2021-06-10T21:26:17.000 host1 phc2sys: info [400.987] port 6805ca.fffe.3a16d3-1 changed state 2021-06-10T21:26:17.000 host1 phc2sys: info [400.987] port 6805ca.fffe.3a16d3-2 changed state 2021-06-10T21:26:17.000 host1 phc2sys: info [400.987] reconfiguring after port state change 2021-06-10T21:26:17.000 host1 phc2sys: info [400.987] selecting ens787f1 for synchronization 2021-06-10T21:26:17.000 host1 phc2sys: info [400.988] master clock not ready, waiting... 2021-06-10T21:26:23.000 host1 ptp4l: notice [407.141] port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED 2021-06-10T21:26:23.000 host1 phc2sys: info [407.188] port 6805ca.fffe.3a16d3-1 changed state 2021-06-10T21:26:23.000 host1 phc2sys: info [407.188] reconfiguring after port state change 2021-06-10T21:26:23.000 host1 phc2sys: info [407.188] selecting ens787f1 for synchronization 2021-06-10T21:26:23.000 host1 phc2sys: info [407.188] selecting CLOCK_REALTIME for synchronization 2021-06-10T21:26:23.000 host1 phc2sys: info [407.188] selecting ens787f3 as the master clock 2021-06-10T21:26:24.000 host1 ptp4l: notice [407.924] selected best master clock 6805ca.fffe.3a17b0 2021-06-10T21:26:24.000 host1 ptp4l: warning [408.137] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:24.000 host1 ptp4l: notice [408.141] port 1: SLAVE to UNCALIBRATED on SYNCHRONIZATION_FAULT 2021-06-10T21:26:24.000 host1 phc2sys: info [408.189] port 6805ca.fffe.3a16d3-1 changed state 2021-06-10T21:26:24.000 host1 phc2sys: info [408.189] reconfiguring after port state change 2021-06-10T21:26:24.000 host1 phc2sys: info [408.189] selecting ens787f1 for synchronization 2021-06-10T21:26:24.000 host1 phc2sys: info [408.189] master clock not ready, waiting... 2021-06-10T21:26:24.000 host1 ptp4l: warning [408.745] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:25.000 host1 ptp4l: warning [409.139] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:26.000 host1 ptp4l: warning [410.137] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:26.000 host1 ptp4l: warning [410.384] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:26.000 host1 ptp4l: warning [410.592] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:27.000 host1 ptp4l: notice [410.955] selected best master clock 6805ca.fffe.3a17b0 2021-06-10T21:26:27.000 host1 ptp4l: warning [411.137] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:27.000 host1 ptp4l: warning [411.691] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:28.000 host1 ptp4l: warning [412.139] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:29.000 host1 ptp4l: warning [413.138] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:29.000 host1 ptp4l: warning [413.288] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:30.000 host1 ptp4l: warning [414.138] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:30.000 host1 ptp4l: notice [414.701] selected best master clock 6805ca.fffe.3a17b0 2021-06-10T21:26:30.000 host1 ptp4l: warning [414.878] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:31.000 host1 ptp4l: warning [415.138] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:31.000 host1 ptp4l: warning [415.538] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:32.000 host1 ptp4l: warning [416.139] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:32.000 host1 ptp4l: warning [416.296] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:33.000 host1 ptp4l: notice [416.956] selected best master clock 6805ca.fffe.3a17b0 2021-06-10T21:26:33.000 host1 ptp4l: warning [417.138] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:33.000 host1 ptp4l: warning [417.832] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:34.000 host1 ptp4l: warning [418.139] clockcheck: clock jumped forward or running faster than expected! 2021-06-10T21:26:34.000 host1 ptp4l: warning [418.413] clockcheck: clock jumped forward or running faster than expected! /dev/ptp8 continues to get further out of sync host1:~# phc_ctl /dev/ptp8 cmp phc_ctl[556.902]: offset from CLOCK_REALTIME is -37000011433ns host1:~# phc_ctl /dev/ptp8 cmp phc_ctl[590.510]: offset from CLOCK_REALTIME is -37000013319ns Stuck in uncalibrated host1:~# sudo pmc -u -b 0 -f /etc/ptp4l.conf "GET PORT_DATA_SET" sending: GET PORT_DATA_SET 6805ca.fffe.3a16d3-1 seq 0 RESPONSE MANAGEMENT PORT_DATA_SET portIdentity 6805ca.fffe.3a16d3-1 portState UNCALIBRATED logMinDelayReqInterval 0 peerMeanPathDelay 0 logAnnounceInterval 1 announceReceiptTimeout 3 logSyncInterval 0 delayMechanism 1 logMinPdelayReqInterval 0 versionNumber 2 6805ca.fffe.3a16d3-2 seq 0 RESPONSE MANAGEMENT PORT_DATA_SET portIdentity 6805ca.fffe.3a16d3-2 portState LISTENING logMinDelayReqInterval 0 peerMeanPathDelay 0 logAnnounceInterval 1 announceReceiptTimeout 3 logSyncInterval 0 delayMechanism 1 logMinPdelayReqInterval 0 versionNumber 2 ###Config host1:~$ ptp4l -v 2.0 host1:~$ phc2sys -v 2.0 host1:~# cat /etc/ptp4l.conf [global] # # Default Data Set # slaveOnly 1 time_stamping hardware delay_mechanism e2e domainNumber 24 boundary_clock_jbod 1 network_transport L2 summary_interval 6 tx_timestamp_timeout 20 clock_servo linreg # # Slave devices # [ens787f3] [ens787f1] host1:~# cat /etc/sysconfig/ptp4l OPTIONS="-f /etc/ptp4l.conf" host1:~# cat /etc/sysconfig/phc2sys OPTIONS="-a -r -f /etc/ptp4l.conf -R 10 -u 600 " ###System host1:~# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) host1:~# uname -r 3.10.0-1160.15.2.rt56.1152.el7.tis.4.x86_64 ###Devices host1:~# ethtool -i ens787f3 driver: i40e version: 2.14.13 firmware-version: 6.01 0x80003484 1.1747.0 expansion-rom-version: bus-info: 0000:81:00.3 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: yes host1:~# ethtool -T ens787f3 Time stamping parameters for ens787f3: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) PTP Hardware Clock: 8 Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON) Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC) ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) ptpv2-l4-event (HWTSTAMP_FILTER_PTP_V2_L4_EVENT) ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC) ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ) ptpv2-l2-event (HWTSTAMP_FILTER_PTP_V2_L2_EVENT) ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC) ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ) ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT) ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC) ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ) host1:~# ethtool -i ens787f1 driver: i40e version: 2.14.13 firmware-version: 6.01 0x80003484 1.1747.0 expansion-rom-version: bus-info: 0000:81:00.1 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: yes host1:~# ethtool -T ens787f1 Time stamping parameters for ens787f1: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) PTP Hardware Clock: 5 Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON) Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC) ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) ptpv2-l4-event (HWTSTAMP_FILTER_PTP_V2_L4_EVENT) ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC) ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ) ptpv2-l2-event (HWTSTAMP_FILTER_PTP_V2_L2_EVENT) ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC) ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ) ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT) ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC) ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ) _______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users