• rdma软件架构的理解。


    一:对于真实的有rdma功能的网卡
    首先是应用程序了,比如perftest。
    1:https://github.com/linux-rdma/perftest.git
    下载以后,依次执行

    cd perftest/
    ./autogen.sh
    ./configure
    make
    make install
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可以看到许多的测试命令。这些测试命令又对应代码里面的某个c文件,
    比如,ib_send_bw对应send_bw.c。
    在这里插入图片描述
    这里面的代码追一下,它会调用到
    https://github.com/linux-rdma/rdma-core里面的libibverbs里面的代码,里面的代码会编译为一个so文件

    对于许多的应用程序,在编程时,需要包含头文件
    如果找不到相应的头文件,需要安装
    在这里插入图片描述
    安装完以后,在系统的默认头文件路径下会多了infiniband这个目录。
    在这里插入图片描述
    对于
    #include // RDMA_CM CMA 头文件 用于CM建链
    #include // RDMA_CM VERBS 头文件 用于使用基于CM的Verbs接口
    需要安装:
    在这里插入图片描述
    在这里插入图片描述
    然后是
    2:https://github.com/linux-rdma/rdma-core
    下载以后,依次执行

    git clone https://github.com/linux-rdma/rdma-core
    sudo apt install libsystemd-dev -y
    bash build.sh
    cmake .
    make
    sudo make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    可以看到lib目录里面包含了许多是so
    在这里插入图片描述
    然后到providers里面的各个厂商的用户态驱动,比如bnxt_re
    ,它会编译为libbnxt_re-rdmaxxx.so

    然后就到了内核态,
    代码位置。drivers\infiniband\core
    在这里插入图片描述
    这里面有许多的ko,比较重要的是ib_core.ko和ib_uverbs.ko
    通过了内核的ko以后就代码厂商的内核态驱动了,最后到硬件。

    至于ib_core.ko和ib_uverbs.ko有兴趣的同学可以看一下源码,不过,我们一般比较关心的是
    厂商的用户态驱动和内核态驱动,其他的一般不太关心。

    所以顺序就是。
    app->libibverbs.so->用户态驱动->ib_uverbs.ko->ib_core.ko->内核态驱动->硬件。
    ib_uverbs.ko->ib_core.ko这两步可以先看成是一步吧。
    细节要自己看了。

    有些应用程序到用户态以后就直接返回了,有些则需要通过那两个ko陷入到内核态去获取信息,然后返回。
    在这里插入图片描述

    在不同的系统上,比如ubuntu上,使用

    dpkg -l | grep "rdma" 
    
    • 1

    命令先找到内核版本对应的rdma-core版本,然后找到相对应的用户态驱动代码,比如rxe的。
    在这里插入图片描述
    而内核态驱动对应的版本下载对应的内核源码,然后去driver/infiniband/hw目录下找就可以了。

  • 相关阅读:
    Java开发学习----Spring事务简介与事务角色解析
    Postman使用简介
    使用 SSH 连接到 GitHub
    DevNet: Deviation Aware Networkfor Lane Detection
    Python基础知识整理 01-变量、数据类型、运算符、判断语句、循环语句
    xml文件(mybatis映射文件)中特殊字符转义
    【Filament】立方体贴图(6张图)
    如何把一个接口设计好?
    一次Navicat执行带注释的DDL导致canal异常的问题分析 以及相关知识扩展总结
    java计算机毕业设计响应式交友网站MyBatis+系统+LW文档+源码+调试部署
  • 原文地址:https://blog.csdn.net/qq_38158479/article/details/127413889