记录一些实验过程中的常用命令
网卡工具
lshw -class network
ethtool
巨页
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
lsb_release -a 显示系统
notice
太网帧尾部的帧校验序列(Frame Check Sequence, FCS)4 字节
SF
/opt/mellanox/iproute2/sbin/mlxdevm port add pci/0000:03:00.1 flavour pcisf pfnum 1 sfnum 4
/opt/mellanox/iproute2/sbin/mlxdevm port function set pci/0000:03:00.1/294945 hw_addr 00:00:00:00:04:0 trust on state active
OVS操作
cq dpu
pci 03:00.1上两个sf
en3f1pf1sf5
en3f1pf1sf6
打印现有网桥
ovs-vsctl show
删除网桥
ovs-vsctl del-br hlx
增加网桥
ovs-vsctl add-br hlx_bridge1
删除端口
ovs-vsctl del-port bridge1 p1
增加端口
ovs-vsctl add-port bridge2 p1
查看、增加、删除流表
ovs-ofctl dump-flows ovsbr2
sudo ovs-ofctl del-flows ovsbr1
sudo ovs-ofctl add-flow ovsbr1 "in_port=p0 action=pf0hpf"
sudo ovs-ofctl add-flow ovsbr1 "in_port=pf0hpf action=p0"
sudo ovs-ofctl add-flow ovsbr2 "in_port=p1 action=en3f1pf1sf0"
sudo ovs-ofctl add-flow ovsbr2 "in_port=en3f1pf1sf0 action=p1"
pktgen简单使用
启动
/home/markchen/markchen/work/SPLB/dpdk/pktgen-dpdk-pktgen-21.11.0/build/app/pktgen -a 01:00.1 -- -m [1:2].0 -P
yy->cq
set 0 dst ip 192.168.201.2
set 0 src ip 192.168.201.1/24
set 0 dst mac 08:c0:eb:bf:ef:9b
set 0 size 1000
start 0
set 1 dst ip 192.168.0.1
set 1 src ip 192.168.204.101/24
set 1 dst mac a0:88:c2:32:06:6a
set 1 size 1000
start 1
enable 1 range
range 1 size 1086 1086 1086 0
range 1 dst ip 192.168.200.200 192.168.200.200 192.168.200.200 0.0.0.0
range 1 src port 1 2 3 1
range 1 dst port 5001 5001 5001 0
range 1 dst mac b8:ce:f6:d5:d6:f8 b8:ce:f6:d5:d6:f8 b8:ce:f6:d5:d6:f8 00:00:00:00:00:00
start 1
也可以部署脚本,推荐pkt不是lua,因为简单
命名管道的同步和阻塞
阻塞行为:在标准的命名管道中,如果管道的读取端(consumer)没有打开,写入端(producer)在尝试写入数据时会被阻塞。同样地,如果写入端没有打开,尝试从管道读取数据的读取端也会被阻塞。
同步启动:因此,通常需要同时运行管道的两端以避免阻塞。在实际应用中,通常先启动读取端,然后再启动写入端。
控制版本
DPDK
pkg-config --modversion libdpdk
选择使用哪个dpdk,把需要的路径加入到其中
export PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
https://doc.dpdk.org/guides/gpus/cuda.html
./bashrc中加入cuda的路径,包括头文件
export PATH="/usr/local/cuda-11.7/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"
export C_INCLUDE_PATH=/usr/local/cuda/include:$C_INCLUDE_PATH
export C_INCLUDE_PATH=/opt/mellanox/gdrcopy/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/cuda/include:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/mellanox/gdrcopy/src
gdrdrv kernel module is active and running on the system
nvidia-peermem kernel module is active and running on the system