Re: [PATCH BUGFIX] block, bfq: postpone rq preparation to insert or merge

From: Paolo Valente
Date: Sun May 06 2018 - 03:43:02 EST




> Il giorno 05 mag 2018, alle ore 16:56, Mike Galbraith <efault@xxxxxx> ha scritto:
>
> On Sat, 2018-05-05 at 12:39 +0200, Paolo Valente wrote:
>>
>> BTW, if you didn't run out of patience with this permanent issue yet,
>> I was thinking of two o three changes to retry to trigger your failure
>> reliably.
>
> Sure, fire away, I'll happily give the annoying little bugger
> opportunities to show its tender belly.

I've attached a compressed patch (to avoid possible corruption from my
mailer). I'm little confident, but no pain, no gain, right?

If possible, apply this patch on top of the fix I proposed in this
thread, just to eliminate possible further noise. Finally, the
patch content follows.

Hoping for a stroke of luck,
Paolo

diff --git a/block/bfq-mq-iosched.c b/block/bfq-mq-iosched.c
index 118f319af7c0..6662efe29b69 100644
--- a/block/bfq-mq-iosched.c
+++ b/block/bfq-mq-iosched.c
@@ -525,8 +525,13 @@ static void bfq_limit_depth(unsigned int op, struct blk_mq_alloc_data *data)
if (unlikely(bfqd->sb_shift != bt->sb.shift))
bfq_update_depths(bfqd, bt);

+#if 0
data->shallow_depth =
bfqd->word_depths[!!bfqd->wr_busy_queues][op_is_sync(op)];
+#else
+ data->shallow_depth = 1;
+#endif
+

bfq_log(bfqd, "wr_busy %d sync %d depth %u",
bfqd->wr_busy_queues, op_is_sync(op),


>
> -Mike
>