ibv_get_device_list()函数
struct ibv_device** ibv_get_device_list(int *num_devices);
描述
函数用来返回一个当前可用的RDMA设备数组。
注意
- 数组以NULL结尾;
- RDMA设备数组可以经由ibv_free_device_list()函数释放。
参数(int * num_devices)
- int 指针类型
- 若返回结果不为NULL,参数指向的值为返回数组中可用RDMA设备数
返回值(struct ibv_device**)
- 返回成功时:ibv_device指向可用的RDMA设备数组,num_devices设置为对应的设备数
- 返回失败时:ibv_device指向NULL,如果请求失败,设置errno值
可能的errno值有:
- EPERM:权限拒绝
- ENOMEM:内存不足以完成操作
- ENOSYS:没有内核支持RDMA
例子
1、不带参数的获取设备列表
struct ibv_device **dev_list; dev_list = ibv_get_device_list(NULL);
if (!dev_list)
exit(1);
2、带参数的获取设备列表
struct ibv_device **dev_list;
int num_devices; dev_list = ibv_get_device_list(&num_devices);
if (!dev_list)
exit(1);
FAQs
1、调用ibv_get_device_list()函数,它返回NULL,意味着什么?
答:这是一个基础的verb,一般不会失败,可以检查一下 ib_uverbs 模块是否被加载
2、调用ibv_get_device_list()函数,返回空的list,意味着什么?
答:驱动没有找到任何的RDMA设备
- 如果你的机器存在RDMA设备,可以用lspci检查
- 使用 lsmod 检查支持RDMA设备的底层驱动模块是否加载
- 使用 dmesg /var/log/message 检查是否有报错
参考链接:http://www.rdmamojo.com/2012/05/31/ibv_get_device_list/
ibv_get_device_list()函数的更多相关文章
- ibv_get_device_name()函数
const char *ibv_get_device_name(struct ibv_device *device); 描述 函数用来获取一个与RDMA设备相关联的名字 注意 这个名字在一台特定的机器 ...
- ibv_open_device()函数
struct ibv_context *ibv_open_device(struct ibv_device *device); 描述 函数会创建一个RDMA设备相关的context:可以通过ibv_c ...
- ibv_get_device_guid()函数
uint64_t ibv_get_device_guid(struct ibv_device *device); 描述 函数返回RDMA 设备的 GUID(The Global Unique IDen ...
- ibv_close_device()函数
int ibv_close_device(struct ibv_context *context); 描述 函数用来关闭一个RDMA设备context: 注意: 函数不能用来释放与该Context关联 ...
- ibv_free_device_list()函数
void ibv_free_device_list(struct ibv_device **list); 描述 函数用来释放当前可用的RDMA设备数组. 注意 数组一旦释放,指向设备的指针将不能再由i ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- C++对C的函数拓展
一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...
随机推荐
- yum更新,docker安装
备份 cd /etc/yum.repos.d/ mkdir repo_bak mv *.repo repo_bak/ 安装wget(若已安装了wget,则跳过此步 wget -V yum instal ...
- JS异步加载AMD和CMD
CommonJS 是个规范,主要用于js后端,var foo = require("./foo");foo("Hi"); AMD前置加载 require.jsr ...
- Python标准库:datetime 时间和日期模块 —— 时间的获取和操作详解
datetime 时间和日期模块 datetime 模块提供了以简单和复杂的方式操作日期和时间的类.虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作.该模块还支持可感知时区的 ...
- js-reduce方法源码
// 数组中的reduce方法源码复写 //先说明一下reduce原理:总的一句,reduce方法主要是把数组遍历, //然后把数组的每个元素传入回调函数中,回调函数怎么处理,就会的到什么样的效果 A ...
- idea2020.1版本的maven项目报包不存在,找不到包错误
错误描述 idea创建maven项目,导入依赖都是成功,但是运行就会报找不到对应jar包的错误 解决办法: File -> Settings -> 搜索maven -> 展开mave ...
- Linux curl命令进行网络请求
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11841353.html 1. curl get请求: curl http://www.baid ...
- cell重用
少数几个cell可不重用 NSString *CellIdentifier = [NSString stringWithFormat:@"MyCellID_%d",indexPat ...
- iOS 获取通讯录中联系人的所有属性 by - zfqj
1 ABAddressBookRef addressBook = ABAddressBookCreate(); 2 3 CFArrayRef results = ABAddressBookCopyAr ...
- shell脚本一键部署——Redis(直接复制执行)亲测100% 有效
首先所需软件包拖进目录,然后编辑一个脚本,复制一下脚本,source执行一下即可 #!/bin/bash echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式== ...
- 枚举和注解@override、@Deprecated、@SuppressWarnings
一.枚举 简介: 1)枚举对应英文(enumeration,简写 enum) 2)枚举是一组常量的集合. 3)可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象. 实现方式: 1.自定 ...