Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752235AbdFMFam (ORCPT ); Tue, 13 Jun 2017 01:30:42 -0400 Received: from shells.gnugeneration.com ([66.240.222.126]:48650 "EHLO shells.gnugeneration.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752081AbdFMFak (ORCPT ); Tue, 13 Jun 2017 01:30:40 -0400 X-Greylist: delayed 340 seconds by postgrey-1.27 at vger.kernel.org; Tue, 13 Jun 2017 01:30:40 EDT Date: Mon, 12 Jun 2017 22:28:34 -0700 From: vcaputo@pengaru.com To: linux-kernel Subject: [QUESTION] v4.12-rc5 BFQ enabled but unavailable? Message-ID: <20170613052833.GB6311@shells.gnugeneration.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2006 Lines: 57 Hello LKML, Attempted to play with BFQ but after building with CONFIG_IOSCHED_BFQ=y I'm still not seeing it: # cat /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler noop deadline [cfq] # Even though: # dmesg | grep sched [ 0.514536] io scheduler noop registered [ 0.514537] io scheduler deadline registered [ 0.514577] io scheduler cfq registered (default) [ 0.514613] io scheduler bfq registered # Quick glance at block/elevator.c elv_iosched_show() reveals: 1125 list_for_each_entry(__e, &elv_list, list) { 1126 if (elv && !strcmp(elv->elevator_name, __e->elevator_name)) { 1127 len += sprintf(name+len, "[%s] ", elv->elevator_name); 1128 continue; 1129 } 1130 if (__e->uses_mq && q->mq_ops && elv_support_iosched(q)) 1131 len += sprintf(name+len, "%s ", __e->elevator_name); 1132 else if (!__e->uses_mq && !q->mq_ops) 1133 len += sprintf(name+len, "%s ", __e->elevator_name); 1134 } iosched_bfq_mq.uses_mq is true, so it appears bfq can be silently omitted from elv_iosched_show() output if !q->mq_ops || !elv_support_iosched(q). What magic incantation is recommended to get this stuff working and how is a user like myself expected to discover it without digging through the code? I glanced through Documentation/block/bfq-iosched.txt, but mq isn't mentioned: $ grep -ic mq Documentation/block/bfq-iosched.txt 0 $ There are use_blk_mq parameters for dm_mod and scsi_mod, defaulting to N: # cd /sys/module && find -iname '*mq*' -print -exec cat {} \; ./dm_mod/parameters/use_blk_mq N ./dm_mod/parameters/dm_mq_nr_hw_queues 1 ./dm_mod/parameters/dm_mq_queue_depth 2048 ./scsi_mod/parameters/use_blk_mq N # Is one expected to force use_blk_mq manually to make BFQ available? Any advice appreciated, thanks! Regards, Vito Caputo