2019-07-23 11:38:13

by Marcos Paulo de Souza

[permalink] [raw]
Subject: [PATCH 0/2] Remove blk_mq_sched_started_request function

While inspecting the queue_rq calling sites, I verified that
blk_mq_start_request calls blk_mq_sched_started_request, and this function
checks if the elevator of the current request implements the started_request,
but currently none of the available IO schedulers do.

So, let's remove blk_mq_sched_started_request along with started_request, which
is member of the elevator_mq_ops struct.

Marcos Paulo de Souza (2):
block: blk-mq: Remove blk_mq_sched_started_request function
include: elevator.h: Remove started_request from elevator_mq_ops

block/blk-mq-sched.h | 9 ---------
block/blk-mq.c | 2 --
include/linux/elevator.h | 1 -
3 files changed, 12 deletions(-)

--
2.22.0


2019-07-23 12:11:40

by Marcos Paulo de Souza

[permalink] [raw]
Subject: [PATCH 2/2] include: elevator.h: Remove started_request from elevator_mq_ops

This function is not implemented by any available IO scheduler, so
remove it.

Signed-off-by: Marcos Paulo de Souza <[email protected]>
---
include/linux/elevator.h | 1 -
1 file changed, 1 deletion(-)

diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index 17cd0078377c..1dd014c9c87b 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -45,7 +45,6 @@ struct elevator_mq_ops {
struct request *(*dispatch_request)(struct blk_mq_hw_ctx *);
bool (*has_work)(struct blk_mq_hw_ctx *);
void (*completed_request)(struct request *, u64);
- void (*started_request)(struct request *);
void (*requeue_request)(struct request *);
struct request *(*former_request)(struct request_queue *, struct request *);
struct request *(*next_request)(struct request_queue *, struct request *);
--
2.22.0

2019-07-23 12:11:40

by Marcos Paulo de Souza

[permalink] [raw]
Subject: [PATCH 1/2] block: blk-mq: Remove blk_mq_sched_started_request function

This function checks if the elevator related to the request has
started_request implemented, but currently, none of the available IO
schedulers implement started_request.

Signed-off-by: Marcos Paulo de Souza <[email protected]>
---
block/blk-mq-sched.h | 9 ---------
block/blk-mq.c | 2 --
2 files changed, 11 deletions(-)

diff --git a/block/blk-mq-sched.h b/block/blk-mq-sched.h
index cf22ab00fefb..126021fc3a11 100644
--- a/block/blk-mq-sched.h
+++ b/block/blk-mq-sched.h
@@ -61,15 +61,6 @@ static inline void blk_mq_sched_completed_request(struct request *rq, u64 now)
e->type->ops.completed_request(rq, now);
}

-static inline void blk_mq_sched_started_request(struct request *rq)
-{
- struct request_queue *q = rq->q;
- struct elevator_queue *e = q->elevator;
-
- if (e && e->type->ops.started_request)
- e->type->ops.started_request(rq);
-}
-
static inline void blk_mq_sched_requeue_request(struct request *rq)
{
struct request_queue *q = rq->q;
diff --git a/block/blk-mq.c b/block/blk-mq.c
index b038ec680e84..3e8902714253 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -669,8 +669,6 @@ void blk_mq_start_request(struct request *rq)
{
struct request_queue *q = rq->q;

- blk_mq_sched_started_request(rq);
-
trace_block_rq_issue(q, rq);

if (test_bit(QUEUE_FLAG_STATS, &q->queue_flags)) {
--
2.22.0

2019-07-23 12:11:46

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH 0/2] Remove blk_mq_sched_started_request function

On 7/22/19 8:14 PM, Marcos Paulo de Souza wrote:
> While inspecting the queue_rq calling sites, I verified that
> blk_mq_start_request calls blk_mq_sched_started_request, and this function
> checks if the elevator of the current request implements the started_request,
> but currently none of the available IO schedulers do.
>
> So, let's remove blk_mq_sched_started_request along with started_request, which
> is member of the elevator_mq_ops struct.

Looks fine to me as it's unused, but please fold the two patches. Makes no
sense to split that into two separate patches.

--
Jens Axboe