Re: [PATCH 1/2] bfq: Fix check detecting whether waker queue should be selected

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> Il giorno 9 apr 2020, alle ore 19:09, Jan Kara <jack@xxxxxxx> ha scritto:
> 
> The check in bfq_select_queue() checking whether a waker queue should be
> selected has a bug and is checking bfqq->next_rq instead of
> bfqq->waker_bfqq->next_rq to verify whether the waker queue has a
> request to dispatch. This often results in the condition being false
> (most notably when the current queue is idling waiting for next request)
> and thus the waker queue logic is ineffective. Fix the condition.
> 

Hi Jan,
my huge delay causes problems again, because a student of mine already
made this same fix a few months ago.  But I did not send it out yet,
for lack of time.  If ok for you, we could go for a common commit with
two authors (I seem to remember it is feasible).

Thanks.
Paolo

> Signed-off-by: Jan Kara <jack@xxxxxxx>
> ---
> block/bfq-iosched.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
> index 78ba57efd16b..18f85d474c9c 100644
> --- a/block/bfq-iosched.c
> +++ b/block/bfq-iosched.c
> @@ -4498,7 +4498,7 @@ static struct bfq_queue *bfq_select_queue(struct bfq_data *bfqd)
> 			bfqq = bfqq->bic->bfqq[0];
> 		else if (bfq_bfqq_has_waker(bfqq) &&
> 			   bfq_bfqq_busy(bfqq->waker_bfqq) &&
> -			   bfqq->next_rq &&
> +			   bfqq->waker_bfqq->next_rq &&
> 			   bfq_serv_to_charge(bfqq->waker_bfqq->next_rq,
> 					      bfqq->waker_bfqq) <=
> 			   bfq_bfqq_budget_left(bfqq->waker_bfqq)
> -- 
> 2.16.4
> 





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux