History

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

Pull rdma updates from Jason Gunthorpe: "This has been a slightly more active cycle than normal with ongoing core changes and quite a lot of collected driver updates. - Various driver fixes for bnxt_re, cxgb4, hns, mlx5, pvrdma, rxe - A new data transfer mode for HFI1 giving higher performance - Significant functional and bug fix update to the mlx5 On-Demand-Paging MR feature - A chip hang reset recovery system for hns - Change mm->pinned_vm to an atomic64 - Update bnxt_re to support a new 57500 chip - A sane netlink 'rdma link add' method for creating rxe devices and fixing the various unregistration race conditions in rxe's unregister flow - Allow lookup up objects by an ID over netlink - Various reworking of the core to driver interface: - drivers should not assume umem SGLs are in PAGE_SIZE chunks - ucontext is accessed via udata not other means - start to make the core code responsible for object memory allocation - drivers should convert struct device to struct ib_device via a helper - drivers have more tools to avoid use after unregister problems" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (280 commits) net/mlx5: ODP support for XRC transport is not enabled by default in FW IB/hfi1: Close race condition on user context disable and close RDMA/umem: Revert broken 'off by one' fix RDMA/umem: minor bug fix in error handling path RDMA/hns: Use GFP_ATOMIC in hns_roce_v2_modify_qp cxgb4: kfree mhp after the debug print IB/rdmavt: Fix concurrency panics in QP post_send and modify to error IB/rdmavt: Fix loopback send with invalidate ordering IB/iser: Fix dma_nents type definition IB/mlx5: Set correct write permissions for implicit ODP MR bnxt_re: Clean cq for kernel consumers only RDMA/uverbs: Don't do double free of allocated PD RDMA: Handle ucontext allocations by IB/core RDMA/core: Fix a WARN() message bnxt_re: fix the regression due to changes in alloc_pbl IB/mlx4: Increase the timeout for CM cache IB/core: Abort page fault handler silently during owning process exit IB/mlx5: Validate correct PD before prefetch MR IB/mlx5: Protect against prefetch of invalid MR RDMA/uverbs: Store PR pointer before it is overwritten ...

Linus Torvalds committed 7 years ago

Commit a50243b2 parents 2901752 fca22e7264 files · +16710 −5014Browse files

Showing the changes to include/uapi (7 of 264 files). Show all

Unified · Split

7 files
  1. include/uapi/rdma/bnxt_re-abi.h +11 −0
  2. include/uapi/rdma/ib_user_verbs.h +2 −0
  3. include/uapi/rdma/mlx5_user_ioctl_cmds.h +18 −0
  4. include/uapi/rdma/mlx5_user_ioctl_verbs.h +5 −0
  5. include/uapi/rdma/rdma_netlink.h +58 −16
  6. include/uapi/rdma/rdma_user_cm.h +4 −0
  7. include/uapi/rdma/rdma_user_rxe.h +1 −2
include/uapi/rdma/bnxt_re-abi.h+11−0
@@ -44,6 +44,14 @@ · 43 unmodified lines
4444
4545 #define BNXT_RE_ABI_VERSION 1
4646
47+#define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
48+#define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
49+#define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
50+
51+enum {
52+ BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
53+};
54+
4755 struct bnxt_re_uctx_resp {
4856 __u32 dev_id;
4957 __u32 max_qp;
@@ -51,6 +59,9 @@ struct bnxt_re_uctx_resp { · 1 unmodified line
5159 __u32 cqe_sz;
5260 __u32 max_cqd;
5361 __u32 rsvd;
62+ __aligned_u64 comp_mask;
63+ __u32 chip_id0;
64+ __u32 chip_id1;
5465 };
5566
5667 /*
include/uapi/rdma/ib_user_verbs.h+2−0
@@ -270,6 +270,8 @@ struct ib_uverbs_ex_query_device_resp { · 269 unmodified lines
270270 struct ib_uverbs_tm_caps tm_caps;
271271 struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
272272 __aligned_u64 max_dm_size;
273+ __u32 xrc_odp_caps;
274+ __u32 reserved;
273275 };
274276
275277 struct ib_uverbs_query_port {
include/uapi/rdma/mlx5_user_ioctl_cmds.h+18−0
@@ -84,6 +84,14 @@ enum mlx5_ib_devx_obj_query_attrs { · 83 unmodified lines
8484 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
8585 };
8686
87+enum mlx5_ib_devx_obj_query_async_attrs {
88+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
89+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
90+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
91+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
92+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
93+};
94+
8795 enum mlx5_ib_devx_query_eqn_attrs {
8896 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
8997 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
@@ -94,6 +102,7 @@ enum mlx5_ib_devx_obj_methods { · 4 unmodified lines
94102 MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
95103 MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
96104 MLX5_IB_METHOD_DEVX_OBJ_QUERY,
105+ MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
97106 };
98107
99108 enum mlx5_ib_devx_umem_reg_attrs {
@@ -113,11 +122,20 @@ enum mlx5_ib_devx_umem_methods { · 13 unmodified lines
113122 MLX5_IB_METHOD_DEVX_UMEM_DEREG,
114123 };
115124
125+enum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
126+ MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
127+};
128+
129+enum mlx5_ib_devx_async_cmd_fd_methods {
130+ MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
131+};
132+
116133 enum mlx5_ib_objects {
117134 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
118135 MLX5_IB_OBJECT_DEVX_OBJ,
119136 MLX5_IB_OBJECT_DEVX_UMEM,
120137 MLX5_IB_OBJECT_FLOW_MATCHER,
138+ MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
121139 };
122140
123141 enum mlx5_ib_flow_matcher_create_attrs {
include/uapi/rdma/mlx5_user_ioctl_verbs.h+5−0
@@ -51,5 +51,10 @@ enum mlx5_ib_uapi_flow_action_packet_reformat_type { · 50 unmodified lines
5151 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
5252 };
5353
54+struct mlx5_ib_uapi_devx_async_cmd_hdr {
55+ __aligned_u64 wr_id;
56+ __u8 out_data[];
57+};
58+
5459 #endif
5560
include/uapi/rdma/rdma_netlink.h+58−16
@@ -5,8 +5,7 @@ · 4 unmodified lines
55 #include <linux/types.h>
66
77 enum {
8− RDMA_NL_RDMA_CM = 1,
9− RDMA_NL_IWCM,
8+ RDMA_NL_IWCM = 2,
109 RDMA_NL_RSVD,
1110 RDMA_NL_LS, /* RDMA Local Services */
1211 RDMA_NL_NLDEV, /* RDMA device interface */
@@ -14,8 +13,7 @@ enum { · 1 unmodified line
1413 };
1514
1615 enum {
17− RDMA_NL_GROUP_CM = 1,
18− RDMA_NL_GROUP_IWPM,
16+ RDMA_NL_GROUP_IWPM = 2,
1917 RDMA_NL_GROUP_LS,
2018 RDMA_NL_NUM_GROUPS
2119 };
@@ -24,15 +22,17 @@ enum { · 2 unmodified lines
2422 #define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
2523 #define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
2624
27−enum {
28− RDMA_NL_RDMA_CM_ID_STATS = 0,
29− RDMA_NL_RDMA_CM_NUM_OPS
30−};
25+/* The minimum version that the iwpm kernel supports */
26+#define IWPM_UABI_VERSION_MIN 3
27+
28+/* The latest version that the iwpm kernel supports */
29+#define IWPM_UABI_VERSION 4
3130
31+/* iwarp port mapper message flags */
3232 enum {
33− RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
34− RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
35− RDMA_NL_RDMA_CM_NUM_ATTR,
33+
34+ /* Do not map the port for this IWPM request */
35+ IWPM_FLAGS_NO_PORT_MAP = (1 << 0),
3636 };
3737
3838 /* iwarp port mapper op-codes */
@@ -45,6 +45,7 @@ enum { · 6 unmodified lines
4545 RDMA_NL_IWPM_HANDLE_ERR,
4646 RDMA_NL_IWPM_MAPINFO,
4747 RDMA_NL_IWPM_MAPINFO_NUM,
48+ RDMA_NL_IWPM_HELLO,
4849 RDMA_NL_IWPM_NUM_OPS
4950 };
5051
@@ -83,20 +84,38 @@ enum { · 32 unmodified lines
8384 IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
8485 IWPM_NLA_MANAGE_MAPPING_SEQ,
8586 IWPM_NLA_MANAGE_ADDR,
86− IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
87+ IWPM_NLA_MANAGE_FLAGS,
88+ IWPM_NLA_MANAGE_MAPPING_MAX
89+};
90+
91+enum {
92+ IWPM_NLA_RMANAGE_MAPPING_UNSPEC = 0,
93+ IWPM_NLA_RMANAGE_MAPPING_SEQ,
94+ IWPM_NLA_RMANAGE_ADDR,
95+ IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
96+ /* The following maintains bisectability of rdma-core */
97+ IWPM_NLA_MANAGE_MAPPED_LOC_ADDR = IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
8798 IWPM_NLA_RMANAGE_MAPPING_ERR,
8899 IWPM_NLA_RMANAGE_MAPPING_MAX
89100 };
90101
91−#define IWPM_NLA_MANAGE_MAPPING_MAX 3
92−#define IWPM_NLA_QUERY_MAPPING_MAX 4
93102 #define IWPM_NLA_MAPINFO_SEND_MAX 3
103+#define IWPM_NLA_REMOVE_MAPPING_MAX 3
94104
95105 enum {
96106 IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
97107 IWPM_NLA_QUERY_MAPPING_SEQ,
98108 IWPM_NLA_QUERY_LOCAL_ADDR,
99109 IWPM_NLA_QUERY_REMOTE_ADDR,
110+ IWPM_NLA_QUERY_FLAGS,
111+ IWPM_NLA_QUERY_MAPPING_MAX,
112+};
113+
114+enum {
115+ IWPM_NLA_RQUERY_MAPPING_UNSPEC = 0,
116+ IWPM_NLA_RQUERY_MAPPING_SEQ,
117+ IWPM_NLA_RQUERY_LOCAL_ADDR,
118+ IWPM_NLA_RQUERY_REMOTE_ADDR,
100119 IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
101120 IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
102121 IWPM_NLA_RQUERY_MAPPING_ERR,
@@ -114,6 +133,7 @@ enum { · 11 unmodified lines
114133 IWPM_NLA_MAPINFO_UNSPEC = 0,
115134 IWPM_NLA_MAPINFO_LOCAL_ADDR,
116135 IWPM_NLA_MAPINFO_MAPPED_ADDR,
136+ IWPM_NLA_MAPINFO_FLAGS,
117137 IWPM_NLA_MAPINFO_MAX
118138 };
119139
@@ -132,6 +152,12 @@ enum { · 12 unmodified lines
132152 IWPM_NLA_ERR_MAX
133153 };
134154
155+enum {
156+ IWPM_NLA_HELLO_UNSPEC = 0,
157+ IWPM_NLA_HELLO_ABI_VERSION,
158+ IWPM_NLA_HELLO_MAX
159+};
160+
135161 /*
136162 * Local service operations:
137163 * RESOLVE - The client requests the local service to resolve a path.
@@ -229,9 +255,11 @@ enum rdma_nldev_command { · 91 unmodified lines
229255 RDMA_NLDEV_CMD_GET, /* can dump */
230256 RDMA_NLDEV_CMD_SET,
231257
232− /* 3 - 4 are free to use */
258+ RDMA_NLDEV_CMD_NEWLINK,
233259
234− RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */
260+ RDMA_NLDEV_CMD_DELLINK,
261+
262+ RDMA_NLDEV_CMD_PORT_GET, /* can dump */
235263
236264 /* 6 - 8 are free to use */
237265
@@ -430,6 +458,20 @@ enum rdma_nldev_attr { · 192 unmodified lines
430458 RDMA_NLDEV_ATTR_DRIVER_S64, /* s64 */
431459 RDMA_NLDEV_ATTR_DRIVER_U64, /* u64 */
432460
461+ /*
462+ * Indexes to get/set secific entry,
463+ * for QP use RDMA_NLDEV_ATTR_RES_LQPN
464+ */
465+ RDMA_NLDEV_ATTR_RES_PDN, /* u32 */
466+ RDMA_NLDEV_ATTR_RES_CQN, /* u32 */
467+ RDMA_NLDEV_ATTR_RES_MRN, /* u32 */
468+ RDMA_NLDEV_ATTR_RES_CM_IDN, /* u32 */
469+ RDMA_NLDEV_ATTR_RES_CTXN, /* u32 */
470+ /*
471+ * Identifies the rdma driver. eg: "rxe" or "siw"
472+ */
473+ RDMA_NLDEV_ATTR_LINK_TYPE, /* string */
474+
433475 /*
434476 * Always the end
435477 */
include/uapi/rdma/rdma_user_cm.h+4−0
@@ -300,6 +300,10 @@ enum { · 299 unmodified lines
300300 RDMA_OPTION_ID_TOS = 0,
301301 RDMA_OPTION_ID_REUSEADDR = 1,
302302 RDMA_OPTION_ID_AFONLY = 2,
303+ RDMA_OPTION_ID_ACK_TIMEOUT = 3
304+};
305+
306+enum {
303307 RDMA_OPTION_IB_PATH = 1
304308 };
305309
include/uapi/rdma/rdma_user_rxe.h+1−2
@@ -58,8 +58,7 @@ struct rxe_global_route { · 57 unmodified lines
5858 struct rxe_av {
5959 __u8 port_num;
6060 __u8 network_type;
61− __u16 reserved1;
62− __u32 reserved2;
61+ __u8 dmac[6];
6362 struct rxe_global_route grh;
6463 union {
6564 struct sockaddr_in _sockaddr_in;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t