RDMA/nldev: provide detailed CM_ID information
Implement RDMA nldev netlink interface to get detailed CM_ID information. Because cm_id's are attached to rdma devices in various work queue contexts, the pid and task information at restrak_add() time is sometimes not useful. For example, an nvme/f host connection cm_id ends up being bound to a device in a work queue context and the resulting pid at attach time no longer exists after connection setup. So instead we mark all cm_id's created via the rdma_ucm as "user", and all others as "kernel". This required tweaking the restrack code a little. It also required wrapping some rdma_cm functions to allow passing the module name string. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
@@ -238,6 +238,8 @@ enum rdma_nldev_command {
|
||||
|
||||
RDMA_NLDEV_CMD_RES_QP_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_CMD_RES_CM_ID_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_NUM_OPS
|
||||
};
|
||||
|
||||
@@ -350,6 +352,18 @@ enum rdma_nldev_attr {
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_KERN_NAME, /* string */
|
||||
|
||||
RDMA_NLDEV_ATTR_RES_CM_ID, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_CM_ID_ENTRY, /* nested table */
|
||||
/*
|
||||
* rdma_cm_id port space.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_PS, /* u32 */
|
||||
/*
|
||||
* Source and destination socket addresses
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_SRC_ADDR, /* __kernel_sockaddr_storage */
|
||||
RDMA_NLDEV_ATTR_RES_DST_ADDR, /* __kernel_sockaddr_storage */
|
||||
|
||||
RDMA_NLDEV_ATTR_MAX
|
||||
};
|
||||
#endif /* _UAPI_RDMA_NETLINK_H */
|
||||
|
||||
Reference in New Issue
Block a user