Re: [PATCH BUGFIX] block, bfq: deschedule empty bfq_queues not referred by any process

From: Paolo Valente
Date: Thu Nov 14 2019 - 04:23:31 EST




> Il giorno 14 nov 2019, alle ore 09:53, Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx> ha scritto:
>
> Hi.
>
> On 13.11.2019 18:42, Paolo Valente wrote:
>>> Il giorno 13 nov 2019, alle ore 16:01, Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx> ha scritto:
>> Ok, you may have given me enough information, thank you very much.
>> Could you please apply the attached (compressed) patch on top of my
>> offending patch? For review purposes, here is the simple change:
>> --- a/block/bfq-iosched.c
>> +++ b/block/bfq-iosched.c
>> @@ -2728,7 +2728,8 @@ void bfq_release_process_ref(struct bfq_data
>> *bfqd, struct bfq_queue *bfqq)
>> * freed when dequeued from service. But this is assumed to
>> * never happen.
>> */
>> - if (bfq_bfqq_busy(bfqq) && RB_EMPTY_ROOT(&bfqq->sort_list))
>> + if (bfq_bfqq_busy(bfqq) && RB_EMPTY_ROOT(&bfqq->sort_list) &&
>> + bfqq != bfqd->in_service_queue)
>> bfq_del_bfqq_busy(bfqd, bfqq, false);
>> bfq_put_queue(bfqq);
>
> The issue is not reproducible for me after applying this patch.
>

Great! I'm sending a V2 with your Tested-by.

Thank you,
Paolo

> Thank you.
>
> --
> Oleksandr Natalenko (post-factum)