Re: [PATCH net-next 3/3] net/mlx5: Support getcyclesx and getcrosscycles
From: Carolina Jubran <hidden>
Date: 2025-07-17 15:56:56
Also in:
linux-rdma, lkml
On 17/07/2025 13:55, Paolo Abeni wrote:
On 7/15/25 7:15 AM, Tariq Toukan wrote:quoted
From: Carolina Jubran <redacted> Implement the getcyclesx64 and getcrosscycles callbacks in ptp_info to expose the device’s raw free-running counter. Signed-off-by: Carolina Jubran <redacted> Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> --- .../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
getcycles64 and getcrosscycles already return the cycle counter in a timespec64/ktime format, so I kept the new ioctls consistent with them.