On 11/6/20 6:00 AM, Jason Gunthorpe wrote: > This moves siw and rxe to be virtual devices in the device tree: > > lrwxrwxrwx 1 root root 0 Nov 6 13:55 /sys/class/infiniband/rxe0 -> ../../devices/virtual/infiniband/rxe0/ > > Previously they were trying to parent themselves to the physical device of > their attached netdev, which doesn't make alot of sense. > > My hope is this will solve some weird syzkaller hits related to sysfs as > it could be possible that the parent of a netdev is another netdev, eg > under bonding or some other syzkaller found netdev configuration. > > Nesting a ib_device under anything but a physical device is going to cause > inconsistencies in sysfs during destructions. Hi Jason, I do not know enough about the code touched by this patch to comment on the patch itself. But I expect that the blktests code will have to be modified to compensate for this change. How to translate the name of a virtual RDMA device into a netdev device with this patch applied? >From the blktests project: # Check whether or not an rdma_rxe instance has been associated with # network interface $1. has_rdma_rxe() { local f for f in /sys/class/infiniband/*/parent; do if [ -e "$f" ] && [ "$(<"$f")" = "$1" ]; then return 0 fi done return 1 } rdma_dev_to_net_dev() { local b d rdma_dev=$1 b=/sys/class/infiniband/$rdma_dev/parent if [ -e "$b" ]; then echo "$(<"$b")" else echo "${rdma_dev%_siw}" fi } Bart.