Skip to content

Commit 621739b

Browse files
committed
Revert "dm: only run the queue on completion if congested or no requests pending"
This reverts commit 9a0e609. (Resolved a conflict during revert due to commit bfebd1c that came after) This revert is motivated by a couple failure reports on request-based DM multipath testbeds: 1) Netapp reported that their multipath fault injection test under heavy IO load can stall longer than 300 seconds. 2) IBM reported elevated lock contention in their testbed (likely due to increased back pressure due to IO not being dispatched as quickly): https://www.redhat.com/archives/dm-devel/2015-July/msg00057.html Signed-off-by: Mike Snitzer <[email protected]> Cc: [email protected] # 4.1+
1 parent 1c75187 commit 621739b

1 file changed

Lines changed: 2 additions & 6 deletions

File tree

drivers/md/dm.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,13 +1067,10 @@ static void rq_end_stats(struct mapped_device *md, struct request *orig)
10671067
*/
10681068
static void rq_completed(struct mapped_device *md, int rw, bool run_queue)
10691069
{
1070-
int nr_requests_pending;
1071-
10721070
atomic_dec(&md->pending[rw]);
10731071

10741072
/* nudge anyone waiting on suspend queue */
1075-
nr_requests_pending = md_in_flight(md);
1076-
if (!nr_requests_pending)
1073+
if (!md_in_flight(md))
10771074
wake_up(&md->wait);
10781075

10791076
/*
@@ -1085,8 +1082,7 @@ static void rq_completed(struct mapped_device *md, int rw, bool run_queue)
10851082
if (run_queue) {
10861083
if (md->queue->mq_ops)
10871084
blk_mq_run_hw_queues(md->queue, true);
1088-
else if (!nr_requests_pending ||
1089-
(nr_requests_pending >= md->queue->nr_congestion_on))
1085+
else
10901086
blk_run_queue_async(md->queue);
10911087
}
10921088

0 commit comments

Comments
 (0)