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

Add Yunsilicon User Space RoCE Driver #1500

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

tianx666
Copy link

This series of patches adds the user-space RoCE driver for the Yunsilicon MS/MC series smart NICs.

Please review and provide your valuable feedback, thank you.

Here is the list of patches:
libxscale: Add xscale needed kernel headers
libxscale: Add support for posting verbs
libxscale: Add support for qp management
libxscale: Add support for cq related verbs
libxscale: Add support for pd and mr
libxscale: Introduce xscale user space RDMA provider

@rleon
Copy link
Member

rleon commented Sep 25, 2024

Please invest more time in grep and replace "mlx5" suffix.

It is very unfortunate that you relied on mlx5 provider, it is not very good example to follow.

Thanks

@tianx666
Copy link
Author

Hi, Leon,

Thank you for your feedback.

In the early stages, we relied heavily on the mlx code and design, which helped get our device up and running quickly. We're now incorporating our own logic and gradually phasing out the mlx code, though it's clear we haven't fully succeeded yet.

I’d like to ask if our code is being rejected due to high duplication with existing code. I understand that our driver must first be merged into the Linux kernel before patches like ours can be accepted. If that's already done, is our rdma-core provider code, in its current state, eligible for inclusion in the rdma-core mainline?

@rleon
Copy link
Member

rleon commented Sep 25, 2024

Hi, Leon,

Thank you for your feedback.

In the early stages, we relied heavily on the mlx code and design, which helped get our device up and running quickly. We're now incorporating our own logic and gradually phasing out the mlx code, though it's clear we haven't fully succeeded yet.

I’d like to ask if our code is being rejected due to high duplication with existing code. I understand that our driver must first be merged into the Linux kernel before patches like ours can be accepted. If that's already done, is our rdma-core provider code, in its current state, eligible for inclusion in the rdma-core mainline?

It is not rejected but delayed till we will get and merge Linux kernel part of that driver. There is no real benefit in reviewing the rdma-core code now as it has so many mlx5 specific code. For example all ENV variables should go. In addition, you will need to post your rdma-core code to linux-rdma mailing list too as we are requiring to do so from new drivers.

Thanks

libxscale is a user-space driver that provides RDMA
capabilities to user applications. The current patch
includes the following components:
1. basic compile framework
2. register/unregister user-space driver via verbs
3. query_port
4. query_device_ex

Signed-off-by: Tian Xin <tianx@yunsilicon.com>
Signed-off-by: Wei Honggang <weihg@yunsilicon.com>
Signed-off-by: Zhao Qianwei <zhaoqw@yunsilicon.com>
Signed-off-by: Li Qiang <liq@yunsilicon.com>
Signed-off-by: Yan Lei <jacky@yunsilicon.com>
This patch adds support for pd and mr operations including:
1. alloc_pd
2. dealloc_pd
3. reg_mr
4. dereg_mr

Signed-off-by: Tian Xin <tianx@yunsilicon.com>
Signed-off-by: Wei Honggang <weihg@yunsilicon.com>
Signed-off-by: Zhao Qianwei <zhaoqw@yunsilicon.com>
Signed-off-by: Li Qiang <liq@yunsilicon.com>
Signed-off-by: Yan Lei <jacky@yunsilicon.com>
@tianx666 tianx666 force-pushed the master branch 6 times, most recently from d4407d9 to cb506f1 Compare October 9, 2024 09:46
This patch adds support for the following cq verbs:
1. create_cq
2. poll_cq
3. req_notify_cq
4. resize_cq
5. destroy_cq

Signed-off-by: Tian Xin <tianx@yunsilicon.com>
Signed-off-by: Wei Honggang <weihg@yunsilicon.com>
Signed-off-by: Zhao Qianwei <zhaoqw@yunsilicon.com>
Signed-off-by: Li Qiang <liq@yunsilicon.com>
Signed-off-by: Yan Lei <jacky@yunsilicon.com>
This patch adds support for following qp management verbs:
1. create_qp
2. query_qp
3. modify_qp
4. destroy_qp

Signed-off-by: Tian Xin <tianx@yunsilicon.com>
Signed-off-by: Wei Honggang <weihg@yunsilicon.com>
Signed-off-by: Zhao Qianwei <zhaoqw@yunsilicon.com>
Signed-off-by: Li Qiang <liq@yunsilicon.com>
Signed-off-by: Yan Lei <jacky@yunsilicon.com>
This patch adds support for post_send and post_recv routines.

Signed-off-by: Tian Xin <tianx@yunsilicon.com>
Signed-off-by: Wei Honggang <weihg@yunsilicon.com>
Signed-off-by: Zhao Qianwei <zhaoqw@yunsilicon.com>
Signed-off-by: Li Qiang <liq@yunsilicon.com>
Signed-off-by: Yan Lei <jacky@yunsilicon.com>
This patch adds xscale needed kernel abi headers into
the kernel-headers directory.

Signed-off-by: Tian Xin <tianx@yunsilicon.com>
Signed-off-by: Wei Honggang <weihg@yunsilicon.com>
Signed-off-by: Zhao Qianwei <zhaoqw@yunsilicon.com>
Signed-off-by: Li Qiang <liq@yunsilicon.com>
Signed-off-by: Yan Lei <jacky@yunsilicon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants