Thread (59 messages) 59 messages, 8 authors, 2023-01-25

Re: [net-next 03/15] net/mlx5: Add adjphase function to support hardware-only offset control

From: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Date: 2023-01-23 02:49:16

On Sun, 22 Jan, 2023 18:22:58 -0800 Richard Cochran [off-list ref] wrote:
On Sun, Jan 22, 2023 at 01:11:57PM -0800, Rahul Rameshbabu wrote:
quoted
The way NVIDIA devices internally handle adjphase is to adjust the
frequency for a short period of time to make the small time offset
adjustments smooth (using some internal calculations) where the time
offset "nudge" is applied but frequency is also adjusted to prevent
immediate drift after that time adjustment.
Whatever floats your boat.
quoted
However, we aren't sure if
this is the only approach possible to achieve accurate corrections for
small offset adjustments with adjphase,
Typically one would implement a PI controller.
quoted
so I would suggest that the
documentation be updated to state something discussing that adjphase is
expected to support small jumps in offset precisely without necessarily
bringing up frequency manipulation potentially done to achieve this.
Sorry if the docs aren't clear.  (However, the use of NTP timex
ADJ_FREQUENCY and ADJ_OFFSET really should be clear to everyone
familiar with NTP.)

Bottom line: PHC that offers adjphase should implement a clock servo.
adjphase/ADJ_OFFSET is a servo implemented in the kernel space/offloaded
to the device. That makes sense.

Another question then is can adjtime/ADJ_SETOFFSET make use of this
servo implementation on the device or is there a strict expectation that
adjtime/ADJ_SETOFFSET is purely a function that adds the offset to the
current current time? If adjphase is implemented by a driver, should
ADJ_SETOFFSET try to make use of it in the ptp stack if the offset
provided is supported by the adjphase implementation?

This question was asked earlier in the mailing thread.
Thanks,
Richard
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help