From: Damien Le Moal <damien.lemoal@wdc.com>
To: linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
linux-scsi@vger.kernel.org,
"Martin K . Petersen" <martin.petersen@oracle.com>,
dm-devel@redhat.com, Mike Snitzer <snitzer@redhat.com>
Cc: Ming Lei <ming.lei@redhat.com>
Subject: [PATCH v5 0/7] Elevator cleanups and improvements
Date: Thu, 5 Sep 2019 18:51:28 +0900 [thread overview]
Message-ID: <20190905095135.26026-1-damien.lemoal@wdc.com> (raw)
This patch series implements some cleanup of the elevator initialization
code and introduces elevator features identification and device matching
to enhance checks for elevator/device compatibility and fitness.
The first 2 patches of the series are simple cleanups which simplify
elevator initialization for newly allocated device queues.
Patch 3 introduce elevator features, allowing a clean and extensible
definition of devices and features that an elevator supports and match
these against features required by a block device. With this, the sysfs
elevator list for a device always shows only elevators matching the
features that a particular device requires, with the exception of the
none elevator which has no features but is always available for use
with any device.
The first feature defined is for zoned block device sequential write
constraint support through zone write locking which prevents the use of
any elevator that does not support this feature with zoned devices.
The last 4 patches of this series rework the default elevator selection
and initialization to allow for the elevator/device features matching
to work, doing so addressing cases not currently well supported, namely,
multi-queue zoned block devices.
Changes from v4:
* Fix patch 5 again to correctly handle request based DM devices and
avoid that default queue elevator of these devices end up always
being "none".
Changes from v3:
* Fixed patch 5 to correctly handle DM devices which do not register a
request queue and so do not need elevator initialization.
Changes from v2:
* Fixed patch 4
* Call elevator_init_mq() earlier in device_add_disk() as suggested by
Christoph (patch 5)
* Fixed title of patch 7
Changes from v1:
* Addressed Johannes comments
* Rebased on newest for-next branch to include Ming's sysfs lock changes
Damien Le Moal (7):
block: Cleanup elevator_init_mq() use
block: Change elevator_init_mq() to always succeed
block: Introduce elevator features
block: Improve default elevator selection
block: Delay default elevator initialization
block: Set ELEVATOR_F_ZBD_SEQ_WRITE for nullblk zoned disks
sd: Set ELEVATOR_F_ZBD_SEQ_WRITE for ZBC disks
block/blk-mq.c | 20 +++--
block/blk-settings.c | 16 ++++
block/blk.h | 2 +-
block/elevator.c | 137 ++++++++++++++++++++++++++--------
block/genhd.c | 9 +++
block/mq-deadline.c | 1 +
drivers/block/null_blk_main.c | 2 +
drivers/md/dm-rq.c | 2 +-
drivers/scsi/sd_zbc.c | 2 +
include/linux/blk-mq.h | 3 +-
include/linux/blkdev.h | 4 +
include/linux/elevator.h | 8 ++
12 files changed, 161 insertions(+), 45 deletions(-)
--
2.21.0
next reply other threads:[~2019-09-05 9:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-05 9:51 Damien Le Moal [this message]
2019-09-05 9:51 ` [PATCH v5 1/7] block: Cleanup elevator_init_mq() use Damien Le Moal
2019-09-05 9:51 ` [PATCH v5 2/7] block: Change elevator_init_mq() to always succeed Damien Le Moal
2019-09-05 9:51 ` [PATCH v5 3/7] block: Introduce elevator features Damien Le Moal
2019-09-05 9:51 ` [PATCH v5 4/7] block: Improve default elevator selection Damien Le Moal
2019-09-05 9:51 ` [PATCH v5 5/7] block: Delay default elevator initialization Damien Le Moal
2019-10-01 20:46 ` Eric Farman
2019-10-16 18:51 ` Eric Farman
2019-10-17 2:39 ` Damien Le Moal
2019-10-17 13:37 ` Eric Farman
2019-09-05 9:51 ` [PATCH v5 6/7] block: Set ELEVATOR_F_ZBD_SEQ_WRITE for nullblk zoned disks Damien Le Moal
2019-09-05 9:51 ` [PATCH v5 7/7] sd: Set ELEVATOR_F_ZBD_SEQ_WRITE for ZBC disks Damien Le Moal
2019-09-06 0:31 ` [PATCH v5 0/7] Elevator cleanups and improvements Ming Lei
2019-09-06 1:53 ` 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=20190905095135.26026-1-damien.lemoal@wdc.com \
--to=damien.lemoal@wdc.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=ming.lei@redhat.com \
--cc=snitzer@redhat.com \
/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).