Colderleo's blog Colderleo's blog
首页
Linux
C++
Python
前端
工具软件
mysql
索引
关于
GitHub (opens new window)

Colder Leo

热爱代码的打工人
首页
Linux
C++
Python
前端
工具软件
mysql
索引
关于
GitHub (opens new window)
  • bug定位的一些情形
  • c++性能调优,可能的情况
  • total-编程知识点集锦
  • hpc_common.hpp
  • memory order 内存模型
  • 类型推导之auto-template-decltype
  • 完美转发forward源码分析
  • 左值和右值,右值引用、重载 std-move,引用折叠
  • cmake用法
  • alignas、alignof、sizeof实现内存对齐分配
  • 通过宏定义控制debug打印
  • 程序耗时性能测试
  • 线程池开源项目阅读
  • C++类中包含没有默认构造函数的成员
  • C++可变参数模板
  • C++属性继承 public protected private
  • C++智能指针
  • C++导出so的方法,以及extern C 注意事项
  • 四种spin lock
  • condition_variable和unique_lock
  • dpdk、kernel bypass
  • 智能网卡solarflare、Mellanox、X10等
    • 智能网卡-Mellanox
    • 智能网卡-Solarflare
      • onload使用
      • efsink抓包
      • sfptpd对时
    • 智能网卡-X10
    • 智能网卡-广策Tacnic
    • 跨主机网络对时
      • 验证
  • 汇编寄存器和常见指令
  • c++ 类的静态成员变量未定义
  • C++获取类成员函数地址
  • preload示例
  • C++异常安全和RAII
  • C++11单例模式
  • C++歪门邪道
  • boost-program-option用法
  • c++17通过模板获取类成员的个数
  • 通过模板实现结构体成员拷贝-按成员名匹配
  • STL学习路径
  • boost库安装使用方法
  • C++文件读写
  • linux下socket通信demo,server和client
  • makefile写法
  • RxCpp
  • C++
gaoliu
2022-03-14
目录

智能网卡solarflare、Mellanox、X10等

# 智能网卡-Mellanox

  • 迈络思网卡MAC地址通常以0c:42开头
  • ifconfig查看网口

img

迈络思智能网卡,本身做了一套开源的libvma,作用和dpdk类似。安装迈络思网卡驱动时,增加--dpdk和--vma就会自动安装对应的库。

驱动安装

cd MLNX_OFED_LINUX-5.3-1.0.0.1-rhel7.7-x86_64
./mlnxofedinstall --dpdk  --vma  --upstream-libs
/etc/init.d/openibd restart
1
2
3

安装完成后重启服务器。

查看迈络思网卡的pci地址:

  • 查看网卡的pci地址 lspci | grep Mellanox

img

  • ethtool -i p5p1 查看p5p1里bus-info的pci地址,和上面lspci对应起来

img

bus-info: 0000:04:00.0,表明p5p1网口对应的pci地址为04:00.0,

# 智能网卡-Solarflare

  • solarflare网卡的MAC地址,一般是00:0f开头,或者00:0f:53开头
  • 底层efvi收包

onload驱动安装和使用: https://blog.csdn.net/Erice_s/article/details/121686572 (opens new window)

1、解压安装包 tar -zxvf onload-7.1.0.265.tgz 2、进入驱动目录 onload-7.1.0.265/scripts 3、安装驱动 ./onload_install 4、查看网卡版本 ethtool -i p2p2 5、reload网卡 ./onload_tool reload 6、查看网卡版本验证 ethtool -i p2p2

# onload使用

onload --profile=latency taskset -c 2,3 ./[Application]
onload -p latency taskset -c 2,3 ./[Application]
1
2

# efsink抓包

# pkill efsink
efsink -tv ens3f0 sniff:promisc -p $(date "+%Y%m%d-%H%M%S").pcap > /dev/null &

# 停止抓包
pkill efsink
1
2
3
4
5

# sfptpd对时

# 这个对时程序启动后需要大概3分钟才能对好,offset的值越来越小,最后稳定在个位数
/root/sfptpd/sfptpd -f /root/sfptpd/config/ntp.cfg

# 后台运行
nohup /root/sfptpd/sfptpd -f /root/sfptpd/config/ntp.cfg > /dev/null &
1
2
3
4
5

# 智能网卡-X10

MAC地址通常以64:3f:5f开头 驱动exanic: https://exablaze.com/docs/exanic/user-guide/search.html?q=capture (opens new window)

# 查看所有x10网卡配置
exanic-config

# 抓包 https://exablaze.com/docs/exanic/user-guide/config/#using-exanic-capture
./exanic-capture -i interface -H -N -w $(date "+%Y%m%d-%H%M%S").pcap 
1
2
3
4
5

# 智能网卡-广策Tacnic

MAC地址通常以64:3f:5f开头,基于exanic

# 查看是否有tacnic网卡以及相关信息
tacnic-config

# 网卡对时  tacnic0表示一张tacnic卡,如果有两张卡,则是tacnic0和tacnic1
tacnic-clock-sync tacnic0:host >/dev/null 2>&1 &
tacnic-clock-sync tacnic0:host --daemon

# 检查网卡对时情况,正常是两三百ns
tacnic-clock-check tacnic0 

# 抓包
# pkill tacnic-capture    tacnic0:0 tacnic0:1
tacnic-capture -H -N -i tacnic0:0 -w $(date "+%Y%m%d-%H%M%S").interface0.pcap  > /dev/null 2>&1 &
tacnic-capture -H -N -i tacnic0:1 -w $(date "+%Y%m%d-%H%M%S").interface1.pcap > /dev/null 2>&1 &

# 安装或者卸载驱动
rmmod tacsock
rmmod tacnic
insmod /usr/lib/modules/3.10.0-957.e17.x86_64/extra/exanic.ko
insmod /usr/lib/modules/3.10.0-957.e17.x86_64/extra/exasock.ko
ifup xxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 跨主机网络对时

安装配置ptp4l服务,假设两个主机AB,主机A配置ptp4l服务为master,主机B配置为slave,两个直连的网卡通过ptp4l对时。

安装phc2sys服务,A主机网卡到主机对时(以主机为准),B主机从主机到网卡对时(以网卡为准)

对时主从关系为: A主机->A网卡->B网卡->B主机

查看对时偏差: systemctl status ptp4l systemctl status phc2sys

两台主机网卡直连,都用智能网卡的情况下,偏差delay约为100ns 经过交换机的情况下,偏差delay可能达到1000ns

# 验证

写一个发送udp和接收udp的程序,一台主机发送,另一台主机接收,通过智能网卡kernal bypass收发。发送时用clock_realtime打点,接收时也打点,查看时间差,记为t1 发送和接收的主机调换,再次测量时间差,记为t2

t1和t2的差应当为2倍的对时偏差。

编辑 (opens new window)
上次更新: 2023/05/07, 17:27:54
dpdk、kernel bypass
汇编寄存器和常见指令

← dpdk、kernel bypass 汇编寄存器和常见指令→

最近更新
01
通过模板实现结构体成员拷贝-按成员名匹配
05-07
02
c++17通过模板获取类成员的个数
05-01
03
avx-sse切换惩罚
04-30
更多文章>
Theme by Vdoing | Copyright © 2019-2023 Colder Leo | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×