On 5/10/22 9:17 PM, Jason Gunthorpe wrote:
On Thu, Apr 21, 2022 at 03:17:45PM +0800, Cheng Xu wrote:
+static struct rdma_link_ops erdma_link_ops = {
+ .type = "erdma",
+ .newlink = erdma_newlink,
+};
Why is there still a newlink?
Hello, Jason,
About this issue, I have another idea, more simple and reasonable.
Maybe erdma driver doesn't need to link to a net device in kernel. In
the core code, the ib_device_get_netdev has several use cases:
1). query port info in netlink
2). get eth speed for IB (ib_get_eth_speed)
3). enumerate all RoCE ports (ib_enum_roce_netdev)
4). iw_query_port
The cases related to erdma is 4). But we change it in our patch 02/12.
So, it seems all right that we do not link erdma to a net device.
* I also test this solution, it works for both perftest and NoF. *
Another issue is how to get the port state and attributes without
net device. For this, erdma can get it from HW directly.
So, I think this may be the final solution. (BTW, I have gone over
the rdma drivers, EFA does in this way, it also has two separated
devices for net and rdma. It inspired me).
Thanks,
Cheng Xu