polled IO and 5.x kernels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi fio community, 
On 4.x kernels we used to be able to do:
# echo 1 > /sys/block/nvme0n1/queue/io_poll

And then run a polled_io job in fio with pvsync2 as our ioengine, with the hipri flag set.

On 5.x kernels we see the following error trying to write the device settings>>>
-bash: echo: write error: Invalid argument

This is verifiable on 5.3, 5.4 kernels with fio 3.16 builds.

What is the background on what has changed because Jens wrote this note back in 2015, which did work once upon a time.
But now things have changed, but none of us here in the Intel SSD group and OSS Driver team really know why.

https://lwn.net/Articles/663543/

More documentation can be found here: https://stackoverflow.com/questions/55223883/echo-write-error-invalid-argument-while-setting-io-poll-for-nvme-ssd/

Here is a good sample A / B test:
[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
Works!

[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=pvsync2
hipri
rw=randread
Does not work... you do not see the CPU spin up to 100% (kernel/sys usage) on hipri with pvsync2 on a 5.x kernel.  

Why not?

And what changed here?

Is it possible to get a new LWN article?
Thank you!
Frank Ober





[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux