ntirpc
ntirpc copied to clipboard
Tirpc Fixes to enabled NFS over RDMA
This patch Enable NFSoRDMA with following fixes
1. Connection management.
2. Scalable per connection buffer management to use/reuse rdma registered buffers for NFS request/responses/data buffers.
3. Granular buffer sizes for headers and data.
4. Rdma credit management based on outstanding recv buffers.
5. Async rdma_send/rdma_write callbacks.
6. Fixes to make rdma_read and rdma_write work.
7. Fixes to make reply_list and write_list work.
8. Limit rdma connections.
9. Connection disconnect handling to cleanup posted buffers.
10. cbc ref management.
11. rdma xprt ref management.
We have supporting patch in Ganesha to use rdma registered buffers for read and readdir responses. With this patch and supporting Ganesha patch, we should be able to use NFSv3 and NFSv4.0 over RDMA. Delegation has to be disabled for NFSv4.0, since callback channel is not yet supported over RDMA.
We tested NFSoRDMA with both hardware and SoftROCE
Hardware: Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function Rocky Linux release 8.9 (Green Obsidian) Linux kernel version 5.10
SoftROCE: Rocky Linux release 8.9 (Green Obsidian) Linux kernel version 5.4.275-1.el8.elrepo.x86_64 Tested with fsal=MEM
@ffilz please review and add the reviewers.
Thanks. Waiting on Frank.
Looks good to me.
@dang @ffilz please help with merging the code.
Gaurav - could you take a look at this issue: https://github.com/nfs-ganesha/ntirpc/issues/220