Hi,
This series adds RDMA completion timestamp support for ionic.
It enables PHC registration for RDMA timestamp capability, exposes a PHC
state page for safe user-space reads, maps that PHC state through RDMA
ucontext mmap, and extends the RDMA CQE format to carry completion
timestamps.
With this, user space can read completion timestamps and convert them to
wall time with low overhead.
Provider's PR: https://github.com/linux-rdma/rdma-core/pull/1724
v3:
- Renamed ib_uverbs_phc_state to ib_uverbs_clock_info
- Moved mlx5 to use the common clock info structure
- Addressed review feedback from Sashiko
v2:
- changed ionic_phc_state to ib_uverbs_phc_state and moved it under
ib_user_verbs.h
- https://lore.kernel.org/linux-rdma/20260512092623.1157199-1-abhijit.gangurde@amd.com/
v1:
- https://lore.kernel.org/all/20260401102501.3395305-1-abhijit.gangurde@amd.com/
Abhijit Gangurde (5):
net: ionic: register PHC for rdma timestamping
net: ionic: Add PHC state page for user space access
RDMA/ionic: map PHC state into user space
RDMA/ionic: add completion timestamp to CQE format
RDMA/mlx5: move mlx5 clock info to common struct ib_uverbs_clock_info
.../infiniband/hw/ionic/ionic_controlpath.c | 34 ++++++++++
drivers/infiniband/hw/ionic/ionic_datapath.c | 43 ++++++-------
drivers/infiniband/hw/ionic/ionic_fw.h | 12 +++-
drivers/infiniband/hw/ionic/ionic_ibdev.h | 2 +
drivers/infiniband/hw/ionic/ionic_lif_cfg.c | 2 +
drivers/infiniband/hw/ionic/ionic_lif_cfg.h | 1 +
.../ethernet/mellanox/mlx5/core/lib/clock.c | 8 +--
.../ethernet/pensando/ionic/ionic_ethtool.c | 12 ++--
.../net/ethernet/pensando/ionic/ionic_if.h | 1 +
.../net/ethernet/pensando/ionic/ionic_lif.c | 5 +-
.../net/ethernet/pensando/ionic/ionic_lif.h | 3 +-
.../net/ethernet/pensando/ionic/ionic_phc.c | 63 ++++++++++++++++---
include/linux/mlx5/driver.h | 2 +-
include/uapi/rdma/ib_user_verbs.h | 33 ++++++++++
include/uapi/rdma/ionic-abi.h | 1 +
include/uapi/rdma/mlx5-abi.h | 3 +
16 files changed, 183 insertions(+), 42 deletions(-)
--
2.43.0