我正在研究nvme-cli的测试工具(用c编写,可以在linux上运行)。
对于SSD验证目的,我们实际上正在寻找将I / O命令发送到特定的提交队列(IO队列对)。我们需要这个,因为我们需要线程,但是为了实现线程化,我们需要将I / O请求发送到不同的队列,否则I / O请求将被串行处理。
那么在ioctl()
中我们可以指定提交队列ID吗?
OR
还有其他与ioctl()
类似的东西,我们可以指定提交队列ID吗?
由于我是nvme或ioctl的新手,如果我错了,请纠正我。
答案 0 :(得分:0)
您可以尝试包含用户空间NVMe驱动程序的SPDK(https://github.com/spdk/spdk)。它是用C编写的。可以在spdk / include / spdk / nvme.h中找到其NVMe驱动程序API。例如,spdk_nvme_ctrlr_cmd_io_raw()用于将任何类型的IO命令以及任何创建的qpair发送到设备。
您还可以尝试SPDK的python扩展Pynvme(https://github.com/cranechu/pynvme)。它的IOWorker只是在分开的进程和qpair中发送请求。