我正在研究nvme-cli的测试工具(用c编写,可以在linux上运行)。
对于SSD验证目的,我实际上是在寻找一个自定义命令(例如I / O命令,写入然后再读取它,最后比较两个数据是否相同)
在用户空间中,我需要使用write命令(nvme_cmd_write)调用最少2 ioclt()
,使用read命令(nvme_cmd_read)调用另一个ioclt()
并比较两个缓冲区内容。
问题实际上是我希望并行发送此命令的时候。在块级别(使用ioclt()
),我们无法将此命令放在不同的I / O提交队列中。
我们也可以从from collections import defaultdict
def f(x, t):
n = 0
result = defaultdict(int)
for c in x:
if c == t:
n += 1
else:
result[n] += 1
n = 0
result[n] += 1
del result[0]
return result
发送一个自定义命令(nvme_cmd_write_compare),并在驱动程序级别有一个新模块来处理这个新命令。
由于我是这个nvme / ioctl()的新手,如果有任何错误请指正。
我想知道我们是否可以实现这一点。