ntirpc icon indicating copy to clipboard operation
ntirpc copied to clipboard

Tirpc Fixes to enabled NFS over RDMA

Open Gaurav-Gangalwar opened this issue 9 months ago • 1 comments

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

Gaurav-Gangalwar avatar May 08 '24 18:05 Gaurav-Gangalwar

@ffilz please review and add the reviewers.

Gaurav-Gangalwar avatar May 09 '24 16:05 Gaurav-Gangalwar

Thanks. Waiting on Frank.

dang avatar May 13 '24 18:05 dang

Looks good to me.

ffilz avatar May 13 '24 18:05 ffilz

@dang @ffilz please help with merging the code.

Gaurav-Gangalwar avatar May 14 '24 16:05 Gaurav-Gangalwar

Gaurav - could you take a look at this issue: https://github.com/nfs-ganesha/ntirpc/issues/220

ffilz avatar May 14 '24 20:05 ffilz