5.1 Merge Window Pull Request
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
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfB7FMLh+8QxL+6i3OG33FX4gmxoFAlyAJYYACgkQOG33FX4g
mxrWwQ/+OyAx4Moru7Aix0C6GWxTJp/wKgw21CS3reZxgLai6x81xNYG/s2wCNjo
IccObVd7mvzyqPdxOeyHBsJBbQDqWvoD6O2duH8cqGMgBRgh3CSdUep2zLvPpSAx
2W1SvWYCLDnCuarboFrCA8c4AN3eCZiqD7z9lHyFQGjy3nTUWzk1uBaOP46uaiMv
w89N8EMdXJ/iY6ONzihvE05NEYbMA8fuvosKLLNdghRiHIjbMQU8SneY23pvyPDd
ZziPu9NcO3Hw9OVbkwtJp47U3KCBgvKHmnixyZKkikjiD+HVoABw2IMwcYwyBZwP
Bic/ddONJUvAxMHpKRnQaW7znAiHARk21nDG28UAI7FWXH/wMXgicMp6LRcNKqKF
vqXdxHTKJb0QUR4xrYI+eA8ihstss7UUpgSgByuANJ0X729xHiJtlEvPb1DPo1Dz
9CB4OHOVRl5O8sA5Jc6PSusZiKEpvWoyWbdmw0IiwDF5pe922VLl5Nv88ta+sJ38
v2Ll5AgYcluk7F3599Uh9D7gwp5hxW2Ph3bNYyg2j3HP4/dKsL9XvIJPXqEthgCr
3KQS9rOZfI/7URieT+H+Mlf+OWZhXsZilJG7No0fYgIVjgJ00h3SF1/299YIq6Qp
9W7ZXBfVSwLYA2AEVSvGFeZPUxgBwHrSZ62wya4uFeB1jyoodPk=
=p12E
-----END PGP SIGNATURE-----
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
...
This commit is contained in:
commit
a50243b1dd
264 changed files with 16724 additions and 5028 deletions
|
|
@ -44,6 +44,14 @@
|
|||
|
||||
#define BNXT_RE_ABI_VERSION 1
|
||||
|
||||
#define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
|
||||
#define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
|
||||
#define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
|
||||
|
||||
enum {
|
||||
BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
|
||||
};
|
||||
|
||||
struct bnxt_re_uctx_resp {
|
||||
__u32 dev_id;
|
||||
__u32 max_qp;
|
||||
|
|
@ -51,6 +59,9 @@ struct bnxt_re_uctx_resp {
|
|||
__u32 cqe_sz;
|
||||
__u32 max_cqd;
|
||||
__u32 rsvd;
|
||||
__aligned_u64 comp_mask;
|
||||
__u32 chip_id0;
|
||||
__u32 chip_id1;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -270,6 +270,8 @@ struct ib_uverbs_ex_query_device_resp {
|
|||
struct ib_uverbs_tm_caps tm_caps;
|
||||
struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
|
||||
__aligned_u64 max_dm_size;
|
||||
__u32 xrc_odp_caps;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
|
|
|
|||
|
|
@ -84,6 +84,14 @@ enum mlx5_ib_devx_obj_query_attrs {
|
|||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_obj_query_async_attrs {
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_query_eqn_attrs {
|
||||
MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
|
||||
|
|
@ -94,6 +102,7 @@ enum mlx5_ib_devx_obj_methods {
|
|||
MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
|
||||
MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
|
||||
MLX5_IB_METHOD_DEVX_OBJ_QUERY,
|
||||
MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_umem_reg_attrs {
|
||||
|
|
@ -113,11 +122,20 @@ enum mlx5_ib_devx_umem_methods {
|
|||
MLX5_IB_METHOD_DEVX_UMEM_DEREG,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
|
||||
MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_async_cmd_fd_methods {
|
||||
MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_objects {
|
||||
MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_OBJECT_DEVX_OBJ,
|
||||
MLX5_IB_OBJECT_DEVX_UMEM,
|
||||
MLX5_IB_OBJECT_FLOW_MATCHER,
|
||||
MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_create_attrs {
|
||||
|
|
|
|||
|
|
@ -51,5 +51,10 @@ enum mlx5_ib_uapi_flow_action_packet_reformat_type {
|
|||
MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
|
||||
};
|
||||
|
||||
struct mlx5_ib_uapi_devx_async_cmd_hdr {
|
||||
__aligned_u64 wr_id;
|
||||
__u8 out_data[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@
|
|||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
RDMA_NL_RDMA_CM = 1,
|
||||
RDMA_NL_IWCM,
|
||||
RDMA_NL_IWCM = 2,
|
||||
RDMA_NL_RSVD,
|
||||
RDMA_NL_LS, /* RDMA Local Services */
|
||||
RDMA_NL_NLDEV, /* RDMA device interface */
|
||||
|
|
@ -14,8 +13,7 @@ enum {
|
|||
};
|
||||
|
||||
enum {
|
||||
RDMA_NL_GROUP_CM = 1,
|
||||
RDMA_NL_GROUP_IWPM,
|
||||
RDMA_NL_GROUP_IWPM = 2,
|
||||
RDMA_NL_GROUP_LS,
|
||||
RDMA_NL_NUM_GROUPS
|
||||
};
|
||||
|
|
@ -24,15 +22,17 @@ enum {
|
|||
#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
|
||||
#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
|
||||
|
||||
enum {
|
||||
RDMA_NL_RDMA_CM_ID_STATS = 0,
|
||||
RDMA_NL_RDMA_CM_NUM_OPS
|
||||
};
|
||||
/* The minimum version that the iwpm kernel supports */
|
||||
#define IWPM_UABI_VERSION_MIN 3
|
||||
|
||||
/* The latest version that the iwpm kernel supports */
|
||||
#define IWPM_UABI_VERSION 4
|
||||
|
||||
/* iwarp port mapper message flags */
|
||||
enum {
|
||||
RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
|
||||
RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
|
||||
RDMA_NL_RDMA_CM_NUM_ATTR,
|
||||
|
||||
/* Do not map the port for this IWPM request */
|
||||
IWPM_FLAGS_NO_PORT_MAP = (1 << 0),
|
||||
};
|
||||
|
||||
/* iwarp port mapper op-codes */
|
||||
|
|
@ -45,6 +45,7 @@ enum {
|
|||
RDMA_NL_IWPM_HANDLE_ERR,
|
||||
RDMA_NL_IWPM_MAPINFO,
|
||||
RDMA_NL_IWPM_MAPINFO_NUM,
|
||||
RDMA_NL_IWPM_HELLO,
|
||||
RDMA_NL_IWPM_NUM_OPS
|
||||
};
|
||||
|
||||
|
|
@ -83,20 +84,38 @@ enum {
|
|||
IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_MANAGE_MAPPING_SEQ,
|
||||
IWPM_NLA_MANAGE_ADDR,
|
||||
IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_MANAGE_FLAGS,
|
||||
IWPM_NLA_MANAGE_MAPPING_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_RMANAGE_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_RMANAGE_MAPPING_SEQ,
|
||||
IWPM_NLA_RMANAGE_ADDR,
|
||||
IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
|
||||
/* The following maintains bisectability of rdma-core */
|
||||
IWPM_NLA_MANAGE_MAPPED_LOC_ADDR = IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_RMANAGE_MAPPING_ERR,
|
||||
IWPM_NLA_RMANAGE_MAPPING_MAX
|
||||
};
|
||||
|
||||
#define IWPM_NLA_MANAGE_MAPPING_MAX 3
|
||||
#define IWPM_NLA_QUERY_MAPPING_MAX 4
|
||||
#define IWPM_NLA_MAPINFO_SEND_MAX 3
|
||||
#define IWPM_NLA_REMOVE_MAPPING_MAX 3
|
||||
|
||||
enum {
|
||||
IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_QUERY_MAPPING_SEQ,
|
||||
IWPM_NLA_QUERY_LOCAL_ADDR,
|
||||
IWPM_NLA_QUERY_REMOTE_ADDR,
|
||||
IWPM_NLA_QUERY_FLAGS,
|
||||
IWPM_NLA_QUERY_MAPPING_MAX,
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_RQUERY_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_RQUERY_MAPPING_SEQ,
|
||||
IWPM_NLA_RQUERY_LOCAL_ADDR,
|
||||
IWPM_NLA_RQUERY_REMOTE_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPING_ERR,
|
||||
|
|
@ -114,6 +133,7 @@ enum {
|
|||
IWPM_NLA_MAPINFO_UNSPEC = 0,
|
||||
IWPM_NLA_MAPINFO_LOCAL_ADDR,
|
||||
IWPM_NLA_MAPINFO_MAPPED_ADDR,
|
||||
IWPM_NLA_MAPINFO_FLAGS,
|
||||
IWPM_NLA_MAPINFO_MAX
|
||||
};
|
||||
|
||||
|
|
@ -132,6 +152,12 @@ enum {
|
|||
IWPM_NLA_ERR_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_HELLO_UNSPEC = 0,
|
||||
IWPM_NLA_HELLO_ABI_VERSION,
|
||||
IWPM_NLA_HELLO_MAX
|
||||
};
|
||||
|
||||
/*
|
||||
* Local service operations:
|
||||
* RESOLVE - The client requests the local service to resolve a path.
|
||||
|
|
@ -229,9 +255,11 @@ enum rdma_nldev_command {
|
|||
RDMA_NLDEV_CMD_GET, /* can dump */
|
||||
RDMA_NLDEV_CMD_SET,
|
||||
|
||||
/* 3 - 4 are free to use */
|
||||
RDMA_NLDEV_CMD_NEWLINK,
|
||||
|
||||
RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */
|
||||
RDMA_NLDEV_CMD_DELLINK,
|
||||
|
||||
RDMA_NLDEV_CMD_PORT_GET, /* can dump */
|
||||
|
||||
/* 6 - 8 are free to use */
|
||||
|
||||
|
|
@ -430,6 +458,20 @@ enum rdma_nldev_attr {
|
|||
RDMA_NLDEV_ATTR_DRIVER_S64, /* s64 */
|
||||
RDMA_NLDEV_ATTR_DRIVER_U64, /* u64 */
|
||||
|
||||
/*
|
||||
* Indexes to get/set secific entry,
|
||||
* for QP use RDMA_NLDEV_ATTR_RES_LQPN
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_PDN, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_CQN, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_MRN, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_CM_IDN, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_CTXN, /* u32 */
|
||||
/*
|
||||
* Identifies the rdma driver. eg: "rxe" or "siw"
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_LINK_TYPE, /* string */
|
||||
|
||||
/*
|
||||
* Always the end
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -300,6 +300,10 @@ enum {
|
|||
RDMA_OPTION_ID_TOS = 0,
|
||||
RDMA_OPTION_ID_REUSEADDR = 1,
|
||||
RDMA_OPTION_ID_AFONLY = 2,
|
||||
RDMA_OPTION_ID_ACK_TIMEOUT = 3
|
||||
};
|
||||
|
||||
enum {
|
||||
RDMA_OPTION_IB_PATH = 1
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -58,8 +58,7 @@ struct rxe_global_route {
|
|||
struct rxe_av {
|
||||
__u8 port_num;
|
||||
__u8 network_type;
|
||||
__u16 reserved1;
|
||||
__u32 reserved2;
|
||||
__u8 dmac[6];
|
||||
struct rxe_global_route grh;
|
||||
union {
|
||||
struct sockaddr_in _sockaddr_in;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue