Introduce async DEVX obj query API to get the command response back to user space once it's ready without blocking when calling the firmware. The event's data includes a header with some meta data then the firmware output command data. The header includes: - The input 'wr_id' to let application recognizing the response. The input FD attribute is used to have the event data ready on. Downstream patches from this series will implement the file ops to let application read it.
Showing the changes to include/uapi (2 of 3 files). Show all
Unified · Split
| @@ -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 | ||
| 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 | |||
| 87 | enum mlx5_ib_devx_query_eqn_attrs { | 95 | enum 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 | ||
| 99 | enum mlx5_ib_devx_umem_reg_attrs { | 108 | enum mlx5_ib_devx_umem_reg_attrs { |
| @@ -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 | ||
| 54 | struct mlx5_ib_uapi_devx_async_cmd_hdr { | ||
| 55 | __aligned_u64 wr_id; | ||
| 56 | __u8 out_data[]; | ||
| 57 | }; | ||
| 58 | |||
| 54 | #endif | 59 | #endif |
| 55 | 60 | ||