On 11/4/2020 2:36 PM, Jason Gunthorpe wrote:
On Wed, Nov 04, 2020 at 12:40:11PM +0200, Edward Srouji wrote:
On 11/4/2020 2:00 AM, Jason Gunthorpe wrote:
On Tue, Nov 03, 2020 at 05:54:58PM -0600, Bob Pearson wrote:
Since 5.10 some of the pyverbs tests are skipping with the warning
"Device rxe_0 doesn't have net interface"
These occur in tests/test_rdmacm.py. As far as I can tell the error occurs in
RDMATestCase _add_gids_per_port after the following
if not os.path.exists('/sys/class/infiniband/{}/device/net/'.format(dev)):
self.args.append([dev, port, idx, None])
continue
In fact there is no such path which means it never finds an ip_addr for the device.
That isn't an acceptable way to find netdevs for a RDMA device..
This test is really buggy, that is not an acceptable way to find the
netdev for a RDMA device. Looks like it is some hacky way to read the
gid table? It should just read the gid table.. Edward?
GID table is not the reason. We need the netdev in order to get the IP
address of the interface.
The GID table has a list of all the IP addresses of the IB device, and
all the netdevs that provide it
Then how can you get the IP address via verbs API(s)? AFAIK, the
gid_entry does not hold the IP addresses, you can only get the subnet
prefix, don't you?
Did something change here? Do other RDMA devices have /sys/class/infiniband/XXX/device/net?
Yes, some will
Nothing really changed in this area lately (in pyverbs / rdma-core tests).
RXE can also have a netdev here if it's linked to one. E.g. by doing "rdma
link add <rxe_devname> type rxe netdev <net_devname>"
No it can't, this is the "parent" device and ib_device can never be a
parent of a netdev. rxe should have no parent.
Jason
Edward