From: Jens Axboe <axboe@fb.com>
To: <axboe@kernel.dk>, <linux-block@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Cc: <paolo.valente@linaro.org>, <osandov@fb.com>
Subject: [PATCHSET/RFC v2] blk-mq scheduling framework
Date: Thu, 8 Dec 2016 13:13:18 -0700 [thread overview]
Message-ID: <1481228005-9245-1-git-send-email-axboe@fb.com> (raw)
As a followup to this posting from yesterday:
https://marc.info/?l=linux-block&m=148115232806065&w=2
this is version 2. I wanted to post a new one fairly quickly, as there
ended up being a number of potential crashes in v1. This one should be
solid, I've run mq-deadline on both NVMe and regular rotating storage,
and we handle the various merging cases correctly.
You can download it from git as well:
git://git.kernel.dk/linux-block blk-mq-sched.2
Note that this is based on for-4.10/block, which is in turn based on
v4.9-rc1. I suggest pulling it into my for-next branch, which would
then merge nicely with 'master' as well.
Changes since v1:
- Add Kconfig entries to allow the user to choose what the default
scheduler should be for blk-mq, and whether that depends on the
number of hardware queues.
- Properly abstract the whole get/put of a request, so we can manage
the life time properly.
- Enable full merging on mq-deadline (front/back, bio-to-rq, rq-to-rq).
Has full feature parity with deadline now.
- Export necessary symbols for compiling mq-deadline as a module.
- Various API adjustments for the mq schedulers.
- Various cleanups and improvements.
- Fix a lot of bugs. A lot. Upgrade!
block/Kconfig.iosched | 37 ++
block/Makefile | 3
block/blk-core.c | 9
block/blk-exec.c | 3
block/blk-flush.c | 7
block/blk-merge.c | 3
block/blk-mq-sched.c | 265 +++++++++++++++++++
block/blk-mq-sched.h | 188 +++++++++++++
block/blk-mq-tag.c | 1
block/blk-mq.c | 254 ++++++++++--------
block/blk-mq.h | 35 +-
block/elevator.c | 194 ++++++++++----
block/mq-deadline.c | 647 +++++++++++++++++++++++++++++++++++++++++++++++
drivers/nvme/host/pci.c | 1
include/linux/blk-mq.h | 4
include/linux/elevator.h | 34 ++
16 files changed, 1495 insertions(+), 190 deletions(-)
next reply other threads:[~2016-12-08 20:13 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-08 20:13 Jens Axboe [this message]
2016-12-08 20:13 ` [PATCH 1/7] blk-mq: add blk_mq_start_stopped_hw_queue() Jens Axboe
2016-12-13 8:48 ` Bart Van Assche
2016-12-08 20:13 ` [PATCH 2/7] blk-mq: abstract out blk_mq_dispatch_rq_list() helper Jens Axboe
2016-12-09 6:44 ` Hannes Reinecke
2016-12-13 8:51 ` Bart Van Assche
2016-12-13 15:05 ` Jens Axboe
2016-12-13 9:18 ` Ritesh Harjani
2016-12-13 9:29 ` Bart Van Assche
2016-12-08 20:13 ` [PATCH 3/7] elevator: make the rqhash helpers exported Jens Axboe
2016-12-09 6:45 ` Hannes Reinecke
2016-12-08 20:13 ` [PATCH 4/7] blk-flush: run the queue when inserting blk-mq flush Jens Axboe
2016-12-09 6:45 ` Hannes Reinecke
2016-12-08 20:13 ` [PATCH 5/7] blk-mq-sched: add framework for MQ capable IO schedulers Jens Axboe
2016-12-13 13:56 ` Bart Van Assche
2016-12-13 15:14 ` Jens Axboe
2016-12-14 10:31 ` Bart Van Assche
2016-12-14 15:05 ` Jens Axboe
2016-12-13 14:29 ` Bart Van Assche
2016-12-13 15:20 ` Jens Axboe
2016-12-08 20:13 ` [PATCH 6/7] mq-deadline: add blk-mq adaptation of the deadline IO scheduler Jens Axboe
2016-12-13 11:04 ` Bart Van Assche
2016-12-13 15:08 ` Jens Axboe
2016-12-14 8:09 ` Bart Van Assche
2016-12-14 15:02 ` Jens Axboe
2016-12-08 20:13 ` [PATCH 7/7] blk-mq-sched: allow setting of default " Jens Axboe
2016-12-13 10:13 ` Bart Van Assche
2016-12-13 15:06 ` Jens Axboe
2016-12-13 9:26 ` [PATCHSET/RFC v2] blk-mq scheduling framework Paolo Valente
2016-12-13 15:17 ` Jens Axboe
2016-12-13 16:15 ` Paolo Valente
2016-12-13 16:28 ` Jens Axboe
2016-12-13 21:51 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1481228005-9245-1-git-send-email-axboe@fb.com \
--to=axboe@fb.com \
--cc=axboe@kernel.dk \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=osandov@fb.com \
--cc=paolo.valente@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).