Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tirpc Fixes to enabled NFS over RDMA #296

Merged
merged 1 commit into from
May 14, 2024
Merged

Conversation

Gaurav-Gangalwar
Copy link

@Gaurav-Gangalwar Gaurav-Gangalwar commented May 8, 2024

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
Copy link
Author

@ffilz please review and add the reviewers.

Copy link
Collaborator

@dang dang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally looks good. A few issues, though.

ntirpc/rpc/xdr_ioq.h Outdated Show resolved Hide resolved
src/rpc_rdma.c Show resolved Hide resolved
src/xdr_ioq.c Show resolved Hide resolved
src/xdr_rdma.c Show resolved Hide resolved
    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

Signed-off-by: Gaurav Gangalwar <[email protected]>
@dang
Copy link
Collaborator

dang commented May 13, 2024

Thanks. Waiting on Frank.

@ffilz
Copy link
Member

ffilz commented May 13, 2024

Looks good to me.

@Gaurav-Gangalwar
Copy link
Author

@dang @ffilz please help with merging the code.

Copy link
Member

@ffilz ffilz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@dang dang merged commit 5e9b28e into nfs-ganesha:next May 14, 2024
@ffilz
Copy link
Member

ffilz commented May 14, 2024

Gaurav - could you take a look at this issue: #220

@Gaurav-Gangalwar Gaurav-Gangalwar deleted the push branch May 20, 2024 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants