On 04/11/2020 12:40, 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. > > Do you have a better alternative suggestion to do that? > >>> 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>" Maybe it was changed in b27e504929d7 ("tests: Verify net interface support on RDMATestCase"), which made the tests skip if the path doesn't exist, instead of returning an error and failing the test. How did these tests work for rxe before if the path doesn't exist?