Skip to content

Commit ebc69e8

Browse files
committed
Revert "block, bfq: honor already-setup queue merges"
This reverts commit 2d52c58. We have had several folks complain that this causes hangs for them, which is especially problematic as the commit has also hit stable already. As no resolution seems to be forthcoming right now, revert the patch. Link: https://bugzilla.kernel.org/show_bug.cgi?id=214503 Fixes: 2d52c58 ("block, bfq: honor already-setup queue merges") Signed-off-by: Jens Axboe <[email protected]>
1 parent a2941f6 commit ebc69e8

File tree

1 file changed

+3
-13
lines changed

1 file changed

+3
-13
lines changed

block/bfq-iosched.c

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2662,15 +2662,6 @@ bfq_setup_merge(struct bfq_queue *bfqq, struct bfq_queue *new_bfqq)
26622662
* are likely to increase the throughput.
26632663
*/
26642664
bfqq->new_bfqq = new_bfqq;
2665-
/*
2666-
* The above assignment schedules the following redirections:
2667-
* each time some I/O for bfqq arrives, the process that
2668-
* generated that I/O is disassociated from bfqq and
2669-
* associated with new_bfqq. Here we increases new_bfqq->ref
2670-
* in advance, adding the number of processes that are
2671-
* expected to be associated with new_bfqq as they happen to
2672-
* issue I/O.
2673-
*/
26742665
new_bfqq->ref += process_refs;
26752666
return new_bfqq;
26762667
}
@@ -2733,10 +2724,6 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
27332724
{
27342725
struct bfq_queue *in_service_bfqq, *new_bfqq;
27352726

2736-
/* if a merge has already been setup, then proceed with that first */
2737-
if (bfqq->new_bfqq)
2738-
return bfqq->new_bfqq;
2739-
27402727
/*
27412728
* Check delayed stable merge for rotational or non-queueing
27422729
* devs. For this branch to be executed, bfqq must not be
@@ -2838,6 +2825,9 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
28382825
if (bfq_too_late_for_merging(bfqq))
28392826
return NULL;
28402827

2828+
if (bfqq->new_bfqq)
2829+
return bfqq->new_bfqq;
2830+
28412831
if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq))
28422832
return NULL;
28432833

0 commit comments

Comments
 (0)