SSD开发常用测试命令

  1. 读盘命令

hexdump /dev/sda -C -s 0x2000 -n 512 ; (byte)

DiskMan /dev/sda rde -L 0x100 -C 1 -v 1 ;

./vdbench print /dev/sda 0x2000 512 (byte)

linux基础命令:

dmesg |tail
watch "dmesg |tail -30"

ps -aux |grep fio  查看当前运行的fio命令
iostat -dx 1          查看使用率

查找命令(以查找svn为例)
which svn
find /usr/local -name "*svn*"

 chmod +x DiskMan

scp -r *** root@10.10.28.148:/opt/test_tools   ***为当前目录名称

fio --name=test --filename=/dev/nvme0n1 --bs=1k --rw=write --direct=1 --runtime=3600 --time_based --iodepth=128 --randrepeat=0 --norandommap

fio --name=test --filename=/dev/nvme0n1 --rw=read --direct=1 --randrepeat=0 --norandommap --runtime=3600 --time_based --numjobs=1 --iodepth=32 --bs=1k

fio --name=test --filename=/dev/nvme0n1 --bs=1k --rw=randwrite --direct=1 --runtime=3600 --time_based --iodepth=128 --randrepeat=0 --norandommap

fio --name=test --filename=/dev/nvme0n1 --rw=randread --direct=1 --randrepeat=0 --norandommap --runtime=3600 --time_based --numjobs=1 --iodepth=32 --bs=1k

BW/IOPS保存到文件:

fio --filename=/dev/nvme0n1 --bs=128k --rw=write--randrepeat=0 --norandommap --ioengine=libaio --direct=1 --name=1 --time_based--log_avg_msec=1000 --write_iops_log=128k_write_qd1  --write_bw_log=PresetSeqwriteBW --runtime=100 --iodepth=128

dd命令生成文件:

dd if=/dev/urandom of=1.img bs=1G count=1

dd if=/dev/zero of=/dev/nvme0n1 bs=1k count=1

  1. PCIE/NVME

  • pcie基础命令

lspci -vt 查看pci设备slot number

lspci -vvv -s 1:0.0 查看pci设备配置空间信息

setpci -s 0:1d.0 3e.w get配置空间offset 3e的值(.b .w .l)

setpci -s 0:1d.0 3e.w=0x40 set配置空间offset 3e的值为0x40

eg:

通过PC下发hot reset:

setpci -s 0:1d.0 3e.w=0x40

setpci -s 0:1d.0 3e.w=0x10

发disable link:

setpci -s 0:1d.0 50.w=0x40

setpci -s 0:1d.0 50.w=0x40

注意:hot reset和disable link均为向bridge 寄存器写,为上行口slot number,上行口和下行口的配置空间CAP分布可能不一致,需要先通过lspci 查询上行口的CAP偏移信息。

echo "1" > /sys/bus/pci/devices/0000:01:00.0/remove remove设备

echo "1" > /sys/bus/pci/rescan rescan设备

find /sys/devices -name nvme1n1   最后一个bdf号是上行slot

cd /sys/bus/pci/slots/sid     echo 0 >power   echo 1 > power

setpci -s 02:00.2 78.w=0xa03f //vf FLR reset

setpci –s 2:0.0 10.l=0xa1b18000 //写vf bar0

setpci -s 1: BASE_ADDRESS_0 //读取bar0空间的地址

getm 0xa1000000 w //getm为读取bar映射空间的value,0xa1000000为bar0的映射地址

getm 0xf7000004 w

  • 创建虚拟设备

echo 2 > /sys/class/nvme/nvme0/device/sriov_numvfs 创建2个vf

echo 1 > /sys/class/nvme/nvme0/device/sriov_numvfs

echo 0 > /sys/class/nvme/nvme0/device/sriov_numvfs

cat /sys/class/ nvme/nvme0/device/mlx5_num_vfs(忘了这个命令做什么,后续确认下)

nvme创建ns

nvme create-ns /dev/nvme0 -s 0x1000000 -c 0x1000000 -f 0 -d 0 -m 0 //8G

nvme attach-ns /dev/nvme0 -n 2 -c 0x41(-c为当前physical controller的id,这里要确认好,不一定是1)

nvme admin-passthru /dev/nvme0 -o 0x06 -n 0x0 -4 0x02 -l 512 -r

查看命令超时时间   cd /sys/module/nvme_core/parameters    admin_timeout   io_timeout

  1.  常用gdb调试命令

hb + func 打断点

i r //info registor

i r pc //pc value

s

n //next,不进函数

disassemble + func //汇编指令

x/x //读寄存器值u32

x/x {int} 0x40000000=0x11223344   //向地址0x40000000写0x11223344

x/8x // 读8个u32

p/x $t0 读寄存器的值

set $PC=0x1 //修改PC值

p + 变量名 查询变量值

set variable <var_name> =

info symbol sp

  1. linux PC端文件拷贝命令 scp -r *** root@10.10.28.148:/opt/test_tools ***为当前目录名称

  1. 安装vdbench 需要安装java sudo apt install openjdk-8-jdk

pciutils工具源码  The PCI Utilities

fio   1. fio - Flexible I/O tester rev. 3.36 — fio 3.36 documentation

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木晗晗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值