Files
kernel_arpi/include/linux
Damien Le Moal 68c43f133a block: Introduce elevator features
Introduce the definition of elevator features through the
elevator_features flags in the elevator_type structure. Each flag can
represent a feature supported by an elevator. The first feature defined
by this patch is support for zoned block device sequential write
constraint with the flag ELEVATOR_F_ZBD_SEQ_WRITE, which is implemented
by the mq-deadline elevator using zone write locking.

Other possible features are IO priorities, write hints, latency targets
or single-LUN dual-actuator disks (for which the elevator could maintain
one LBA ordered list per actuator).

The required_elevator_features field is also added to the request_queue
structure to allow a device driver to specify elevator feature flags
that an elevator must support for the correct operation of the device
(e.g. device drivers for zoned block devices can have the
ELEVATOR_F_ZBD_SEQ_WRITE flag as a required feature).
The helper function blk_queue_required_elevator_features() is
defined for setting this new field.

With these two new fields in place, the elevator functions
elevator_match() and elevator_find() are modified to allow a user to set
only an elevator with a set of features that satisfies the device
required features. Elevators not matching the device requirements are
not shown in the device sysfs queue/scheduler file to prevent their use.

The "none" elevator can always be selected as before.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-09-05 19:52:33 -06:00
..
2019-08-28 21:17:12 -06:00
2019-08-27 10:40:19 -06:00
2019-09-05 19:52:33 -06:00
2019-07-18 09:49:30 +02:00
2019-09-05 19:52:33 -06:00
2019-07-05 21:34:50 +02:00
2019-07-05 15:19:10 -07:00
2019-07-08 19:25:19 -07:00
2019-07-26 17:01:29 -06:00
2019-07-16 19:23:25 -07:00
2019-07-09 14:32:14 -06:00
2019-07-08 10:51:25 +02:00
2019-07-12 11:05:43 -07:00
2019-07-07 11:50:03 +02:00
2019-07-18 10:20:13 -06:00