问题标签 [nvme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
131 浏览

infiniband - NVMoF:如何从响应胶囊中区分命令胶囊

假设我在 2 个节点 A 和 B 之间有 RoCEv2 流量。

  1. A 使用 RDMA_SEND 向 B 发送命令胶囊。
  2. 然后 A 从 B 接收一个胶囊(B 也使用 RDMA_SEND)。此时,A 怎么知道这是对其在步骤#1 中发送的命令的响应,还是来自 B 的新命令包?您知道,命令和响应之间的解码将完全不同。

谢谢。

0 投票
1 回答
391 浏览

c - OPAL-SED 库 ioctl 用法?

我正在尝试使用 linux-kernel 4.11 中添加的 sed-opal 库

为此,我编写了一个这样的基本程序:

当我想使用上面代码中提到的 sed-opal 库 ioctl 命令时,问题就来了。

这是发送安全 SEND/RECV 命令的正确方法吗?

如果是,错误的可能原因是什么?

任何帮助表示赞赏。:)

谢谢。

==================================================== ====

0 投票
0 回答
188 浏览

c - 如何让多个线程在 C 中的同一个 for 循环上工作,而循环又调用一个函数

此代码是 nvme-cli 的一部分(它建立在 linux api 上)

我正在尝试构建一个选项来重复 nvme-command 说线程数的n时间。p

例如,如果我说用 5 个线程重复 50 次,那么 5 个线程中的每一个都应该单独重复 10 次。

因此,为此,我需要使用多个线程运行以下 for 循环。由于我是多线程的新手,所以我想到了使用 P 线程。我可以知道这样做的语法吗?

0 投票
0 回答
347 浏览

c - 我可以使用 pthreads 为具有不同线程的 nvme 调用 ioctl()(系统调用)吗

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

我有兴趣使用 't' 线程数重复 nvme 命令 'r' 次数。

下面的代码执行命令的重复以及线程,但这里的问题是并行执行时间与串行执行相比非常高。

根据我的观察,原因是ioctl()err = nvme_identify(fd, 0, 1, data);nvme_identify()轮流调用中调用系统调用ioctl()

那么我可以知道是否ioctl()阻止了 nvme 吗?

我也可以有任何方法(解决方案)通过线程减少执行时间吗?

线程函数如下:

0 投票
0 回答
137 浏览

linux - 有没有办法让 ioctl() 带有新的(自定义)命令

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

出于 SSD 验证的目的,我实际上是在寻找自定义命令(例如 I/O 命令,写入然后读取相同,最后比较两个数据是否相同)

在用户空间中,我需要使用写入命令(nvme_cmd_write)调用至少 2ioclt()个,使用读取命令(nvme_cmd_read)调用另一个并比较两个缓冲区内容。

问题实际上是当我想并行发送这个命令时。在块级别(使用ioclt()),我们无法将此命令放在不同的 I/O 提交队列中。

所以我们可以有一个自定义命令(nvme_cmd_write_compare)从ioclt()驱动程序级别发送并有一个新模块来处理这个新命令。

由于我是这个 nvme/ioctl() 的新手,如果有任何错误,请纠正我。

我想知道我们是否可以实现这一点。

0 投票
1 回答
1347 浏览

linux - ioctl() 如何调用驱动代码

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

出于 SSD 验证的目的,我实际上是在寻找自定义命令(例如 I/O 命令,写入然后读取相同,最后比较两个数据是否相同)

对于读取,ioctl()函数的使用如下面的代码所示。

为了理解读取,我可以到哪里执行控制。

我也想要另一个看起来像的命令

err = ioctl(fd,NVME_IOCTL_WRITE_AND_COMPARE_IO, &io);

这样我就可以在内部进行写入,然后读取相同的位置,最后比较两个数据以确保磁盘仅包含我想要写入的数据。

由于我是这个 nvme/ioctl() 的新手,如果有任何错误,请纠正我。

0 投票
1 回答
777 浏览

linux - linux中的ioctl()是否有任何替代方法可以与nvme驱动器交互

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

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

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

或者

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

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

0 投票
1 回答
666 浏览

linux - linux中的ioctl()有什么方法可以为nvme IO请求指定提交队列ID

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

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

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

这是请求 nvme IO 的方式ioctl()

nvme_ioctl()在驱动程序中调用!

nvme_ioctl()实习生在这里调用nvme_submit_io()函数!

nvme_submit_io()有一个参数struct nvme_ns *ns,其中结构在这里有一个字段名称queue视图

我想知道我们是否可以ioctl()使用附加的新参数来调用,该参数queue_id将分配给函数中的queue字段。struct nvme_ns *nsnvme_submit_io()

我能知道我们是否可以这样做吗?

如果是,请给我一些简短的步骤。如果否,请建议我任何可能的解决方案。

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

0 投票
1 回答
604 浏览

mysql - NVME SSD 会加速繁重的查询,例如大偏移量/表扫描等的选择吗?

如果数据库数据将在 NVME SSD 上,假设它比普通 SSD 快 4 倍,那么查询SELECT something OFFSET 100000之类的查询通常也会快得多(当然,当它们没有缓存/缓冲等时)?

0 投票
2 回答
1438 浏览

python - 使用 Python 进行 NVMe 吞吐量测试

目前我需要做一些吞吐量测试。我的硬件设置是三星 950 Pro 连接到 NVMe 控制器,该控制器通过 PCIe 端口连接到主板。我有一个 Linux nvme 设备,对应于我安装在文件系统某个位置的设备。

我希望使用 Python 来做到这一点。我打算在安装 SSD 的文件系统上打开一个文件,记录时间,将一些 n 长度的字节流写入文件,记录时间,然后使用 os 模块文件操作实用程序关闭文件。这是衡量写入吞吐量的函数。

我的另一种测试方法是使用 Linux fio 实用程序。 https://linux.die.net/man/1/fio

在 /fsmnt/fs1 安装 SSD 后,我使用此作业文件来测试吞吐量

我注意到Python函数返回的写入速度明显高于fio。因为 Python 是如此高级,所以你放弃了很多控制权。我想知道 Python 是否正在做一些事情来欺骗它的速度。有谁知道为什么 Python 生成的写入速度会比 fio 生成的写入速度高得多?