On 04/05/2018 07:03 PM, Jason Gunthorpe wrote: > On Thu, Apr 05, 2018 at 06:34:44PM +0200, Nicolas Morey-Chaisemartin wrote: >> >> On 04/05/2018 06:05 PM, Jason Gunthorpe wrote: >>> On Thu, Apr 05, 2018 at 05:40:46PM +0200, Nicolas Morey-Chaisemartin wrote: >>>> On 04/05/2018 05:20 PM, Jason Gunthorpe wrote: >>>>> On Thu, Apr 05, 2018 at 08:35:26AM +0200, Nicolas Morey-Chaisemartin wrote: >>>>>> On 04/05/2018 12:21 AM, Jason Gunthorpe wrote: >>>>>>> Is this just a userspace bug in ibstat or do roce ports actually implement umad? >>>>>>> >>>>>>> Jason >>>>>> It seems like they don't. It's just ibstat doing a umad_init() >>>>>> before making few calls to umad_get_cas_names() and a few other that >>>>>> seem to work through simple reads in sysfs (not umad related). >>>>>> >>>>>> Not sure what the clean way to fix this is. Removing the call to >>>>>> umad_init feels dirty but it's simple enough. Any ideas ? >>>>> Maybe we should make umad_init not open the umad device if the link >>>>> layer is ethernet, iwarp, etc? >>>>> >>>>> Hal? >>>>> >>>>> Jason >>>> As there may be multiple device type in the same host, I don't think it'd be that easy. >>>> >>>> Right now the only thing umad_init() is doind is checking version against the kernel ABI (or something like that). >>>> This is not required for a lot of the umad API as they only list stuff in sysfs. >>> It is not umad_init we need to remove, but umad_open_port should not >>> be called if the link layer is ethernet. >>> >>> Jason >> For ibstat, I don't think it is calling umad_open_port. It's only >> call to umad are umad_init, umad_get_cas_names, umad_get_ca, >> umad_get_ca_portguid and it doesn't seem like any of these call >> umad_open_port. The failure from ibstat is due to umad_init which >> fails because there is no /sys/class/infiniband_mad/abi_version as >> we only have RoCE hw and the ib_umad module is not automatically >> loaded. > Ooooh I see now. > > Yes, this is structured badly.. We should make umad_init into a NOP > and learn the abi_version only when we need it. > > How about this? Tested and approved: adams:~ # rmmod ib_umad adams:~/rdma-core # ibstat ibwarn: [27720] umad_init: can't read ABI version from /sys/class/infiniband_mad/abi_version (No such file or directory): is ib_umad module loaded? ibpanic: [27720] main: can't init UMAD library: No such file or directory adams:~/rdma-core # export LD_LIBRARY_PATH=$(pwd) # Use patched libibumad adams:~/rdma-core # ibstat CA 'bnxt_re0' CA type: Broadcom NetXtreme-C/E RoCE Driver HCA Number of ports: 1 Firmware version: 20.8.29.0 Hardware version: 0x14e4 Node GUID: 0x9edc71fffeb69930 System image GUID: 0x9edc71fffeb69930 Port 1: State: Down Physical state: Disabled Rate: 100 Base lid: 0 LMC: 0 SM lid: 0 Capability mask: 0x041d0000 Port GUID: 0x9edc71fffeb69930 Link layer: Ethernet -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html