[ofa-general] help on /sys/class structure and rdma

Steve Wise swise at opengridcomputing.com
Fri Jan 25 10:58:35 PST 2008


Roland Dreier wrote:
> I don't have any file like that in my system either.  Not sure where
> it might be coming from for you.
> 
> However, I do have /sys/class/infiniband_verbs/uverbs1/ibdev (which
> should be present everywhere), and that has "cxgb3_0" in it, which you
> could use to get to /sys/class/infiniband/cxgb3_0/<whatever>.
> 
> libibverbs does set up ibv_device.ibdev_path with that path, but it
> happens too late for your library initialization function
> unfortunately.  So you can either wait until someone tries to create a
> context and fail/warn then about firmware version, or you can
> duplicate the libibverbs code to come up with that ibdev_path.
> 
>  - R.

How does this look?

>         /*
>          * Verify that the firmware major number matches.  Major number
>          * mismatches are fatal.  Minor number mismatches are tolerated.
>          */
>         if (ibv_read_sysfs_file(uverbs_sys_path, "ibdev",
>                                 ibdev, sizeof ibdev) < 0)
>                 return NULL;
> 
>         memset(devstr, 0, sizeof devstr);
>         snprintf(devstr, sizeof devstr, "%s/class/infiniband/%s",   
>                  ibv_get_sysfs_path(), ibdev);
>         if (ibv_read_sysfs_file(devstr, "fw_ver", value, sizeof value) < 0)
>                 return NULL;
> 




More information about the general mailing list