背景
本文介绍Mellanox驱动中管理ib_device的属性中关于设备能力的标签在用户态如何获取,以及UMR修改Mkey页大小的能力?
细节
先看:ib_verbs.h中的struct ib_device_attr ib设备属性关于设备能力flags的关系。

再看内存扩展管理的能力标记:IB_DEVICE_MEM_MGT_EXTENSIONS
再看驱动在query的时候如何根据硬件能力进行打标:
# 在ib_query_device接口能力对外提供
if (!MLX5_CAP_GEN(dev->mdev, umr_modify_entity_size_disabled)) //#tag_cap_UMESD:
props->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS;
实操查看
ibv_devinfo -v可以查看

这里显示了MEM_MGT_EXTENSIONS,表示该网卡支持该能力。
ibv_devinfo是通过前面代码介绍的,使用ib_query_device,然后读取硬件接口获取的。
总结
- ibv_devinfo 能够从硬件上读取到相关能力,并且是提供到用户态的verbs接口上
- ibv相关的工具可能每次回操作读取硬件fw的信息
- 可以利用driver提供硬件能力读取接口封装后提供自定义工具。类似ibv_devinfo功能
- ib_device_attr中的cap_flags存储了硬件能力,通过HCA Device Capabilities相关硬件接口或寄存器提供
- 查看硬件是否支持Mkey的page resize,可以通过ibv_devinfo的MEM_MGT_EXTENSIONS查看
- 所谓的Mkey的页大小是指(log_entity_size)
9055

被折叠的 条评论
为什么被折叠?



