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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to