【问题标题】:Is there any alternative for ioctl() in linux to interact with nvme driveslinux中的ioctl()是否有任何替代方法可以与nvme驱动器交互
【发布时间】:2018-06-02 14:54:52
【问题描述】:

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

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

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

还有其他类似于ioctl() 的东西,我们可以在其中指定提交队列 ID?

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

【问题讨论】:

    标签: linux linux-kernel linux-device-driver systems-programming nvme


    【解决方案1】:

    您可以尝试包含用户空间 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 中发送请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 2023-03-27
      • 2018-11-25
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      相关资源
      最近更新 更多