Hello Vladimir,
In this log as you said :
"
ts2phc[47236.294]: /dev/ptp1 extts index 0 at 1597801627.000000005 corr 0
src 1597801627.124054367 diff 5
ts2phc[47236.294]: /dev/ptp1 master offset 5 s2 freq +1527
ts2phc[47237.233]: /dev/ptp1 extts index 0 at 1597801628.000000008 corr 0
src 1597801628.62638535 diff 8
ts2phc[47237.233]: /dev/ptp1 master offset 8 s2 freq +1532
ts2phc[47238.704]: /dev/ptp1 extts index 0 at 1597801629.000000006 corr 0
src 1597801630.534159628 diff -999999994
ts2phc[47238.704]: /dev/ptp1 master offset -999999994 s2 freq -32767999
ts2phc[47239.243]: /dev/ptp1 extts index 0 at 1597801630.015516222 corr 0
src 1597801630.72969671 diff 15516222
ts2phc[47239.243]: /dev/ptp1 master offset 15516222 s2 freq +15517748
ts2phc[47240.230]: /dev/ptp1 extts index 0 at 1597801631.002506410 corr 0
src 1597801631.59684682 diff 2506410
ts2phc[47240.230]: /dev/ptp1 master offset 2506410 s2 freq +7162803
The CLOCK_MONOTONIC in the output of ts2phc increments normally.
The extts events increment normally.
The source timestamp jumps 1.907774278 seconds, then 0.195537082
seconds. That is the problem. "
In the function " ts2phc_slave_offset" in ts2phc_slave.c :
below lines are probably causing this issue.
if (source_ts.tv_nsec > 500000000) {
source_ts.tv_sec++;
}
What is your view on this?
Thanks & Regards,
*JAIRAJ SOLANKI*
On Mon, Sep 7, 2020 at 7:44 PM Vladimir Oltean <[email protected]> wrote:
> On Mon, Sep 07, 2020 at 02:23:54PM +0530, Jairaj Solanki wrote:
> > Hello Vladimir,
> >
> > Sorry for the wrong debug log.
> > I processed this log in excel and saved it, that is why it lost the nano
> > second information.
> >
> > Please refer this debug log :
> >
> https://drive.google.com/file/d/1bS6_9AOZlcOQVI2_7nY-zqJClZ8IX1Qr/view?usp=sharing
> > at 1597801630 timestamp.
> >
> > I am using a 4.14.78 kernel with ublox gps receiver, I don't have access
> to
> > NMEA currently.
>
> This new log says:
>
> ts2phc[47236.294]: /dev/ptp1 extts index 0 at 1597801627.000000005 corr 0
> src 1597801627.124054367 diff 5
> ts2phc[47236.294]: /dev/ptp1 master offset 5 s2 freq +1527
> ts2phc[47237.233]: /dev/ptp1 extts index 0 at 1597801628.000000008 corr 0
> src 1597801628.62638535 diff 8
> ts2phc[47237.233]: /dev/ptp1 master offset 8 s2 freq +1532
> ts2phc[47238.704]: /dev/ptp1 extts index 0 at 1597801629.000000006 corr 0
> src 1597801630.534159628 diff -999999994
> ts2phc[47238.704]: /dev/ptp1 master offset -999999994 s2 freq -32767999
> ts2phc[47239.243]: /dev/ptp1 extts index 0 at 1597801630.015516222 corr 0
> src 1597801630.72969671 diff 15516222
> ts2phc[47239.243]: /dev/ptp1 master offset 15516222 s2 freq +15517748
> ts2phc[47240.230]: /dev/ptp1 extts index 0 at 1597801631.002506410 corr 0
> src 1597801631.59684682 diff 2506410
> ts2phc[47240.230]: /dev/ptp1 master offset 2506410 s2 freq +7162803
>
> The CLOCK_MONOTONIC in the output of ts2phc increments normally.
> The extts events increment normally.
> The source timestamp jumps 1.907774278 seconds, then 0.195537082
> seconds. That is the problem.
>
> The source timestamps are produced by this code:
>
> /*
> * Returns the time on the PPS source device at which the most recent
> * PPS event was generated. This implementation assumes that the
> * system time is approximately correct.
> */
> static int ts2phc_generic_master_getppstime(struct ts2phc_master *m,
> struct timespec *ts)
> {
> struct timex ntx;
> int code;
>
> memset(&ntx, 0, sizeof(ntx));
> ntx.modes = ADJ_NANO;
> code = adjtimex(&ntx);
> if (code == -1) {
> pr_err("adjtimex failed: %m");
> return -1;
> }
> ts->tv_sec = ntx.time.tv_sec + ntx.tai;
> ts->tv_nsec = ntx.time.tv_usec;
>
> return 0;
> }
>
>
> Obviously, the system time is _not_ approximately correct when the time
> jumps.
>
> Can you try to disable NTP and repeat the test?
>
> Thanks,
> -Vladimir
>
--
YouTube: *https://youtu.be/Sn2-cZ_Ln9E <https://youtu.be/Sn2-cZ_Ln9E>*
_______________________________________________
Linuxptp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-users