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++中是否有什么解决方案来替代宏代码 ...
随机推荐
- 使用du与df命令查看磁盘容量不一致
在Linux系统的ECS实例中,执行du与df命令查看磁盘容量,出现不一致的现象 执行df -h命令查看文件系统的使用率,可以看到500G 执行du / -sh 命令只使用250G 执行du和df命令 ...
- python32day
内容回顾 操作系统的历史 多道操作系统 分时操作系统 实时操作系统 进程 线程 并行和并发 同步和异步 阻塞和非阻塞 今日内容 进程的三状态图 进程的调度算法 给所有进程分配资源或者分配CPU使用权的 ...
- [JavaWeb]Log4j的前因后果
Log4j的前因后果 简介 Log4j的进化史 Log4J的三大组件: Logger:日志记录器,负责收集处理日志记录 (如何处理日志) Appender:日志输出目的地,负责日志的输出 (输出到什么 ...
- [ACM]Link-Cut Tree实现动态树初探
动态树问题是指的一类问题,而不是具体指的某一种数据结构.它主要维护一个包含若干有根树的森林,实现对森林的修改和查询等. 实现动态树的数据结构据说主要有4种,Link-Cut Tree是其中的一种.Li ...
- Entity Framework 在OrderBy排序中使用字符串
public static class LinqExtensions { private static PropertyInfo GetPropertyInfo(Type objType, strin ...
- asp.net core 中的各种路径
1.获取完整网址URL 方法一:先引用"using Microsoft.AspNetCore.Http.Extensions;",然后直接用"Request.GetDis ...
- JS 选择结构语句与循环结构语句
笔记整理自:廖雪峰老师的JS教程 选择结构 与Java使用一致. 需要注意的 JavaScript把null.undefined.0.NaN和空字符串''视为false,其他值一概视为true. 循环 ...
- JDK8 的 Lambda、Stream、LocalDate
前言 本篇主要讲述是Java中JDK1.8的一些新语法特性使用,主要是Lambda.Stream和LocalDate日期的一些使用讲解. 作者:虚无境 来源:cnblogs.com/xuwujing/ ...
- Protocol类型限制
1.protocol类型限制 设定情景: 某攻城狮A希望找一个会做饭.洗衣服的女生做女朋友,有国企工作的优先. 满足条件的女生都可以向他发送消息 从题目中我们得到要求 会做饭 会洗衣服 有份好工作 @ ...
- Protocol基本概念
1.protocol 基本概念 Protocol翻译过来, 叫做"协议" 在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC里面Int ...