CONFIG_SCSI_MQ_DEFAULT default changed preventing use of IO schedulers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Andy Whitcroft |
Bug Description
In kernel 3.18RC1 this kernel config parameter is: # CONFIG_
In kernel 3.18RC2 and beyond, the kernel config parameter is: CONFIG_
This results in loss of the ability to set the IO scheduler via /sys/block/
Now we get:
doug@s15:~$ cat /sys/block/
none
Where we are used to getting:
doug@s15:~/temp2$ cat /sys/block/
noop [deadline] cfq
From the add a CONFIG_
> Add a Kconfig option to enable the blk-mq path for SCSI by default
> to ease testing and deployment in setups that know they benefit
> from blk-mq.
How do we know that all systems benifit from blk-mq?
It seems complicated to have to re-compile the kernel to get the other IO scheduler options back.
Why isn't this option done similar to the others? I.E.
doug@s15:~/temp2$ cat /sys/block/
noop [deadline] cfq blk-mq
(and I realize that is actually an upstream question.)
By the way, my system does seem to benefit from blk-mq, I just didn't understand why I couldn't observe and change the IO scheduler anymore, and so isolated the change.
Experimental data:
Random seeks in a large file:
blk-mq: 104 seeks per second average
deadline: 74 seeks per second average
cfq: 74 seeks per second average
noop: 74 seeks per second average
Kernel compile:
deadline: 23 minutes 37.4 seconds
blk-mq: 23 minutes 35.4 seconds
Note 1: Please do not ask for all of my apport stuff, it is not needed for this bug report.
Note 2: on IRC "apw" asked me to enter this bug report
CVE References
summary: |
- Kernel Config setting: CONFIG_SCSI_MQ_DEFAULT + CONFIG_SCSI_MQ_DEFAULT default changed preventing use of IO schedulers |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
status: | Triaged → Fix Committed |
The underlying issue is that the blk-mq support currently does _not_ have support for IO schedulers, so when this method is selected we can no longer use the IO schedulers at all. This is not ready to be a default selection without IO scheduler support so we will flip the default back to off in the next upload. It can of course be reneabled via the kernel command line (at least) for those who want to experiment with it.