Skip to content

Commit e991ee4

Browse files
authored
Merge pull request #1706 from yishaih/mlx5_dv
mlx5: Add support for TLP emulation
2 parents c6d03b4 + 86f6aee commit e991ee4

19 files changed

Lines changed: 594 additions & 9 deletions

debian/ibverbs-providers.symbols

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ libmlx5.so.1 ibverbs-providers #MINVER#
3434
MLX5_1.24@MLX5_1.24 42
3535
MLX5_1.25@MLX5_1.25 54
3636
MLX5_1.26@MLX5_1.26 62
37+
MLX5_1.27@MLX5_1.27 63
3738
mlx5dv_init_obj@MLX5_1.0 13
3839
mlx5dv_init_obj@MLX5_1.2 15
3940
mlx5dv_query_device@MLX5_1.0 13
@@ -166,6 +167,16 @@ libmlx5.so.1 ibverbs-providers #MINVER#
166167
mlx5dv_dr_action_create_dest_root_table@MLX5_1.24 42
167168
mlx5dv_get_data_direct_sysfs_path@MLX5_1.25 54
168169
mlx5dv_reg_dmabuf_mr@MLX5_1.25 54
170+
_mlx5dv_get_export_sizes@MLX5_1.27 63
171+
mlx5dv_devx_obj_export@MLX5_1.27 63
172+
mlx5dv_devx_obj_import@MLX5_1.27 63
173+
mlx5dv_devx_obj_unimport@MLX5_1.27 63
174+
mlx5dv_devx_umem_export@MLX5_1.27 63
175+
mlx5dv_devx_umem_import@MLX5_1.27 63
176+
mlx5dv_devx_umem_unimport@MLX5_1.27 63
177+
mlx5dv_var_export@MLX5_1.27 63
178+
mlx5dv_var_import@MLX5_1.27 63
179+
mlx5dv_var_unimport@MLX5_1.27 63
169180
libefa.so.1 ibverbs-providers #MINVER#
170181
* Build-Depends-Package: libibverbs-dev
171182
EFA_1.0@EFA_1.0 24

kernel-headers/rdma/efa-abi.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
22
/*
3-
* Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
3+
* Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
44
*/
55

66
#ifndef EFA_ABI_USER_H
@@ -44,7 +44,8 @@ struct efa_ibv_alloc_ucontext_resp {
4444
__u32 max_llq_size; /* bytes */
4545
__u16 max_tx_batch; /* units of 64 bytes */
4646
__u16 min_sq_wr;
47-
__u8 reserved_a0[4];
47+
__u16 inline_buf_size_ex;
48+
__u8 reserved_b0[2];
4849
};
4950

5051
struct efa_ibv_alloc_pd_resp {

kernel-headers/rdma/irdma-abi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ struct irdma_alloc_ucontext_resp {
5757
__u8 rsvd2;
5858
__aligned_u64 comp_mask;
5959
__u16 min_hw_wq_size;
60+
__u8 revd3[2];
6061
__u32 max_hw_srq_quanta;
61-
__u8 rsvd3[2];
6262
};
6363

6464
struct irdma_alloc_pd_resp {

kernel-headers/rdma/mlx5_user_ioctl_cmds.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ enum mlx5_ib_var_alloc_attrs {
139139
MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET,
140140
MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH,
141141
MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID,
142+
MLX5_IB_ATTR_VAR_OBJ_ALLOC_FLAGS,
142143
};
143144

144145
enum mlx5_ib_var_obj_destroy_attrs {

kernel-headers/rdma/mlx5_user_ioctl_verbs.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ enum mlx5_ib_uapi_query_port_flags {
100100
MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
101101
};
102102

103+
enum mlx5_ib_uapi_var_alloc_flags {
104+
MLX5_IB_UAPI_VAR_ALLOC_FLAG_TLP = 1 << 0,
105+
};
106+
103107
struct mlx5_ib_uapi_reg {
104108
__u32 value;
105109
__u32 mask;

kernel-headers/rdma/rdma_netlink.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,10 @@ enum rdma_nldev_command {
308308

309309
RDMA_NLDEV_CMD_MONITOR,
310310

311+
RDMA_NLDEV_CMD_FRMR_POOLS_GET, /* can dump */
312+
313+
RDMA_NLDEV_CMD_FRMR_POOLS_SET,
314+
311315
RDMA_NLDEV_NUM_OPS
312316
};
313317

@@ -582,6 +586,24 @@ enum rdma_nldev_attr {
582586
RDMA_NLDEV_SYS_ATTR_MONITOR_MODE, /* u8 */
583587

584588
RDMA_NLDEV_ATTR_STAT_OPCOUNTER_ENABLED, /* u8 */
589+
590+
/*
591+
* FRMR Pools attributes
592+
*/
593+
RDMA_NLDEV_ATTR_FRMR_POOLS, /* nested table */
594+
RDMA_NLDEV_ATTR_FRMR_POOL_ENTRY, /* nested table */
595+
RDMA_NLDEV_ATTR_FRMR_POOL_KEY, /* nested table */
596+
RDMA_NLDEV_ATTR_FRMR_POOL_KEY_ATS, /* u8 */
597+
RDMA_NLDEV_ATTR_FRMR_POOL_KEY_ACCESS_FLAGS, /* u32 */
598+
RDMA_NLDEV_ATTR_FRMR_POOL_KEY_VENDOR_KEY, /* u64 */
599+
RDMA_NLDEV_ATTR_FRMR_POOL_KEY_NUM_DMA_BLOCKS, /* u64 */
600+
RDMA_NLDEV_ATTR_FRMR_POOL_QUEUE_HANDLES, /* u32 */
601+
RDMA_NLDEV_ATTR_FRMR_POOL_MAX_IN_USE, /* u64 */
602+
RDMA_NLDEV_ATTR_FRMR_POOL_IN_USE, /* u64 */
603+
RDMA_NLDEV_ATTR_FRMR_POOLS_AGING_PERIOD, /* u32 */
604+
RDMA_NLDEV_ATTR_FRMR_POOL_PINNED_HANDLES, /* u32 */
605+
RDMA_NLDEV_ATTR_FRMR_POOL_KEY_KERNEL_VENDOR_KEY, /* u64 */
606+
585607
/*
586608
* Always the end
587609
*/

kernel-headers/rdma/rdma_user_cm.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ struct rdma_ucm_query_path_resp {
192192

193193
struct rdma_ucm_query_ib_service_resp {
194194
__u32 num_service_recs;
195+
__u32 reserved;
195196
struct ib_user_service_rec recs[];
196197
};
197198

@@ -354,14 +355,15 @@ enum {
354355

355356
#define RDMA_USER_CM_IB_SERVICE_NAME_SIZE 64
356357
struct rdma_ucm_ib_service {
357-
__u64 service_id;
358+
__aligned_u64 service_id;
358359
__u8 service_name[RDMA_USER_CM_IB_SERVICE_NAME_SIZE];
359360
__u32 flags;
360361
__u32 reserved;
361362
};
362363

363364
struct rdma_ucm_resolve_ib_service {
364365
__u32 id;
366+
__u32 reserved;
365367
struct rdma_ucm_ib_service ibs;
366368
};
367369

providers/mlx5/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ if (ENABLE_LTTNG AND LTTNGUST_FOUND)
1515
endif()
1616

1717
rdma_shared_provider(mlx5 libmlx5.map
18-
1 1.26.${PACKAGE_VERSION}
18+
1 1.27.${PACKAGE_VERSION}
1919
${TRACE_FILE}
2020
buf.c
2121
cq.c

providers/mlx5/libmlx5.map

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,3 +240,17 @@ MLX5_1.26 {
240240
global:
241241
mlx5dv_devx_uar_export_dmabuf_fd;
242242
} MLX5_1.25;
243+
244+
MLX5_1.27 {
245+
global:
246+
_mlx5dv_get_export_sizes;
247+
mlx5dv_devx_obj_export;
248+
mlx5dv_devx_obj_import;
249+
mlx5dv_devx_obj_unimport;
250+
mlx5dv_devx_umem_export;
251+
mlx5dv_devx_umem_import;
252+
mlx5dv_devx_umem_unimport;
253+
mlx5dv_var_export;
254+
mlx5dv_var_import;
255+
mlx5dv_var_unimport;
256+
} MLX5_1.26;

providers/mlx5/man/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,20 @@ rdma_man_pages(
2020
mlx5dv_devx_create_event_channel.3.md
2121
mlx5dv_devx_get_event.3.md
2222
mlx5dv_devx_obj_create.3.md
23+
mlx5dv_devx_obj_export.3.md
2324
mlx5dv_devx_qp_modify.3.md
2425
mlx5dv_devx_query_eqn.3.md
2526
mlx5dv_devx_subscribe_devx_event.3.md
2627
mlx5dv_devx_uar_export_dmabuf_fd.3.md
28+
mlx5dv_devx_umem_export.3.md
2729
mlx5dv_devx_umem_reg.3.md
2830
mlx5dv_dm_map_op_addr.3.md
2931
mlx5dv_dr_flow.3.md
3032
mlx5dv_dump.3.md
3133
mlx5dv_flow_action_esp.3.md
3234
mlx5dv_get_clock_info.3
3335
mlx5dv_get_data_direct_sysfs_path.3.md
36+
mlx5dv_get_export_sizes.3.md
3437
mlx5dv_get_vfio_device_list.3.md
3538
mlx5dv_init_obj.3
3639
mlx5dv_is_supported.3.md
@@ -49,6 +52,7 @@ rdma_man_pages(
4952
mlx5dv_reserved_qpn_alloc.3.md
5053
mlx5dv_sched_node_create.3.md
5154
mlx5dv_ts_to_ns.3
55+
mlx5dv_var_export.3.md
5256
mlx5dv_wr_mkey_configure.3.md
5357
mlx5dv_vfio_get_events_fd.3.md
5458
mlx5dv_vfio_process_events.3.md
@@ -78,6 +82,8 @@ rdma_alias_man_pages(
7882
mlx5dv_devx_obj_create.3 mlx5dv_devx_obj_query.3
7983
mlx5dv_devx_obj_create.3 mlx5dv_devx_obj_query_async.3
8084
mlx5dv_devx_obj_create.3 mlx5dv_devx_obj_modify.3
85+
mlx5dv_devx_obj_export.3 mlx5dv_devx_obj_import.3
86+
mlx5dv_devx_obj_export.3 mlx5dv_devx_obj_unimport.3
8187
mlx5dv_devx_qp_modify.3 mlx5dv_devx_qp_query.3
8288
mlx5dv_devx_qp_modify.3 mlx5dv_devx_cq_modify.3
8389
mlx5dv_devx_qp_modify.3 mlx5dv_devx_cq_query.3
@@ -88,6 +94,8 @@ rdma_alias_man_pages(
8894
mlx5dv_devx_qp_modify.3 mlx5dv_devx_ind_tbl_modify.3
8995
mlx5dv_devx_qp_modify.3 mlx5dv_devx_ind_tbl_query.3
9096
mlx5dv_devx_subscribe_devx_event.3 mlx5dv_devx_subscribe_devx_event_fd.3
97+
mlx5dv_devx_umem_export.3 mlx5dv_devx_umem_import.3
98+
mlx5dv_devx_umem_export.3 mlx5dv_devx_umem_unimport.3
9199
mlx5dv_devx_umem_reg.3 mlx5dv_devx_umem_dereg.3
92100
mlx5dv_devx_umem_reg.3 mlx5dv_devx_umem_reg_ex.3
93101
mlx5dv_dr_flow.3 mlx5dv_dr_action_create_aso.3
@@ -136,6 +144,8 @@ rdma_alias_man_pages(
136144
mlx5dv_sched_node_create.3 mlx5dv_sched_leaf_modify.3
137145
mlx5dv_sched_node_create.3 mlx5dv_sched_node_destroy.3
138146
mlx5dv_sched_node_create.3 mlx5dv_sched_node_modify.3
147+
mlx5dv_var_export.3 mlx5dv_var_import.3
148+
mlx5dv_var_export.3 mlx5dv_var_unimport.3
139149
mlx5dv_wr_mkey_configure.3 mlx5dv_wr_set_mkey_access_flags.3
140150
mlx5dv_wr_mkey_configure.3 mlx5dv_wr_set_mkey_layout_interleaved.3
141151
mlx5dv_wr_mkey_configure.3 mlx5dv_wr_set_mkey_layout_list.3

0 commit comments

Comments
 (0)