# No I/O schedulers at all disks

## Perfect Gentleman

```
$ cat /sys/block/sd*/queue/scheduler

none

none

none                                                                                                                                                                               

none                                                                                                                                                                               

none
```

but

```

$ dmesg | grep -i sched

[    0.213915] io scheduler noop registered

[    0.213929] io scheduler bfq registered (default)

[    0.213930] BFQ I/O-scheduler version: v7r6

[    0.658499] BFS CPU scheduler v0.456 by Con Kolivas.

$ zcat /proc/config.gz | grep -i bfq

CONFIG_IOSCHED_BFQ=y

CONFIG_CGROUP_BFQIO=y

CONFIG_DEFAULT_BFQ=y

CONFIG_DEFAULT_IOSCHED="bfq"
```

```
# echo bfq > /sys/block/sda/queue/scheduler && cat /sys/block/sda/queue/scheduler

none
```

I would like to know WTF ?

P.S. Can be 

```
$ zcat /proc/config.gz | grep -i blk_mq

CONFIG_CMDLINE="root=/dev/sdd1 rw rootfstype=ext4 scsi_mod.use_blk_mq=Y"
```

 the reason?

----------

## Roman_Gruber

uname -a

wgetpaste your kernel config

wgetpaste emerge --info

did you checked the net for guides? are you sure this should be the expected behaviour? did you check that your kernel supports this feature? it could be removed or changed in syntax ... you may post a reference with your current kernel version showing that it works. if so than it may me a kernel configuration issue

----------

## Perfect Gentleman

```
$ uname -a

Linux De-Humanizer 3.17.1-gentoo-r1 #9 SMP PREEMPT Sat Oct 25 06:03:19 NOVT 2014 x86_64 Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz GenuineIntel GNU/Linux
```

emerge --info

zcat /proc/config.gz

 *Quote:*   

> did you checked the net for guides? are you sure this should be the expected behaviour? did you check that your kernel supports this feature? it could be removed or changed in syntax ... you may post a reference with your current kernel version showing that it works. if so than it may me a kernel configuration issue

 

Yep, i googled for those cases, but with no results.

I don't know, maybe, 'cause behind the wall there is Gentoo desktop the same kernel config, except BFS and scsi_mod.use_blk_mq=Y 

```
$ cat /sys/block/sda/queue/scheduler 

noop [bfq]
```

.

As far as I know, 3.17 supports this feature as it was introduced in it.

------------------------------------------------------------------------------------

 *Quote:*   

> Missing features:
> 
> –
> 
> I/O scheduler support in blk-mq

  from http://events.linuxfoundation.org/sites/events/files/slides/scsi.pdf.

I think that is the problem, or not?

----------

## Roman_Gruber

serious if you rely on a new feature in the newest kernel version you may be out of luck.

some features works after a few kernel versioin relyable. it may be a testing feature at all.

afaik in the past uneven kernel numbers were unstable kernel realeases. so 3.17 should be totally unstable.

maybe someone else knows a glue

----------

## Ant P.

Are you by any chance using LVM, or have any other /sys/block entries with schedulers visible?

----------

## Perfect Gentleman

 *Ant P. wrote:*   

> Are you by any chance using LVM, or have any other /sys/block entries with schedulers visible?

 

I don't use LVM.

```
$ ls /sys/block/

sda  sdb  sdc  sdd  sde
```

```
$ ls /sys/block/sdb

alignment_offset  capability  device             events        events_poll_msecs  holders   mq     range      ro    size    stat       uevent

bdi               dev         discard_alignment  events_async  ext_range          inflight  queue  removable  sdb1  slaves  subsystem
```

```
$ ls /sys/block/sdb/queue/

add_random           discard_zeroes_data  logical_block_size      max_sectors_kb    minimum_io_size  optimal_io_size      rotational   write_same_max_bytes

discard_granularity  hw_sector_size       max_hw_sectors_kb       max_segments      nomerges         physical_block_size  rq_affinity                                            

discard_max_bytes    iostats              max_integrity_segments  max_segment_size  nr_requests      read_ahead_kb        scheduler
```

----------

## Ant P.

Hm, then I'm out of ideas... reason I was asking is I've seen the same thing happen on an LVM-running server. I wonder if the cgroup feature is preventing it being set for the entire disk.

----------

## kernelOfTruth

report the bug:

https://groups.google.com/forum/#!forum/bfq-iosched

does switching back and forth between, e.g. cfq and bfq changes things ?

could be related to scsi_mod.use_blk_mq though & that it doesn't work - haven't used it yet

3.17 + BFQ works fine here

 *Quote:*   

> As far as I know, 3.17 supports this feature as it was introduced in it. 
> 
> ------------------------------------------------------------------------------------ 
> 
> Quote:
> ...

 

yes, seems like you answered your own question

that is weird - why would they add something that lacks fundamental features ?

----------

## Perfect Gentleman

 *kernelOfTruth wrote:*   

> 
> 
> that is weird - why would they add something that lacks fundamental features ?

 

maybe, because modern drives have NCQ and any other scheduler are not necessary?

----------

