Message ID | 20170901113631.12323-3-damien.lemoal@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, 2017-09-01 at 20:36 +0900, Damien Le Moal wrote: > --- a/include/linux/blk-mq.h > +++ b/include/linux/blk-mq.h > @@ -284,6 +284,16 @@ void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues); > void blk_mq_quiesce_queue_nowait(struct request_queue *q); > > /* > + * Scheduler helper functions. > + */ > +void blk_mq_sched_free_hctx_data(struct request_queue *q, > + void (*exit)(struct blk_mq_hw_ctx *)); > +bool blk_mq_sched_try_merge(struct request_queue *q, struct bio *bio, > + struct request **merged_request); > +bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq); > +void blk_mq_sched_request_inserted(struct request *rq); > + > +/* > * Driver command data is immediately after the request. So subtract request > * size to get back to the original request, add request size to get the PDU. > */ Hello Damien, A similar comment as for patch 1/8 for this patch: should these declarations perhaps be moved to a new header file, e.g. include/linux/blk-mq-sched.h because these functions are only used by I/O schedulers and not in the implementation of block drivers? That will help to avoid that block driver authors start wondering whether or not they have to call use these functions while they are reading include/linux/blk-mq.h. Thanks, Bart.
diff --git a/block/blk-mq-sched.h b/block/blk-mq-sched.h index 9267d0b7c197..3b725f8fbebe 100644 --- a/block/blk-mq-sched.h +++ b/block/blk-mq-sched.h @@ -4,16 +4,9 @@ #include "blk-mq.h" #include "blk-mq-tag.h" -void blk_mq_sched_free_hctx_data(struct request_queue *q, - void (*exit)(struct blk_mq_hw_ctx *)); - void blk_mq_sched_assign_ioc(struct request *rq, struct bio *bio); -void blk_mq_sched_request_inserted(struct request *rq); -bool blk_mq_sched_try_merge(struct request_queue *q, struct bio *bio, - struct request **merged_request); bool __blk_mq_sched_bio_merge(struct request_queue *q, struct bio *bio); -bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq); void blk_mq_sched_restart(struct blk_mq_hw_ctx *hctx); void blk_mq_sched_insert_request(struct request *rq, bool at_head, diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index a369174a9679..128742552549 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -284,6 +284,16 @@ void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues); void blk_mq_quiesce_queue_nowait(struct request_queue *q); /* + * Scheduler helper functions. + */ +void blk_mq_sched_free_hctx_data(struct request_queue *q, + void (*exit)(struct blk_mq_hw_ctx *)); +bool blk_mq_sched_try_merge(struct request_queue *q, struct bio *bio, + struct request **merged_request); +bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq); +void blk_mq_sched_request_inserted(struct request *rq); + +/* * Driver command data is immediately after the request. So subtract request * size to get back to the original request, add request size to get the PDU. */
The functions blk_mq_sched_free_hctx_data(), blk_mq_sched_try_merge(), blk_mq_sched_try_insert_merge() and blk_mq_sched_request_inserted() are all exported symbols but declared only internally in block/blk-mq-sched.h. Move their declaration to include/linux/blk-mq.h to make them available to block external scheduler modules. Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> --- block/blk-mq-sched.h | 7 ------- include/linux/blk-mq.h | 10 ++++++++++ 2 files changed, 10 insertions(+), 7 deletions(-)