| a6c34676 | 26-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Support create_ah/destroy_ah in non-sleepable contexts
The RDMA CM module might invoke erdma_create_ah() or erdma_destroy_ah() in a non-sleepable context. Both of these functions will ca
RDMA/erdma: Support create_ah/destroy_ah in non-sleepable contexts
The RDMA CM module might invoke erdma_create_ah() or erdma_destroy_ah() in a non-sleepable context. Both of these functions will call the erdma_post_cmd_wait(), which can potentially sleep and occasionally lead to a hard lockup. Therefore, post the create_ah and destroy_ah commands in polling mode if the RDMA_CREATE_AH_SLEEPABLE and RDMA_DESTROY_AH_SLEEPABLE flags are not set, respectively.
Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 26981e68 | 26-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Support non-sleeping erdma_post_cmd_wait()
Several scenarios require posting commands to the cmdq in a non-sleepable context. For example, the cm_alloc_msg() might call erdma_create_ah()
RDMA/erdma: Support non-sleeping erdma_post_cmd_wait()
Several scenarios require posting commands to the cmdq in a non-sleepable context. For example, the cm_alloc_msg() might call erdma_create_ah() while still holding a spinlock. So we add support for non-sleeping erdma_post_cmd_wait().
Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 1cccbd3e | 11-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Add the query_qp command to the cmdq
Certian QP attributes, such as sq_draining, can only be obtained by querying the hardware on the erdma RoCEv2 device. To address this, we add the que
RDMA/erdma: Add the query_qp command to the cmdq
Certian QP attributes, such as sq_draining, can only be obtained by querying the hardware on the erdma RoCEv2 device. To address this, we add the query_qp command to the cmdq and parse the response to retrieve corresponding QP attributes.
Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| de5b8008 | 11-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Refactor the code of the modify_qp interface
The procedure for modifying QP is similar for both the iWARP and RoCEv2 protocols. Therefore, we unify the code and provide the erdma_modify_
RDMA/erdma: Refactor the code of the modify_qp interface
The procedure for modifying QP is similar for both the iWARP and RoCEv2 protocols. Therefore, we unify the code and provide the erdma_modify_qp() interface for both protocols.
Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 9566cf6a | 11-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Add erdma_modify_qp_rocev2() interface
The QP state machines in the RoCEv2 and iWARP protocols are different. To handle these differences for the erdma RoCEv2 device, we provide the erdm
RDMA/erdma: Add erdma_modify_qp_rocev2() interface
The QP state machines in the RoCEv2 and iWARP protocols are different. To handle these differences for the erdma RoCEv2 device, we provide the erdma_modify_qp_rocev2() interface, which transitions the QP state and modifies QP attributes accordingly.
Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 41dcaf48 | 11-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Add address handle implementation
The address handle contains the necessary information to transmit messages to a remote peer in the RoCEv2 protocol. This commit implements the erdma_cre
RDMA/erdma: Add address handle implementation
The address handle contains the necessary information to transmit messages to a remote peer in the RoCEv2 protocol. This commit implements the erdma_create_ah(), erdma_destroy_ah(), and erdma_query_ah() interfaces, which are used to create, destroy, and query an address handle, respectively.
Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 14bcf735 | 11-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Add the erdma_query_pkey() interface
The erdma_query_pkey() interface queries the PKey at the specified index. Currently, erdma supports only one partition and returns the default PKey f
RDMA/erdma: Add the erdma_query_pkey() interface
The erdma_query_pkey() interface queries the PKey at the specified index. Currently, erdma supports only one partition and returns the default PKey for each query. Besides, the correct length of the PKey table can be obtained by calling the erdma_query_port() and erdma_get_port_immutable() interfaces.
Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 6edc15ab | 11-Dec-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Add GID table management interfaces
The erdma_add_gid() interface inserts a GID entry at the specified index. The erdma_del_gid() interface deletes the GID entry at the specified index.
RDMA/erdma: Add GID table management interfaces
The erdma_add_gid() interface inserts a GID entry at the specified index. The erdma_del_gid() interface deletes the GID entry at the specified index. Additionally, programs can invoke the erdma_query_port() and erdma_get_port_immutable() interfaces to query the GID table length.
Signed-off-by: Boshi Yu <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| b80330f1 | 02-Sep-2024 |
Cheng Xu <[email protected]> |
RDMA/erdma: Add disassociate ucontext support
All IO pages mapped to user space are handled by rdma_user_mmap_io, so add empty stub for disassociate ucontext.
Signed-off-by: Cheng Xu <chengyou@linu
RDMA/erdma: Add disassociate ucontext support
All IO pages mapped to user space are handled by rdma_user_mmap_io, so add empty stub for disassociate ucontext.
Signed-off-by: Cheng Xu <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| df0e16ba | 11-Mar-2024 |
Boshi Yu <[email protected]> |
RDMA/erdma: Remove unnecessary __GFP_ZERO flag
The dma_alloc_coherent() interface automatically zero the memory returned. Thus, we do not need to specify the __GFP_ZERO flag explicitly when we call
RDMA/erdma: Remove unnecessary __GFP_ZERO flag
The dma_alloc_coherent() interface automatically zero the memory returned. Thus, we do not need to specify the __GFP_ZERO flag explicitly when we call dma_alloc_coherent().
Reviewed-by: Cheng Xu <[email protected]> Signed-off-by: Boshi Yu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|
| 63a43a67 | 27-Dec-2023 |
Cheng Xu <[email protected]> |
RDMA/erdma: Add hardware statistics support
First, we add a new command to query hardware statistics, and then implement two functions: ib_device_ops.alloc_hw_port_stats and ib_device_ops.get_hw_sta
RDMA/erdma: Add hardware statistics support
First, we add a new command to query hardware statistics, and then implement two functions: ib_device_ops.alloc_hw_port_stats and ib_device_ops.get_hw_stats to allow rdma tool can get the statistics of erdma device.
Signed-off-by: Cheng Xu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Leon Romanovsky <[email protected]>
show more ...
|