Re: [PATCH net-next 3/3] net/mlx5: Support getcyclesx and getcrosscycles

From: Paolo Abeni
Date: Thu Jul 17 2025 - 06:58:47 EST


On 7/15/25 7:15 AM, Tariq Toukan wrote:
> From: Carolina Jubran <cjubran@xxxxxxxxxx>
>
> Implement the getcyclesx64 and getcrosscycles callbacks in ptp_info to
> expose the device’s raw free-running counter.
>
> Signed-off-by: Carolina Jubran <cjubran@xxxxxxxxxx>
> Reviewed-by: Dragos Tatulea <dtatulea@xxxxxxxxxx>
> Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>
> ---
> .../ethernet/mellanox/mlx5/core/lib/clock.c | 74 ++++++++++++++++++-
> 1 file changed, 73 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> index b1e2deeefc0c..2f75726674a9 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> @@ -306,6 +306,23 @@ static int mlx5_mtctr_syncdevicetime(ktime_t *device_time,
> return 0;
> }
>
> +static int
> +mlx5_mtctr_syncdevicecyclestime(ktime_t *device_time,
> + struct system_counterval_t *sys_counterval,
> + void *ctx)
> +{
> + struct mlx5_core_dev *mdev = ctx;
> + u64 device;
> + int err;
> +
> + err = mlx5_mtctr_read(mdev, false, sys_counterval, &device);
> + if (err)
> + return err;
> + *device_time = ns_to_ktime(device);

If the goal is providing a raw cycle counter, why still using a timespec
to the user space? A plain u64 would possibly be less ambiguous.

/P