summaryrefslogtreecommitdiffstats
path: root/block/blk-sysfs.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-10-29 12:23:51 -0400
committerJens Axboe <axboe@kernel.dk>2018-11-07 15:42:32 -0500
commita1ce35fa49852db60fc6e268038530be533c5b15 (patch)
tree7a0bb9576a3f0e31e22f849463eee6cdda26bad5 /block/blk-sysfs.c
parentf382fb0bcef4c37dc049e9f6963e3baf204d815c (diff)
block: remove dead elevator code
This removes a bunch of core and elevator related code. On the core front, we remove anything related to queue running, draining, initialization, plugging, and congestions. We also kill anything related to request allocation, merging, retrieval, and completion. Remove any checking for single queue IO schedulers, as they no longer exist. This means we can also delete a bunch of code related to request issue, adding, completion, etc - and all the SQ related ops and helpers. Also kill the load_default_modules(), as all that did was provide for a way to load the default single queue elevator. Tested-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-sysfs.c')
-rw-r--r--block/blk-sysfs.c36
1 files changed, 9 insertions, 27 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index 1b82ccfde3fe..d4b1b84ba8ca 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -68,7 +68,7 @@ queue_requests_store(struct request_queue *q, const char *page, size_t count)
68 unsigned long nr; 68 unsigned long nr;
69 int ret, err; 69 int ret, err;
70 70
71 if (!q->request_fn && !q->mq_ops) 71 if (!q->mq_ops)
72 return -EINVAL; 72 return -EINVAL;
73 73
74 ret = queue_var_store(&nr, page, count); 74 ret = queue_var_store(&nr, page, count);
@@ -78,11 +78,7 @@ queue_requests_store(struct request_queue *q, const char *page, size_t count)
78 if (nr < BLKDEV_MIN_RQ) 78 if (nr < BLKDEV_MIN_RQ)
79 nr = BLKDEV_MIN_RQ; 79 nr = BLKDEV_MIN_RQ;
80 80
81 if (q->request_fn) 81 err = blk_mq_update_nr_requests(q, nr);
82 err = blk_update_nr_requests(q, nr);
83 else
84 err = blk_mq_update_nr_requests(q, nr);
85
86 if (err) 82 if (err)
87 return err; 83 return err;
88 84
@@ -463,20 +459,14 @@ static ssize_t queue_wb_lat_store(struct request_queue *q, const char *page,
463 * ends up either enabling or disabling wbt completely. We can't 459 * ends up either enabling or disabling wbt completely. We can't
464 * have IO inflight if that happens. 460 * have IO inflight if that happens.
465 */ 461 */
466 if (q->mq_ops) { 462 blk_mq_freeze_queue(q);
467 blk_mq_freeze_queue(q); 463 blk_mq_quiesce_queue(q);
468 blk_mq_quiesce_queue(q);
469 } else
470 blk_queue_bypass_start(q);
471 464
472 wbt_set_min_lat(q, val); 465 wbt_set_min_lat(q, val);
473 wbt_update_limits(q); 466 wbt_update_limits(q);
474 467
475 if (q->mq_ops) { 468 blk_mq_unquiesce_queue(q);
476 blk_mq_unquiesce_queue(q); 469 blk_mq_unfreeze_queue(q);
477 blk_mq_unfreeze_queue(q);
478 } else
479 blk_queue_bypass_end(q);
480 470
481 return count; 471 return count;
482} 472}
@@ -847,17 +837,10 @@ static void __blk_release_queue(struct work_struct *work)
847 837
848 blk_free_queue_stats(q->stats); 838 blk_free_queue_stats(q->stats);
849 839
850 blk_exit_rl(q, &q->root_rl);
851
852 blk_queue_free_zone_bitmaps(q); 840 blk_queue_free_zone_bitmaps(q);
853 841
854 if (!q->mq_ops) { 842 if (q->mq_ops)
855 if (q->exit_rq_fn)
856 q->exit_rq_fn(q, q->fq->flush_rq);
857 blk_free_flush_queue(q->fq);
858 } else {
859 blk_mq_release(q); 843 blk_mq_release(q);
860 }
861 844
862 blk_trace_shutdown(q); 845 blk_trace_shutdown(q);
863 846
@@ -920,7 +903,6 @@ int blk_register_queue(struct gendisk *disk)
920 if (!blk_queue_init_done(q)) { 903 if (!blk_queue_init_done(q)) {
921 queue_flag_set_unlocked(QUEUE_FLAG_INIT_DONE, q); 904 queue_flag_set_unlocked(QUEUE_FLAG_INIT_DONE, q);
922 percpu_ref_switch_to_percpu(&q->q_usage_counter); 905 percpu_ref_switch_to_percpu(&q->q_usage_counter);
923 blk_queue_bypass_end(q);
924 } 906 }
925 907
926 ret = blk_trace_init_sysfs(dev); 908 ret = blk_trace_init_sysfs(dev);
@@ -947,7 +929,7 @@ int blk_register_queue(struct gendisk *disk)
947 929
948 blk_throtl_register_queue(q); 930 blk_throtl_register_queue(q);
949 931
950 if (q->request_fn || (q->mq_ops && q->elevator)) { 932 if ((q->mq_ops && q->elevator)) {
951 ret = elv_register_queue(q); 933 ret = elv_register_queue(q);
952 if (ret) { 934 if (ret) {
953 mutex_unlock(&q->sysfs_lock); 935 mutex_unlock(&q->sysfs_lock);
@@ -1005,7 +987,7 @@ void blk_unregister_queue(struct gendisk *disk)
1005 blk_trace_remove_sysfs(disk_to_dev(disk)); 987 blk_trace_remove_sysfs(disk_to_dev(disk));
1006 988
1007 mutex_lock(&q->sysfs_lock); 989 mutex_lock(&q->sysfs_lock);
1008 if (q->request_fn || (q->mq_ops && q->elevator)) 990 if (q->mq_ops && q->elevator)
1009 elv_unregister_queue(q); 991 elv_unregister_queue(q);
1010 mutex_unlock(&q->sysfs_lock); 992 mutex_unlock(&q->sysfs_lock);
1011 993