stan <stanl-fedorauser(a)vfemail.net> writes:
On Thu, 13 Dec 2018 17:24:21 +0100
Tomasz Torcz <tomek(a)pipebreaker.pl> wrote:
> On Wed, Dec 12, 2018 at 04:30:20PM -0700, stan wrote:
> > Enabled deadline and cfq again, but still no bfq available.
> > $ cat /sys/block/sda/queue/scheduler
> > noop deadline [cfq]
>
> Those are single-queue scheduler. Multiqueue uses different
> schedulers: bfq, kyber, mq-deadline. MQ schedulers won't appear on
> single-queue devices even if you modprobe such schedulers.
> You probably need “scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y” kernel
> commandline options, although I think those are default in recent
> kernels.
Thanks. I got the impression from the documentation I read that BFQ
operated for both mq and single queue. In fact, IIRC it actually
degraded mq performance slightly, but enhanced single queue
performance. I guess I was wrong. I'll try the above to see if it
enables me to use bfq on single queue devices.
Yes, it is confusing. Basically, the block layer (and scsi) support a
legacy path and multi-queue (blk-mq, scsi-mq). However, even if you are
using blk-mq and scsi-mq, there are two types of devices: those that
support a single hardware queue, and those that support multiple
hardware queues.
So, mq schedulers (such as kyber, mq-deadline and bfq) require blk-mq,
but they can be used on hardware that supports only a single queue.
This is the distinction that was being made in the bfq documentation.
Clear as mud?
Cheers,
Jeff