作者
QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118
方法
获取块设备大小
ret = ioctl(fd[i], BLKGETSIZE64, &size);
if (ret < 0) {
printf("ioctl BLKGETSIZE64 error, errno=%d\n", errno);
return -1;
}
读写,
lseek(fd[i], diskStart, SEEK_SET);
ret = write(fd[i], (void *)(unsigned long)sysStart, rwLength);
if (ret < 0) {
printf("write error, errno=%d\n", errno);
return -1;
}
ret = read(fd[i], (void *)(unsigned long)sysStart, rwLength);
if (ret < 0) {
printf("readerror, errno=%d\n", errno);
return -1;
}
测试
在xilinx zynqmp平台上,读写PS端内存,zynqmp用一个PCIe2.0x8接到PLX8724上,
root@zynqmp:~# blk_benchmark -r /dev/nvme1n1 -s 0 -l 0x400000 -c 16
speed: 412.90MB/s, cost times: 155ms
root@zynqmp:~# blk_benchmark -r /dev/nvme0n1 -s 0 -l 0x400000 -c 32
speed: 526.75MB/s, cost times: 243ms
root@zynqmp:~# blk_benchmark -r /dev/nvme0n1 -s 0 -l 0x400000 -c 128
speed: 1034.34MB/s, cost times: 495ms
root@zynqmp:~# blk_benchmark -w /dev/nvme1n1 -s 0 -l 0x400000 -c 16
speed: 1032.26MB/s, cost times: 62ms
root@zynqmp:~# blk_benchmark -w /dev/nvme1n1 -s 0 -l 0x400000 -c 32
speed: 1066.67MB/s, cost times: 120ms
root@zynqmp:~# blk_benchmark -w /dev/nvme1n1 -s 0 -l 0x400000 -c 128
speed: 1075.63MB/s, cost times: 476ms
在T2080平台上测试,T2080用一个PCIe2.0x4接到PLX的Switch上,
root@t2080rdb:~# blk_benchmark -r /dev/nvme0n1 -s 0 -l 0x400000 -c 32
speed: 414.24MB/s, cost times: 309ms
root@t2080rdb:~# blk_benchmark -r /dev/nvme0n1 -s 0 -l 0x400000 -c 128
speed: 420.36MB/s, cost times: 1218ms
root@t2080rdb:~# blk_benchmark -w /dev/nvme0n1 -s 0 -l 0x400000 -c 128
speed: 387.59MB/s, cost times: 1321ms