rdma_core ibv接口 ibv_get_device_list

ibv_get_device_list
	->ibverbs_get_device_list
		->find_sysfs_devs_nl
			->rdmanl_socket_alloc
			->返回
		->判断返回值
		如果返回值为非0值:
			->find_sysfs_devs
				->打开目录 /sys/calss/infiniband_verbs (opendir)
					然后调用readdir,并返回一个指向 struct dirent 的指针,
					这个结构体包含了目录中下个文件的信息
					每调用一次readdir,大部分时候都会调用
				->setup_sysfs_dev(dirfd(class_dir), dent->d_name, tmp_sysfs_dev_list)
					将DIR *转换成int类型的文件描述符
					int dirfd(DIR *dirp);
					->申请struct verbs_sysfs)dev *sysfs_dev
					->打开目录 /sys/class/infiniband_verbs/uverbs0
					->ibv_read_sysfs_file_at
						->读取文件 /sys/class/infiniband_verbs/uverbs0/ibdev 获取ib设备名
					->获取路径
					    ibdev_name : xib_1
                     	ibdev_path: /sys/class/infiniband/xib_1

简单来说就是读取一些文件内容检查并保存:
ibdev_name : xib_1
ibdev_path: /sys/class/infiniband/xib_1
/sys/class/infiniband_verbs
			├──── abi_version		会检查该值
			├──── uverbs0 (和uverbs1类似)
			└──── uverbs1
				├──── abi_version	存储到sysfs_dev->abi_ver
				├──── dev			里面是主设备号,从设备号
				├──── ibdev			里面是ib_dev设备的名字, 存储到 sysfs_dev->ibdev_name
/sys/class/infiniband/xib_1
						├──── fw_ver
						├──── node_desc
						├──── node_guid
						├──── node_type
						

				
			



			
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值