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
44 44
45#define BNXT_RE_ABI_VERSION 145#define BNXT_RE_ABI_VERSION 1
46 46
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
51enum {
52 BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
53};
54
47struct bnxt_re_uctx_resp {55struct bnxt_re_uctx_resp {
48 __u32 dev_id;56 __u32 dev_id;
49 __u32 max_qp;57 __u32 max_qp;
@@ -51,6 +59,9 @@ struct bnxt_re_uctx_resp { · 1 unmodified line
51 __u32 cqe_sz;59 __u32 cqe_sz;
52 __u32 max_cqd;60 __u32 max_cqd;
53 __u32 rsvd;61 __u32 rsvd;
62 __aligned_u64 comp_mask;
63 __u32 chip_id0;
64 __u32 chip_id1;
54};65};
55 66
56/*67/*
include/uapi/rdma/ib_user_verbs.h+2−0
@@ -270,6 +270,8 @@ struct ib_uverbs_ex_query_device_resp { · 269 unmodified lines
270 struct ib_uverbs_tm_caps tm_caps;270 struct ib_uverbs_tm_caps tm_caps;
271 struct ib_uverbs_cq_moderation_caps cq_moderation_caps;271 struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
272 __aligned_u64 max_dm_size;272 __aligned_u64 max_dm_size;
273 __u32 xrc_odp_caps;
274 __u32 reserved;
273};275};
274 276
275struct ib_uverbs_query_port {277struct 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
84 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,84 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
85};85};
86 86
87enum 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
87enum mlx5_ib_devx_query_eqn_attrs {95enum mlx5_ib_devx_query_eqn_attrs {
88 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),96 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
89 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,97 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
@@ -94,6 +102,7 @@ enum mlx5_ib_devx_obj_methods { · 4 unmodified lines
94 MLX5_IB_METHOD_DEVX_OBJ_DESTROY,102 MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
95 MLX5_IB_METHOD_DEVX_OBJ_MODIFY,103 MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
96 MLX5_IB_METHOD_DEVX_OBJ_QUERY,104 MLX5_IB_METHOD_DEVX_OBJ_QUERY,
105 MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
97};106};
98 107
99enum mlx5_ib_devx_umem_reg_attrs {108enum mlx5_ib_devx_umem_reg_attrs {
@@ -113,11 +122,20 @@ enum mlx5_ib_devx_umem_methods { · 13 unmodified lines
113 MLX5_IB_METHOD_DEVX_UMEM_DEREG,122 MLX5_IB_METHOD_DEVX_UMEM_DEREG,
114};123};
115 124
125enum 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
129enum mlx5_ib_devx_async_cmd_fd_methods {
130 MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
131};
132
116enum mlx5_ib_objects {133enum mlx5_ib_objects {
117 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),134 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
118 MLX5_IB_OBJECT_DEVX_OBJ,135 MLX5_IB_OBJECT_DEVX_OBJ,
119 MLX5_IB_OBJECT_DEVX_UMEM,136 MLX5_IB_OBJECT_DEVX_UMEM,
120 MLX5_IB_OBJECT_FLOW_MATCHER,137 MLX5_IB_OBJECT_FLOW_MATCHER,
138 MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
121};139};
122 140
123enum mlx5_ib_flow_matcher_create_attrs {141enum 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
51 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,51 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
52};52};
53 53
54struct mlx5_ib_uapi_devx_async_cmd_hdr {
55 __aligned_u64 wr_id;
56 __u8 out_data[];
57};
58
54#endif59#endif
55 60
include/uapi/rdma/rdma_netlink.h+58−16
@@ -5,8 +5,7 @@ · 4 unmodified lines
5#include <linux/types.h>5#include <linux/types.h>
6 6
7enum {7enum {
8 RDMA_NL_RDMA_CM = 1,8 RDMA_NL_IWCM = 2,
9 RDMA_NL_IWCM,
10 RDMA_NL_RSVD,9 RDMA_NL_RSVD,
11 RDMA_NL_LS, /* RDMA Local Services */10 RDMA_NL_LS, /* RDMA Local Services */
12 RDMA_NL_NLDEV, /* RDMA device interface */11 RDMA_NL_NLDEV, /* RDMA device interface */
@@ -14,8 +13,7 @@ enum { · 1 unmodified line
14};13};
15 14
16enum {15enum {
17 RDMA_NL_GROUP_CM = 1,16 RDMA_NL_GROUP_IWPM = 2,
18 RDMA_NL_GROUP_IWPM,
19 RDMA_NL_GROUP_LS,17 RDMA_NL_GROUP_LS,
20 RDMA_NL_NUM_GROUPS18 RDMA_NL_NUM_GROUPS
21};19};
@@ -24,15 +22,17 @@ enum { · 2 unmodified lines
24#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))22#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
25#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)23#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
26 24
27enum {25/* The minimum version that the iwpm kernel supports */
28 RDMA_NL_RDMA_CM_ID_STATS = 0,26#define IWPM_UABI_VERSION_MIN 3
29 RDMA_NL_RDMA_CM_NUM_OPS27
30};28/* The latest version that the iwpm kernel supports */
29#define IWPM_UABI_VERSION 4
31 30
31/* iwarp port mapper message flags */
32enum {32enum {
33 RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,33
34 RDMA_NL_RDMA_CM_ATTR_DST_ADDR,34 /* Do not map the port for this IWPM request */
35 RDMA_NL_RDMA_CM_NUM_ATTR,35 IWPM_FLAGS_NO_PORT_MAP = (1 << 0),
36};36};
37 37
38/* iwarp port mapper op-codes */38/* iwarp port mapper op-codes */
@@ -45,6 +45,7 @@ enum { · 6 unmodified lines
45 RDMA_NL_IWPM_HANDLE_ERR,45 RDMA_NL_IWPM_HANDLE_ERR,
46 RDMA_NL_IWPM_MAPINFO,46 RDMA_NL_IWPM_MAPINFO,
47 RDMA_NL_IWPM_MAPINFO_NUM,47 RDMA_NL_IWPM_MAPINFO_NUM,
48 RDMA_NL_IWPM_HELLO,
48 RDMA_NL_IWPM_NUM_OPS49 RDMA_NL_IWPM_NUM_OPS
49};50};
50 51
@@ -83,20 +84,38 @@ enum { · 32 unmodified lines
83 IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,84 IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
84 IWPM_NLA_MANAGE_MAPPING_SEQ,85 IWPM_NLA_MANAGE_MAPPING_SEQ,
85 IWPM_NLA_MANAGE_ADDR,86 IWPM_NLA_MANAGE_ADDR,
86 IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,87 IWPM_NLA_MANAGE_FLAGS,
88 IWPM_NLA_MANAGE_MAPPING_MAX
89};
90
91enum {
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,
87 IWPM_NLA_RMANAGE_MAPPING_ERR,98 IWPM_NLA_RMANAGE_MAPPING_ERR,
88 IWPM_NLA_RMANAGE_MAPPING_MAX99 IWPM_NLA_RMANAGE_MAPPING_MAX
89};100};
90 101
91#define IWPM_NLA_MANAGE_MAPPING_MAX 3
92#define IWPM_NLA_QUERY_MAPPING_MAX 4
93#define IWPM_NLA_MAPINFO_SEND_MAX 3102#define IWPM_NLA_MAPINFO_SEND_MAX 3
103#define IWPM_NLA_REMOVE_MAPPING_MAX 3
94 104
95enum {105enum {
96 IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,106 IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
97 IWPM_NLA_QUERY_MAPPING_SEQ,107 IWPM_NLA_QUERY_MAPPING_SEQ,
98 IWPM_NLA_QUERY_LOCAL_ADDR,108 IWPM_NLA_QUERY_LOCAL_ADDR,
99 IWPM_NLA_QUERY_REMOTE_ADDR,109 IWPM_NLA_QUERY_REMOTE_ADDR,
110 IWPM_NLA_QUERY_FLAGS,
111 IWPM_NLA_QUERY_MAPPING_MAX,
112};
113
114enum {
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,
100 IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,119 IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
101 IWPM_NLA_RQUERY_MAPPED_REM_ADDR,120 IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
102 IWPM_NLA_RQUERY_MAPPING_ERR,121 IWPM_NLA_RQUERY_MAPPING_ERR,
@@ -114,6 +133,7 @@ enum { · 11 unmodified lines
114 IWPM_NLA_MAPINFO_UNSPEC = 0,133 IWPM_NLA_MAPINFO_UNSPEC = 0,
115 IWPM_NLA_MAPINFO_LOCAL_ADDR,134 IWPM_NLA_MAPINFO_LOCAL_ADDR,
116 IWPM_NLA_MAPINFO_MAPPED_ADDR,135 IWPM_NLA_MAPINFO_MAPPED_ADDR,
136 IWPM_NLA_MAPINFO_FLAGS,
117 IWPM_NLA_MAPINFO_MAX137 IWPM_NLA_MAPINFO_MAX
118};138};
119 139
@@ -132,6 +152,12 @@ enum { · 12 unmodified lines
132 IWPM_NLA_ERR_MAX152 IWPM_NLA_ERR_MAX
133};153};
134 154
155enum {
156 IWPM_NLA_HELLO_UNSPEC = 0,
157 IWPM_NLA_HELLO_ABI_VERSION,
158 IWPM_NLA_HELLO_MAX
159};
160
135/*161/*
136 * Local service operations:162 * Local service operations:
137 * RESOLVE - The client requests the local service to resolve a path.163 * RESOLVE - The client requests the local service to resolve a path.
@@ -229,9 +255,11 @@ enum rdma_nldev_command { · 91 unmodified lines
229 RDMA_NLDEV_CMD_GET, /* can dump */255 RDMA_NLDEV_CMD_GET, /* can dump */
230 RDMA_NLDEV_CMD_SET,256 RDMA_NLDEV_CMD_SET,
231 257
232 /* 3 - 4 are free to use */258 RDMA_NLDEV_CMD_NEWLINK,
233 259
234 RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */260 RDMA_NLDEV_CMD_DELLINK,
261
262 RDMA_NLDEV_CMD_PORT_GET, /* can dump */
235 263
236 /* 6 - 8 are free to use */264 /* 6 - 8 are free to use */
237 265
@@ -430,6 +458,20 @@ enum rdma_nldev_attr { · 192 unmodified lines
430 RDMA_NLDEV_ATTR_DRIVER_S64, /* s64 */458 RDMA_NLDEV_ATTR_DRIVER_S64, /* s64 */
431 RDMA_NLDEV_ATTR_DRIVER_U64, /* u64 */459 RDMA_NLDEV_ATTR_DRIVER_U64, /* u64 */
432 460
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
433 /*475 /*
434 * Always the end476 * Always the end
435 */477 */
include/uapi/rdma/rdma_user_cm.h+4−0
@@ -300,6 +300,10 @@ enum { · 299 unmodified lines
300 RDMA_OPTION_ID_TOS = 0,300 RDMA_OPTION_ID_TOS = 0,
301 RDMA_OPTION_ID_REUSEADDR = 1,301 RDMA_OPTION_ID_REUSEADDR = 1,
302 RDMA_OPTION_ID_AFONLY = 2,302 RDMA_OPTION_ID_AFONLY = 2,
303 RDMA_OPTION_ID_ACK_TIMEOUT = 3
304};
305
306enum {
303 RDMA_OPTION_IB_PATH = 1307 RDMA_OPTION_IB_PATH = 1
304};308};
305 309
include/uapi/rdma/rdma_user_rxe.h+1−2
@@ -58,8 +58,7 @@ struct rxe_global_route { · 57 unmodified lines
58struct rxe_av {58struct rxe_av {
59 __u8 port_num;59 __u8 port_num;
60 __u8 network_type;60 __u8 network_type;
61 __u16 reserved1;61 __u8 dmac[6];
62 __u32 reserved2;
63 struct rxe_global_route grh;62 struct rxe_global_route grh;
64 union {63 union {
65 struct sockaddr_in _sockaddr_in;64 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