Does anyone know what is the typical accuracy we can expect in time
stepping of a PHC via ADJ_SETOFFSET? I briefly looked in the kernel
code and it seems most (all?) drivers implement it as a read and write
to a register without any compensation for how long the operation
takes, which causes a significant error.

With an i210 I see:

port 1: LISTENING to UNCALIBRATED on RS_SLAVE
master offset        415 s0 freq  -22825 path delay       622
master offset        423 s0 freq  -22825 path delay       622
master offset        426 s0 freq  -22825 path delay       621
master offset        427 s1 freq  -22820 path delay       621
master offset      -5174 s2 freq  -27997 path delay       621
port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
master offset         10 s2 freq  -25399 path delay       620
master offset       2729 s2 freq  -22674 path delay       493
master offset       2764 s2 freq  -19982 path delay       328
master offset        -59 s2 freq  -22719 path delay       328

The initial 400ns offset is corrected by stepping, but it results in
ten times larger offset and the servo needs more time to settle down
from that error. I think we should increase the default first step
threshold so it's used only when the offset is much larger than the
stepping error, but I'm not sure what would be a good value for most
PTP HW.

-- 
Miroslav Lichvar

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to