Linux echo:写入错误:为NVMe SSD设置io_轮询时参数无效

Linux echo:写入错误:为NVMe SSD设置io_轮询时参数无效,linux,linux-kernel,ubuntu-16.04,sysfs,nvme,Linux,Linux Kernel,Ubuntu 16.04,Sysfs,Nvme,我以root用户身份使用以下命令为NVMe SSD设备启用Linux内核轮询 #echo 1>/sys/block/nvme2n1/queue/io_poll 我得到以下错误: bash:echo:写入错误:参数无效 操作系统详细信息:Ubuntu 16.04,Linux内核5.0.0+ 有什么建议吗 命令的引用: 您引用的这个博客诞生于4.x内核时代,从那时起,io提交概念就在5.x内核时代出现了 请阅读以下有关io的文档: 您应使用以下设备测试Optane媒体驱动器: ioengine=i

我以root用户身份使用以下命令为NVMe SSD设备启用Linux内核轮询

#echo 1>/sys/block/nvme2n1/queue/io_poll

我得到以下错误: bash:echo:写入错误:参数无效

操作系统详细信息:Ubuntu 16.04,Linux内核5.0.0+

有什么建议吗

命令的引用:


您引用的这个博客诞生于4.x内核时代,从那时起,io提交概念就在5.x内核时代出现了

请阅读以下有关io的文档:

您应使用以下设备测试Optane媒体驱动器: ioengine=io_

有或没有hipri,以防您想不想使用bio_poll

以下是传递给fio时应注意的事项:

[global]
direct=1
filename=/dev/nvme1n1
log_avg_msec=500
time_based
percentile_list=1:5:10:20:30:40:50:60:70:80:90:95:99:99.5:99.9:99.95:99.99:99.999:99.9999


[rand-read-4k-qd1]
runtime=120
bs=4K
iodepth=1
numjobs=1
cpus_allowed=0
ioengine=io_uring
hipri
rw=randread
uname-a
5.4.1-1.el8.elrepo.x86_64

CentOS 8

玩得开心, Frank Ober

Nikhil发布到Linux阻止邮件列表,并获得:

确保打开nvme驱动程序中的轮询队列。没有 默认情况下。[sic]启用它们的核心参数是:

nvme.poll_queues=X
其中“X”是轮询队列的数量。我建议至少每小时一次 CPU插槽,但越多越好

从的外观来看,在进行上述更改后,
io_poll
似乎可以设置为1

对于上下文,可以浏览内核源代码(在中也有提及)。此外,a(在2019年末撰写本文时,我们目前已达到)

此外,Frank Ober(他将此问题的答案发布为@FrankO)似乎在Linux阻止邮件列表线程中询问了“为什么要进行更改”,并收到了以下回复:

原始轮询实现共享了生成 打断。这会阻止它以尽可能快的速度运行,因此 现在使用专用的轮询队列


这看起来像是一个使用问题,而不是开发问题。您可能应该阅读文档,或者如果从开发人员的角度来看这一点,请查找并阅读生成该错误的代码,并尝试找出其含义是您的请求方式错误,还是您请求的内容不受支持。该命令适用于使用内核4.15的其他计算机。用法是正确的,正如参考文献中提到的。这并不意味着它将与这个特定的硬件或其驱动程序一起工作。