如何使用nvme-cli测试NVME管理员命令异步事件请求(操作码0x0C)?

时间:2019-06-24 21:05:23

标签: nvme

我已经在Ubuntu上安装了 nvme-cli ,并且想测试驱动器是否真正支持异步事件请求。

我能够运行nvme admin-passthru /dev/nvmen1 --opcode=0x0C且没有任何错误,但是一段时间后出现错误(或警告)passthru: Interrupted system call会超时。

在这种情况下是否意味着异步事件请求已成功注册?我的理解是异步事件请求永远都不应超时...任何想法如何通过命令行验证设备是否完全支持此功能?

1 个答案:

答案 0 :(得分:0)

根据下面的NVMe Spec 1.3,是异步命令描述:

异步事件用于在发生这些事件时向主机软件通知状态,错误和运行状况信息。为了使控制器能够报告异步事件,主机软件需要向控制器提交一个或多个异步事件请求命令。控制器通过完成“异步事件请求”命令为主机指定事件。主机软件应该期望控制器可能不会立即执行命令;当有事件要报告时,该命令应完成。 异步事件请求命令由主机软件提交,以启用来自控制器的异步事件的报告。此命令没有超时。当有异步事件要报告给主机时,控制器将为此命令发布完成队列条目。如果在重置控制器时未完成“异步事件请求”命令,则这些命令将中止。

因此,我认为您需要同时打开多个命令行,并提供超过允许的最大异步命令来验证响应。