Jetson AGX Orin PHC Instability Using phc2sys

Jetson AGX Orin PHC Instability Using phc2sys (Unexpected Periodic Large Time Corrections)

Platform

Device: NVIDIA Jetson AGX Orin Developer Kit
Kernel: Linux inz-jetson-2 5.15.148-tegra #1 SMP PREEMPT Mon Jun 16 08:24:48 PDT 2025 aarch64
Interface: eno1
Ethernet Controller: Onboard 1Gbit nvethernet
Driver: nvethernet, version 5.15.148-tegra
Bus Info: 6800000.ethernet

Goal

I want to synchronize the NIC’s PHC (eno1) to the system clock (CLOCK_REALTIME) using phc2sys.
Command used:
phc2sys -s CLOCK_REALTIME -c eno1 -m -q -O 0

Problem

Despite achieving convergence, I observe periodic large frequency corrections from phc2sys that reverse direction within seconds, suggesting they are spurious or overly aggressive.
These frequency changes typically exceed ±150,000 ppb and are then “canceled out” by corrections in the opposite direction.

Behavior Pattern

This behavior is periodic, occurring approximately every 30 to 60 seconds. The system may be in a stable state (offset < 100ns and freq drift < 200ppb), then suddenly phc2sys makes a large correction that is reversed shortly after.

Example Behavior

✅ Steady-State (Expected):

phc2sys[457]: offset=102 freq=-23876
phc2sys[458]: offset=-6 freq=-23954
phc2sys[459]: offset=73 freq=-23876
...
phc2sys[489]: offset=5 freq=-23782

❌ Periodic Jump (Wrong):

phc2sys[490]: offset=106218 freq=+82432
phc2sys[491]: offset=142427 freq=+150507
phc2sys[492]: offset=110565 freq=+161373
...
phc2sys[531]: offset=-108527 freq=+50938
phc2sys[532]: offset=-142502 freq=-15595
phc2sys[533]: offset=-109806 freq=-25649

These jumps reverse direction within a few seconds and occur again about half a minute later, even if the system was previously in a good state.

What I’ve Done

✅ Disabled all time-related services:

  • systemd-timesyncd
  • ntpd
  • chronyd

✅ Ran strace on all process to monitor after the syscalls:

  • adjtimex
  • clock_adjtime
  • settimeofday
  • clock_settime
    Results: No system process is touching the clock at the time of the jumps.

✅ Tried to tune phc2sys servo

Diagnostic Notes

  • These jumps look like “overreaction” in servo feedback (unless some other internal process is setting the clock)
  • The correction value is large and reversed shortly after (e.g., +150507 to -155950).
  • There’s no system user process interfering with the clock (confirmed via syscall trace).
  • The PHC (onboard) seems to respond too eagerly to very small system clock noise.

Open questions:

  • Is this unstable PHC behavior expected with nvethernet on Jetson AGX Orin?
  • Is phc2sys a stable/recommended approach for CLOCK_REALTIME → PHC sync on Jetson?
  • Is there a known fix for overcorrection or a better way to smooth servo behavior?
  • Can any Jetson internal process or PMC background task cause these artifacts periodically?

Full phc2sys Log

phc2sys -s $SRC_INTERFACE -c $DST_INTERFACE -m -q -O 0 
phc2sys[455.446]: eno1 sys offset    960021 s0 freq -166588 delay   2496                 
phc2sys[456.446]: eno1 sys offset   1102692 s1 freq  -23978 delay   2528                 
phc2sys[457.447]: eno1 sys offset       102 s2 freq  -23876 delay   2656                 
phc2sys[458.448]: eno1 sys offset        -6 s2 freq  -23954 delay   2720                 
phc2sys[459.448]: eno1 sys offset        73 s2 freq  -23876 delay   2848                 
phc2sys[460.449]: eno1 sys offset       -88 s2 freq  -24015 delay   2688                 
phc2sys[461.449]: eno1 sys offset        -9 s2 freq  -23963 delay   2688                 
phc2sys[462.450]: eno1 sys offset        53 s2 freq  -23904 delay   2784                 
phc2sys[463.450]: eno1 sys offset         3 s2 freq  -23938 delay   2720                 
phc2sys[464.451]: eno1 sys offset       -23 s2 freq  -23963 delay   2656                 
phc2sys[465.451]: eno1 sys offset        22 s2 freq  -23925 delay   2656                 
phc2sys[466.451]: eno1 sys offset       102 s2 freq  -23838 delay   2848                 
phc2sys[467.452]: eno1 sys offset        53 s2 freq  -23856 delay   2784                 
phc2sys[468.452]: eno1 sys offset        15 s2 freq  -23879 delay   2880                 
phc2sys[469.453]: eno1 sys offset         4 s2 freq  -23885 delay   2880                 
phc2sys[470.453]: eno1 sys offset        15 s2 freq  -23873 delay   2848                 
phc2sys[471.453]: eno1 sys offset      -100 s2 freq  -23983 delay   3040                 
phc2sys[472.454]: eno1 sys offset        29 s2 freq  -23884 delay   2912                 
phc2sys[473.454]: eno1 sys offset        51 s2 freq  -23854 delay   2912                 
phc2sys[474.455]: eno1 sys offset        17 s2 freq  -23872 delay   2944                 
phc2sys[475.455]: eno1 sys offset        48 s2 freq  -23836 delay   3040                 
phc2sys[476.455]: eno1 sys offset        33 s2 freq  -23837 delay   3072                 
phc2sys[477.456]: eno1 sys offset       128 s2 freq  -23732 delay   2848                 
phc2sys[478.456]: eno1 sys offset       -15 s2 freq  -23837 delay   2720                 
phc2sys[479.457]: eno1 sys offset       -55 s2 freq  -23881 delay   2656                 
phc2sys[480.457]: eno1 sys offset       -39 s2 freq  -23882 delay   2560                 
phc2sys[481.457]: eno1 sys offset        51 s2 freq  -23803 delay   3072                 
phc2sys[482.458]: eno1 sys offset        51 s2 freq  -23788 delay   3072                 
phc2sys[483.458]: eno1 sys offset        40 s2 freq  -23784 delay   3008                 
phc2sys[484.459]: eno1 sys offset        43 s2 freq  -23769 delay   2976                 
phc2sys[485.459]: eno1 sys offset        58 s2 freq  -23741 delay   2752                 
phc2sys[486.460]: eno1 sys offset         7 s2 freq  -23774 delay   2752                 
phc2sys[487.460]: eno1 sys offset       -15 s2 freq  -23794 delay   2720                 
phc2sys[488.460]: eno1 sys offset       -12 s2 freq  -23796 delay   2912                 
phc2sys[489.461]: eno1 sys offset         5 s2 freq  -23782 delay   3072                 
phc2sys[490.461]: eno1 sys offset    106218 s2 freq  +82432 delay   2848
phc2sys[491.462]: eno1 sys offset    142427 s2 freq +150507 delay   2752
phc2sys[492.462]: eno1 sys offset    110565 s2 freq +161373 delay   2880
phc2sys[493.462]: eno1 sys offset     67825 s2 freq +151802 delay   2848
phc2sys[494.463]: eno1 sys offset     34600 s2 freq +138925 delay   2848
phc2sys[495.463]: eno1 sys offset     14333 s2 freq +129038 delay   2880
phc2sys[496.464]: eno1 sys offset      3865 s2 freq +122870 delay   2752
phc2sys[497.464]: eno1 sys offset      -310 s2 freq +119854 delay   2784   
phc2sys[498.465]: eno1 sys offset     -1497 s2 freq +118574 delay   2880   
phc2sys[499.465]: eno1 sys offset     -1432 s2 freq +118190 delay   2816   
phc2sys[500.466]: eno1 sys offset      -938 s2 freq +118254 delay   2816   
phc2sys[501.466]: eno1 sys offset      -545 s2 freq +118366 delay   2784
phc2sys[502.466]: eno1 sys offset      -235 s2 freq +118512 delay   2848
phc2sys[503.467]: eno1 sys offset       -89 s2 freq +118588 delay   2880
phc2sys[504.467]: eno1 sys offset         8 s2 freq +118658 delay   2880
phc2sys[505.468]: eno1 sys offset         6 s2 freq +118659 delay   2784
phc2sys[506.468]: eno1 sys offset        39 s2 freq +118693 delay   2784
phc2sys[507.469]: eno1 sys offset        52 s2 freq +118718 delay   2880
phc2sys[508.469]: eno1 sys offset        29 s2 freq +118711 delay   2880
phc2sys[509.469]: eno1 sys offset        -3 s2 freq +118687 delay   2816
phc2sys[510.470]: eno1 sys offset       -35 s2 freq +118655 delay   2720
phc2sys[511.470]: eno1 sys offset        32 s2 freq +118711 delay   2784
phc2sys[512.471]: eno1 sys offset        -5 s2 freq +118684 delay   2656
phc2sys[513.471]: eno1 sys offset        69 s2 freq +118756 delay   2848
phc2sys[514.471]: eno1 sys offset     30714 s2 freq +149422 delay   2656
phc2sys[515.472]: eno1 sys offset     40823 s2 freq +168745 delay   2848
phc2sys[516.472]: eno1 sys offset     31515 s2 freq +171684 delay   2816
phc2sys[517.473]: eno1 sys offset     19154 s2 freq +168777 delay   2656
phc2sys[518.473]: eno1 sys offset      9873 s2 freq +165243 delay   2752
phc2sys[519.474]: eno1 sys offset      4038 s2 freq +162370 delay   2720
phc2sys[520.474]: eno1 sys offset      1147 s2 freq +160690 delay   2784
phc2sys[521.474]: eno1 sys offset      -146 s2 freq +159741 delay   2624
phc2sys[522.475]: eno1 sys offset      -383 s2 freq +159460 delay   2848
phc2sys[523.475]: eno1 sys offset      -458 s2 freq +159270 delay   2656
phc2sys[524.476]: eno1 sys offset      -174 s2 freq +159417 delay   2784
phc2sys[525.476]: eno1 sys offset      -154 s2 freq +159385 delay   2848
phc2sys[526.476]: eno1 sys offset      -101 s2 freq +159392 delay   2784
phc2sys[527.477]: eno1 sys offset       -40 s2 freq +159422 delay   2752
phc2sys[528.477]: eno1 sys offset        43 s2 freq +159493 delay   2880
phc2sys[529.477]: eno1 sys offset        33 s2 freq +159496 delay   2880
phc2sys[530.478]: eno1 sys offset       -26 s2 freq +159447 delay   2784
phc2sys[531.478]: eno1 sys offset   -108527 s2 freq  +50938 delay   2880
phc2sys[532.479]: eno1 sys offset   -142502 s2 freq  -15595 delay   2656
phc2sys[533.479]: eno1 sys offset   -109806 s2 freq  -25649 delay   2752
phc2sys[534.479]: eno1 sys offset    -67063 s2 freq  -15848 delay   2656
phc2sys[535.480]: eno1 sys offset    -34046 s2 freq   -2950 delay   2848
phc2sys[536.480]: eno1 sys offset    -13983 s2 freq   +6899 delay   2784
phc2sys[537.481]: eno1 sys offset     -3790 s2 freq  +12897 delay   2784
phc2sys[538.481]: eno1 sys offset       450 s2 freq  +16000 delay   2848
phc2sys[539.481]: eno1 sys offset      1524 s2 freq  +17209 delay   2784
phc2sys[540.482]: eno1 sys offset      1449 s2 freq  +17591 delay   2848
phc2sys[541.482]: eno1 sys offset       907 s2 freq  +17484 delay   2752
phc2sys[542.482]: eno1 sys offset       572 s2 freq  +17421 delay   2880
phc2sys[543.483]: eno1 sys offset       262 s2 freq  +17283 delay   2848
phc2sys[544.483]: eno1 sys offset        67 s2 freq  +17166 delay   2784
phc2sys[545.484]: eno1 sys offset        54 s2 freq  +17173 delay   2848
phc2sys[546.484]: eno1 sys offset        -1 s2 freq  +17135 delay   2848
phc2sys[547.485]: eno1 sys offset        -3 s2 freq  +17132 delay   2848
phc2sys[548.485]: eno1 sys offset       -30 s2 freq  +17104 delay   2848
phc2sys[549.485]: eno1 sys offset        -3 s2 freq  +17122 delay   2784
phc2sys[550.486]: eno1 sys offset       -87 s2 freq  +17038 delay   3040
phc2sys[551.486]: eno1 sys offset         3 s2 freq  +17101 delay   3072
phc2sys[552.487]: eno1 sys offset        -9 s2 freq  +17090 delay   2944
phc2sys[553.487]: eno1 sys offset        86 s2 freq  +17183 delay   3072
phc2sys[554.487]: eno1 sys offset        14 s2 freq  +17136 delay   2592
phc2sys[555.488]: eno1 sys offset        -1 s2 freq  +17126 delay   2976
phc2sys[556.488]: eno1 sys offset         7 s2 freq  +17133 delay   3072
phc2sys[557.489]: eno1 sys offset        20 s2 freq  +17148 delay   2656
phc2sys[558.489]: eno1 sys offset   -110089 s2 freq  -92955 delay   2656
phc2sys[559.489]: eno1 sys offset   -142377 s2 freq -158269 delay   2784
phc2sys[560.490]: eno1 sys offset   -109443 s2 freq -168048 delay   2720
phc2sys[561.490]: eno1 sys offset    -66643 s2 freq -158081 delay   2720
phc2sys[562.491]: eno1 sys offset    -33902 s2 freq -145333 delay   2944
phc2sys[563.491]: eno1 sys offset    -13780 s2 freq -135382 delay   2720
phc2sys[564.491]: eno1 sys offset     -3712 s2 freq -129448 delay   3040
phc2sys[565.492]: eno1 sys offset       550 s2 freq -126299 delay   2848
phc2sys[566.492]: eno1 sys offset      1481 s2 freq -125203 delay   3040
phc2sys[567.493]: eno1 sys offset      1366 s2 freq -124874 delay   3072
phc2sys[568.493]: eno1 sys offset      1031 s2 freq -124799 delay   2720
phc2sys[569.493]: eno1 sys offset       623 s2 freq -124898 delay   2816
phc2sys[570.494]: eno1 sys offset       244 s2 freq -125090 delay   2880

this is duplicated to JP6.2系统时间跳变问题 - #31 by whitesscott

please take a look.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.