Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751982AbcLFKBs (ORCPT ); Tue, 6 Dec 2016 05:01:48 -0500 Received: from mail-wj0-f180.google.com ([209.85.210.180]:34619 "EHLO mail-wj0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751515AbcLFKBo (ORCPT ); Tue, 6 Dec 2016 05:01:44 -0500 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: [PATCHSET/RFC v2] Make legacy IO schedulers work with blk-mq From: Paolo Valente In-Reply-To: <1480962426-15767-1-git-send-email-axboe@fb.com> Date: Tue, 6 Dec 2016 11:01:31 +0100 Cc: Jens Axboe , linux-block@vger.kernel.org, Linux-Kernal , Mark Brown , Ulf Hansson , Linus Walleij Message-Id: References: <1480962426-15767-1-git-send-email-axboe@fb.com> To: Jens Axboe X-Mailer: Apple Mail (2.3124) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id uB6A1tgi007398 Content-Length: 2893 Lines: 86 > Il giorno 05 dic 2016, alle ore 19:26, Jens Axboe ha scritto: > > Version 2 of the hack/patchset, that enables blk-mq to use the legacy > IO schedulers with single queue devices. Original posting is here: > > https://marc.info/?l=linux-block&m=148073493203664&w=2 > > You can also found this version in the following git branch: > > git://git.kernel.dk/linux-block blk-mq-legacy-sched.2 > > and new developments/fixes will happen in the 'blk-mq-legacy-sched' > branch. > Hi Jens, while running some tests, the system hung after a while. If I'm not mistaken, the above branches contain a (modified) 4.9-rc1. Maybe instability follows from that? I have tried a rebase, but resulting conflicts are non-trivial (for me) to solve. Meanwhile, if you deem it useful, I can provide you with the oops message, as I catch it. As a secondary issue, iostat always reports 0 MB/s for both reads and writes, while tps are non null. Thanks, Paolo > Changes since v1: > > - Remove the default 'deadline' hard wiring, and provide Kconfig > entries to set the blk-mq scheduler. This now works like for legacy > devices. > > - Rename blk_use_mq_path() to blk_use_sched_path() to make it more > clear. Suggested by Johannes Thumshirn. > > - Fixup a spot where we did not use the accessor function to determine > what path to use. > > - Flush mq software queues, even if IO scheduler managed. This should > make paths work that are MQ aware, and using only MQ interfaces. > > - Cleanup free path of MQ request. > > - Account when IO was queued to a hardware context, similarly to the > regular MQ path. > > - Add BLK_MQ_F_NO_SCHED flag, so that drivers can explicitly ask for > no scheduling on a queue. Add this for NVMe admin queues. > > - Kill BLK_MQ_F_SCHED, since we now have Kconfig entries for setting > the desired IO scheduler. > > - Fix issues with live scheduler switching through sysfs. Should now > be solid, even with lots of IO running on the device. > > - Drop null_blk and SCSI changes, not needed anymore. > > > block/Kconfig.iosched | 29 ++++ > block/blk-core.c | 77 ++++++----- > block/blk-exec.c | 12 + > block/blk-flush.c | 40 +++-- > block/blk-merge.c | 5 > block/blk-mq.c | 332 +++++++++++++++++++++++++++++++++++++++++++++--- > block/blk-mq.h | 1 > block/blk-sysfs.c | 2 > block/blk.h | 16 ++ > block/cfq-iosched.c | 22 ++- > block/elevator.c | 125 ++++++++++++------ > drivers/nvme/host/pci.c | 1 > include/linux/blk-mq.h | 1 > include/linux/blkdev.h | 2 > 14 files changed, 555 insertions(+), 110 deletions(-) > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-block" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html