Re: [PATCH BUGFIX/IMPROVEMENT 1/6] block, bfq: always inject I/O of queues blocked by wakers
From: Paolo Valente
Date: Thu Feb 25 2021 - 10:59:05 EST
>
Il giorno 26 gen 2021, alle ore 17:17, Jens Axboe <axboe@xxxxxxxxx> ha scritto:
>
>
On 1/26/21 3:50 AM, Paolo Valente wrote:
>
> diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
>
> index 445cef9c0bb9..a83149407336 100644
>
> --- a/block/bfq-iosched.c
>
> +++ b/block/bfq-iosched.c
>
> @@ -4487,9 +4487,15 @@ static struct bfq_queue *bfq_select_queue(struct bfq_data *bfqd)
>
> bfq_bfqq_busy(bfqq->bic->bfqq[0]) &&
>
> bfqq->bic->bfqq[0]->next_rq ?
>
> bfqq->bic->bfqq[0] : NULL;
>
> + struct bfq_queue *blocked_bfqq =
>
> + !hlist_empty(&bfqq->woken_list) ?
>
> + container_of(bfqq->woken_list.first,
>
> + struct bfq_queue,
>
> + woken_list_node)
>
> + : NULL;
>
>
hlist_first_entry_or_null?
>
I didn't find any such function. There is a list_first_entry_or_null,
but it's for circular doubly linked lists.
I'll wait a little bit for your reply, then send a V2 with this patch
unchanged.
Thanks,
Paolo
>
--
>
Jens Axboe
>