phc2sys sets the CLOCK_TAI offset of the kernel since commit commit fefd5b4b05039ea0a0770291b12b0eb931079970 Author: Miroslav Lichvar <mlich...@redhat.com> Date: Wed Jun 18 15:44:49 2014 +0200
Set TAI offset of system clock. When synchronizing the system clock and the PTP UTC offset is valid and traceable, set the TAI offset of the clock to have correct CLOCK_TAI (which is implemented in the kernel as CLOCK_REALTIME + TAI offset). Signed-off-by: Miroslav Lichvar <mlich...@redhat.com> What I'm missing is: 1. ptp4l in the role of a GM appears to listen for GRANDMASTER_SETTINGS_NP PTP management messages on the local r/w UDS socket and that's how it updates its ANNOUNCE message contents. Who is supposed to construct and send these PTP management messages to the ptp4l GM in a "normal" system? 2. In the case of a slave clock, phc2sys detects that the UTC offset of the GM is traceable, and updates the CLOCK_TAI offset in the kernel. But for the GM system, who is supposed to update the CLOCK_TAI offset? There is some logic in clock.c, namely clock_utc_correct() called from clock_synchronize(): /* Update TAI-UTC offset of the system clock if valid and traceable. */ if (c->tds.flags & UTC_OFF_VALID && c->tds.flags & TIME_TRACEABLE && c->utc_offset_set != utc_offset && c->clkid == CLOCK_REALTIME) { sysclk_set_tai_offset(utc_offset); c->utc_offset_set = utc_offset; } but mind you, c->clkid is only set to CLOCK_REALTIME if we are performing software timestamping. So in the general case, ptp4l as GM does not update the CLOCK_TAI offset, and phc2sys does not, either. 3. Finally, why update the kernel's CLOCK_TAI offset only if the UTC offset is traceable? I mean, phc2sys in automatic mode sets up the CLOCK_REALTIME apart by 37 seconds from the PHC anyway, regardless of whether the UTC offset is traceable or not. Would it not make sense to set the kernel's TAI offset regardless? As things stand, I think this behavior is just highly inconsistent. CLOCK_REALTIME certainly has an offset from the TAI timescale, as set by phc2sys, but applications cannot detect this. _______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users