【verbs】使用ibverbs api注意事项|libibverbs 中 fork() 支持的状态如何?

使用ibverbs api注意事项

int ibv_fork_init(void)

Input Parameters:
None
Output Parameters:
None
Return Value:
0 on success, -1 on error. If the call fails, errno will be set to indicate the reason for the failure.
  • ibv_fork_init初始化libibverbs的数据结构以安全地处理fork()函数,并避免数据损坏,不管fork()是否被明确地或隐式地调用,如在system()调用。
  • 如果所有父进程线程总是被阻塞,直到所有子进程通过exec()操作结束或更改地址空间,则不需要调用ibv_fork_init。
  • 该功能适用​​于支持madvise()(2.6.17及更高版本)的MADV_DONTFORK标志的Linux内核。
  • 将环境变量RDMAV_FORK_SAFE或IBV_FORK_SAFE设置为任何值与调用ibv_fork_init()具有相同的效果。
  • 将环境变量RDMAV_HUGEPAGES_SAFE设置为任何值将告知库检查内核对内存区域使用的底层页大小。如果应用程序通过库(例如libhugetlbfs)直接或间接使用庞大的页面,这是必需的。
  • 调用ibv_fork_init()将会降低性能,因为每个内存注册需要额外的系统调用,并且分配给追踪内存区域的额外内存。精确的性能影响取决于工作负载,通常不会很大。
  • 设置RDMAV_HUGEPAGES_SAFE为所有内存启用增加了额外的开销。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值