1

我正在为 nvme-cli 开发一个测试工具(用 c 编写并且可以在 linux 上运行)。

出于 SSD 验证的目的,我们实际上是在寻找将 I/O 命令发送到特定的提交队列(IO 队列对)。我们需要这个是因为我们想要线程化,但是为了实现线程化,我们需要将 I/O 请求发送到不同的队列,否则 I/O 请求将被串行处理。

那么有什么方法ioctl()可以指定提交队列 ID 吗?

或者

还有其他类似于ioctl()我们可以指定提交队列 ID 的地方吗?

由于我是 nvme 或 ioctl 的新手,如果我错了,请纠正我。

4

1 回答 1

0

您可以尝试包含用户空间 NVMe 驱动程序的SPDK ( https://github.com/spdk/spdk )。它是用 C 编写的。你可以在 spdk/include/spdk/nvme.h 中找到它的 NVMe 驱动程序 API。例如, spdk_nvme_ctrlr_cmd_io_raw() 用于向设备发送任何类型的 IO 命令,以及任何已创建的 qpair。

您还可以尝试 Pynvme ( https://github.com/cranechu/pynvme ),它是 SPDK 的 python 扩展。它的 IOWorker 只是在分离的进程和 qpair 中发送请求。

于 2019-02-27T07:45:17.520 回答