[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87tu0luadz.fsf@nvidia.com>
Date: Thu, 19 Jan 2023 19:56:24 -0800
From: Rahul Rameshbabu <rrameshbabu@...dia.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Jacob Keller <jacob.e.keller@...el.com>,
Saeed Mahameed <saeed@...nel.org>,
"David S. Miller" <davem@...emloft.net>,
Paolo Abeni <pabeni@...hat.com>,
Eric Dumazet <edumazet@...gle.com>,
Saeed Mahameed <saeedm@...dia.com>, <netdev@...r.kernel.org>,
Tariq Toukan <tariqt@...dia.com>,
Gal Pressman <gal@...dia.com>,
Richard Cochran <richardcochran@...il.com>
Subject: Re: [net-next 03/15] net/mlx5: Add adjphase function to support
hardware-only offset control
On Thu, 19 Jan, 2023 19:46:31 -0800 Jakub Kicinski <kuba@...nel.org> wrote:
> On Wed, 18 Jan 2023 13:33:56 -0800 Jacob Keller wrote:
>> > The adjtime function supports using hardware to set the clock offset when
>> > the delta was supported by the hardware. When the delta is not supported by
>> > the hardware, the driver handles adjusting the clock. The newly-introduced
>> > adjphase function is similar to the adjtime function, except it guarantees
>> > that a provided clock offset will be used directly by the hardware to
>> > adjust the PTP clock. When the range is not acceptable by the hardware, an
>> > error is returned.
>>
>> Makes sense. Once you've verified that the delta is within the accepted
>> range you can just re-use the existing adjtime function.
>
> Seems like we should add a "max_time_adj" to struct ptp_clock_info
> and let the core call adjphase if the offset is small enough to fit.
> Instead of having all drivers redirect the calls internally.
With guidance from Saeed on this topic, I have a patch in the works for
advertising the max phase adjustment supported by a driver through the
use of the PTP_CLOCK_GETCAPS ioctl. This is how the ptp stack handles
advertising the max frequency supported by a driver today. In linuxptp,
this ioctl is wrapped in a function call for getting the max frequency
adjustment supported by a device before ptp is actually run. I believe a
similar logic should occur for phase (time) adjustments. This patch
would introduce a "max_phase_adj" in ptp_clock_info that would be
handled in ptp_clock_adjtime in the ptp core stack.
Powered by blists - more mailing lists