← Back to team overview

kernel-packages team mailing list archive

[Bug 1397061] Re: CONFIG_SCSI_MQ_DEFAULT default changed preventing use of IO schedulers

 

Thanks for your rapid attention on this one.

Just for completeness, I want to expand on this statement from the description: "my system does seem to benefit from blk-mq"
That is, unless the IO load is high. With very high disk IO load, things fall apart. For example I had a single disk seek time of 73 seconds, and a simple "ls -l" command that never did finish in over 1/2 an hour.

With blk-mq disabled, while the system still gets sluggish under extreme
disk IO load, no single task experiences such horrendous neglect.

I even several occurrences of this:

Nov 28 08:12:28 s15 kernel: [42812.544892] INFO: task master:2225 blocked for more than 120 seconds.
Nov 28 08:12:28 s15 kernel: [42812.544934]       Not tainted 3.18.0-rc6-250 #173
Nov 28 08:12:28 s15 kernel: [42812.544961] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

With blk-mq disabled, and under the same extreme disk IO load, the worst
disk seek time is about 1 second.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1397061

Title:
  CONFIG_SCSI_MQ_DEFAULT default changed preventing use of IO schedulers

Status in linux package in Ubuntu:
  Fix Committed

Bug description:
  In kernel 3.18RC1 this kernel config parameter is: # CONFIG_SCSI_MQ_DEFAULT is not set
  In kernel 3.18RC2 and beyond, the kernel config parameter is: CONFIG_SCSI_MQ_DEFAULT=y

  This results in loss of the ability to set the IO scheduler via
  /sys/block/sda/queue/scheduler.

  Now we get:

  doug@s15:~$ cat /sys/block/sda/queue/scheduler
  none

  Where we are used to getting:

  doug@s15:~/temp2$ cat /sys/block/sda/queue/scheduler
  noop [deadline] cfq

  From the add a CONFIG_SCSI_MQ_DEFAULT option commit message:

  > 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/sda/queue/scheduler
  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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1397061/+subscriptions